USB-IF Compliance Testing Tips #1 – Command Verifier (CV)

The process of obtaining USB-IF certification can be difficult, but not just because of the specification requirements. Often developers uncover problems not related to USB compliance during certification testing. For this reason, it can be helpful to test as early as possible, preferably well before the product is scheduled to be released. Of course, it is not always possible to test early, either because product requirements are in flux, extensive debug is necessary, or even because final hardware is not available. It occurred to us here at MCCI that it might be helpful for us to outline some tests that engineers can perform on their USB products in advance of those products entering the Compliance Lab. Using them may help flush out compliance problems during normal, pre-test development.

The tests we are recommending are tests that most consumer electronics product engineers should be able to perform with a small hardware investment and as little overall cost to their test budget as possible. After all, with the economic environment being what is, anything we can do to help companies avoid extra test costs or delayed market releases is for the best. Some of these tests we’re going to tell you about come from the USB-IF compliance test suite, while others are our original work. Regardless, it is our hope to help you achieve USB-IF compliance for your USB product.

CV

This handy tool is a bit of software that the USB-Implementers Forum (USB-IF) uses to test a device’s basic functionality. CV, or Command Verifier, tests for compliance with Chapter 9 of the USB 2.0 specification. CV is one of the most helpful tests a developer can run on their device. Run it as early as possible. It will test enumeration, the device’s descriptors, and the device’s response to a number of specific requests.

The CV test program is free and can be downloaded from the USB-IF website:

http://www.usb.org/developers/tools/

Setup is fairly straightforward. In addition to the device, all the user needs is a high-speed host controller and a high-speed hub. When CV runs it takes control of the high-speed host controller (EHCI). The high-speed hub is then plugged into the host, and the device being tested is plugged into the high-speed hub. CV enumerates the device being tested without the use of any Windows drivers. CV can be run on either Windows XP or Windows 7 systems.
CV sends various commands through the bus, analyzes the responses from the device, and logs the various results into an html file. While it does not test every aspect of the Chapter 9 requirements, a passing test assures developers that they are on the right track.

Leave a Reply