Hi, Dan Harmon back again with an overview of the certification process promised in my last post on (4 Mar 2011 12:01 AM).

As I stated earlier, the certification process is a very important step for delivering quality products to the ultimate end-user, the consumer. So let's keep them in mind during this discussion. Since my focus is SuperSpeed USB, we'll base our example on the USB Implementer's Forum (USB-IF), but the thought process applies to other standards bodies as well. Having been involved with standards bodies for more than a decade I'm very familiar with the general process.

So, what exactly does USB-IF testing certify? And, if the silicon is already certified, why do end products also need to be certified? It all comes down to three things: 1) electrical compliance, 2) protocol compliance, and 3) interoperability. 

1) Electrical testing is designed to address the lowest layer over a USB device, the physical layer (sometimes called the transceiver or PHY). The idea is to verify whether your transmit side is good enough to drive a signal over a worst-case transmission path and be detected by a worst-case receiver.  The test also looks in the other direction: can your receiver properly detect a worst-case transmitter over a worst-case transmission line? Fairly straightforward in concept, but the "how" to simulate worst case on the other end and what is worst case are all what goes into defining the tests. USB 1.0/1.1 was a little easier to test and pass because transmitting at 12 Mbps does not take the same level of engineering to accomplish as transmitting at 5 Gbps - where boards and cables are even more critical! This is why it is important for both the silicon AND the end product to be electrically tested. A change in board layout or internal cabling can lead to vastly different results. Naturally, the silicon has to be good to start with. So, if the system is poorly implemented, good silicon can only do so much to overcome this problem. Subsequently, the burden is on both the silicon supplier and system implementer to deliver an adequate consumer experience from an electrical point-of-view.

2) Protocol-level testing is aimed at the link or core layer of a USB device. It tries to eliminate all other factors and determine if the peripheral device (and upstream hub ports) will respond correctly to specific functions/commands as defined in the specification. The host system is put into a special test mode where it can access special levels of the downstream link core, exercise it, and monitor the response to verify that it responds correctly and in a timely fashion to such activities as enumeration, suspend, wake, etc. Testing developed by the USB-IF Device Working Group includes device-class protocols such as mass storage, human interface, and video. For example, in the area of mass storage testing, the specification defines 13 possible error cases when moving data between the host system and peripheral. Typically these cannot be tested with real-world applications, but need to be tested to verify that the proper response occurs to minimize consumer frustration and potential data loss with a mass storage device. For a USB host system (and hub downstream ports), an idealized peripheral device is connected and a similar test mode is entered by the host to verify that the commands can be sent to the peripheral. When both proper and improper results are seen from the device, the host takes the appropriate action. This is purely at the protocol level, and not at the application level.

3) Interoperability really has more to do with the application level. The simple way to think about interoperability testing is, "Do these devices play well with each other?" Now, the fact is that you cannot test every device with every USB product ever sold. So the intent of this testing is to get a fairly broad brush of representative devices and verify that your device works as intended when those devices are also in use on the same host system. For host systems, this is much more about verifying that your controller and stack can work with as many products as possible. But again, it is impossible to test with the billions of USB devices that have shipped over the past 10+ years. While this seems like it could be the simplest test, this is actually the biggest stumbling block for most products. As more and more SuperSpeed USB products are out in the market, the need to verify that they all play together as best as possible is critical to success.

Granted certification puts a few more steps into product delivery, but isn't it worth it - especially when your brand is the one that bubbles to the top because of ease of use, simplicity, and consumer confidence that your product will work seamlessly with other devices? I think so, but I'm really interested in hearing what you have to say about it. Please join my blog and post your thoughts here.