BYOD: USB Screams into System Connect
USB 3.0 Brings New Connection Capabilities to System Design
USB 3.0 SuperSpeed is now being designed into real systems. It has much to offer in terms of speed and elegance of design. To take advantage of the higher-speed, more versatile interface, it is important to be aware of the elements required for success.
TERRILL MOORE, MCCI
Page 1 of 1
USB 3.0 has hit mass production. Not only is it mainstream in PCs, with support from Microsoft, Apple and Intel as a standard feature of mainstream products, it’s quickly migrating to smartphones, tablets and embedded systems. For example, Qualcomm’s recently announced Snapdragon 800 processors include USB 3.0 as the standard wired connectivity technology. Qualcomm says that in addition to smartphones and tablets, they expect the Snapdragon 800 processor to be used in other advanced consumer electronics applications, such as Smart TVs and digital media systems. A new enhancement of USB 3.0 will be released this year, doubling the maximum throughput from 400 Mbyte/s to 800 Mbyte/s, and making the bus more efficient in high-throughput applications. Kingston has announced a 1 Tbyte flash drive using USB 3.0, and is shipping 512 Mbyte flash drives today. TRENDnet is using USB 3.0 for its AC1200 Wireless TEW-805UB network adapter to get up to 867 Mbit/s throughput to a Wi-Fi 802.11AC network.
USB 3.0 delivers cost-effective high-throughput expansion. Embedded system designers who want the flexibility to take advantage of the rapid advances in storage, wireless LAN, display and LTE technologies can use a single USB 3.0 port to address all external wired connectivity needs, from pointing device to display. This is especially attractive for applications that require a long design life because the rapidly changing elements can be modularized and attached via the standard USB 3.0 interface.
Why Choose USB 3.0 over USB 2.0?
USB 3.0 offers all the features of USB 2.0, while adding the ability to improve throughput by a factor of ten. It starts with the USB 2.0 D+/D- signals, which are used just as before for 1.5 Mbit/s (“low speed”), 12 Mbit/s (“full speed”) and 480 Mbit/s (“hi-speed”) signaling. USB 3.0 host controllers use these signals to connect to legacy USB 2.0 devices, which operate exactly as they did before. Vbus, used for powering devices, is enhanced to deliver up to 4.5W of power (compared to 2.5W for USB 2.0), but is otherwise identical. The USB 3.0 standard then adds two differential pairs used exclusively for SuperSpeed signaling. In addition to operating at 5 Gbit/s, compared to 480 Mbits/s for USB 2.0, these differential pairs improve throughput by dedicating one pair for output from the host, and another pair for input. Each pair operates independently, so it’s possible to sustain close to 400 Mbyte/s concurrently in each direction.
The standard USB 3.0 host controller interface model, xHCI, offers many advantages of the traditional enhanced host controller interface (EHCI) host controller used for USB 2.0 systems. The architecture is inherently much lower power—whereas EHCI polls system memory continually to operate the bus, xHCI accesses system memory only to move data. In USB lingo, EHCI host controllers operate on USB transactions, basically one packet at a time; whereas xHCI host controllers operate on transfers, potentially megabytes at a time. Unlike EHCI, the xHCI host design is PCIe friendly—the architecture allows system software to consume time-consuming register reads, and the xHCI only consumes PCIe bandwidth while it’s actually moving data. System power requirements for operating a USB 2.0 bus with an xHCI host controller are frequently much lower because of reduced SDRAM accesses. Thus, even for systems that only use USB 2.0 devices today, the USB 3.0 architecture offers substantial benefits.
These technical features add concrete value in addition to the less tangible benefits that come from adopting current technology—systems designed today have the potential to stretch to support new technologies and new use cases as complementary technologies evolve.
What Is Involved in Designing for USB 3.0?
You’ll need several things to add USB 3.0 support to your system beginning with a host controller. If you’re designing a custom ASIC, this will normally be outsourced IP, to save on the cost of test and verification. Synopsys is currently the most popular choice. Otherwise, you’ll either get USB 3.0 support as part of your SoC or you’ll add it with an external component. TI and ASMedia are leading suppliers of xHCI PCIe to USB 3.0 bridge components. Look for a host controller that has passed ISB Implementers Forum (USB-IF) logo testing.
Because USB 3.0 has extra differential pairs for SuperSpeed transmit and receive, the connectors have extra pins. Host systems use either Standard A receptacles or, for dual-role host/device ports, micro-AB receptacles. Standard A receptacles are the familiar oblong connectors found on PCs. USB 3.0 Standard A receptacles are the same size as older USB 2.0 receptacles. USB 3.0 Micro-AB receptacles are extensions of the low profile USB connectors commonly found on cell phones—additional pins are added in-line, making the connector wider (but no higher) than the USB 2.0 Micro-AB receptacle.
No matter which style connector you choose, it’s important to get connectors that have passed the USB 3.0 logo tests. This not only assures quality, but it also keeps your options open in case you need to certify your product, either initially or for an unanticipated application in the future.
You need to make sure there is suitable memory bandwidth. This may seem obvious, but it gets overlooked. USB 3.0 can demand substantial throughput to the memory system in order to deliver adequate performance. Your SDRAM system must be designed appropriately. Bear in mind as well that memory system power consumption is determined by duty cycle, so size power supplies and cooling mechanisms appropriately. MCCI has seen USB 3.0 flash drives that overheated when driven by very fast system software.
The USB 3.0 host stack controls device discovery when a device is attached. Even if you only intend to support a few devices at first, the quality of the host stack will determine whether your product behaves robustly and deterministically if users attach unexpected devices to the system. Some embedded operating systems come with stacks that support USB 3.0, however these stacks have generally not been submitted to the same testing as the Windows host stacks that are required for USB-IF logo testing. MCCI’s TrueTask USB embedded host stack is the portable core of the Windows host stacks that were used by Synopsys, TI and ASMedia for certifying their host controllers, and may be suitable for applications that require a commercially supported host stack with extensive test and deployment heritage (Figure 1).
MCCI’s TrueTask USB is a highly portable, fast, efficient platform that includes USB 3.0/USB 2.0 host and device support, designed to support a variety of hardware. A high-quality host stack such as this will determine whether your product behaves robustly and deterministically.
The host stack is also typically the module that implements USB 3.0 hub support. Again, it’s important to be sure that your stack has been extensively tested. Hubs were the last USB 3.0 components to be certified (in 2012), and many “pre-certification” hubs were shipped. These hubs have quirks, and the only way to be sure that you have robust support is to have it tested against every variety of hub.
There are a number of class drivers for devices that need to be supported. Mass storage was the first use case for USB 3.0, and it remains the highest volume application. Most devices comply with the USB-IF Mass Storage Class “Bulk Only Transport” (BOT) protocol, so you’ll want to support this class. For “walk up” use cases, where the user inserts a USB flash disk for data interchange, BOT will be sufficient. If your system is using mass storage for more critical requirements, you may also want to support the newer “USB Attached SCSI” (UAS) protocol, which offers overlapped read and write. MCCI’s testing has shown that UAS flash disks are up to twice as fast when used for booting Windows systems, as compared to BOT.
In addition to mass storage, you may want to include support for keyboards, mice, displays and networking devices. The “Human Interface Device” (HID) class is the standard for keyboards and mice; it’s also used for game controllers and UPS monitoring. It’s often used for moderate-throughput connectivity to specialized test equipment as well, because Windows and MacOS X provide frameworks that allow driverless control.
For connecting to an LTE modem, there’s a very useful recent standard, the USB Mobile Broadband Interface Model (MBIM). This protocol standardizes the control plane for LTE modems, and provides IP-based connectivity. USB 3.0 is important for talking to next-generation LTE networks, because downlink speeds of up to 1 Gbit/s are on the horizon. In situations with bursty data transfer requirements, the higher speeds can reduce radio-on time, therefore reducing system power consumption, allowing use of more economical battery and heat management systems.
Other convenient device classes are less standardized, and you may need to get class drivers that are targeted at a particular manufacturer’s device. Although standards-based solutions are available, USB-to-serial adapters normally use proprietary protocols, as do many USB to Wi-Fi adapters, USB-to-Ethernet adapters and USB to HDMI adapters (such as the DisplayLink products). This may limit your ability to support a broad variety of products. For long-lived products, standards-based approaches are superior to proprietary approaches, because there’s less dependence on supply from a single vendor.
When debugging a USB system, it’s very important to have suitable test equipment. USB low-level protocols perform many of the traditional link and presentation layer functions in hardware. Unlike TCP-IP, you often cannot get enough information to debug system problems based only on traces from the host stack. USB bus analyzers from companies like Teledyne LeCroy, Ellisys, or TotalPhase are generally mandatory during system integration and troubleshooting. An entry-level analyzer from LeCroy or TotalPhase costs about $5,000. The author’s experience is that all three companies have excellent products, but the products appeal to different users. Engineers with a strong hardware background typically prefer the LeCroy display. Software developers tend to prefer Ellisys. TotalPhase products appeal to engineers with a foot in both camps, and at the time of writing, TotalPhase has an advantage for MacOS X and Linux support, as well as a small edge in terms of higher-level protocol decoding.
Testing and validation are needed for certification. USB-IF logo certification has two important roles. First, it helps you validate your USB implementation. Second, it can be used to help assure your customers that your USB implementation meets their requirements. Logo testing is available in two forms. USB-IF holds periodic Compatibility Workshops (“PlugFests”), which are free to USB-IF member companies (although test slots are limited). In addition, USB-IF has certified roughly ten independent test labs around the world to perform logo testing.
If you’re using USB-IF logo testing as a validation tool, you may not need to actually pass the test. It may be enough to run the portions of the tests that are relevant to your use case. Some independent test labs offer “pre-certification” testing services, which allow you to do only those portions of the tests that are relevant to your situation. To use the USB-IF logo, however, you’ll need to run all the tests, as well as provide information related to host controller and connector certification from your host controller and connector vendors.
When planning your system, it’s important to review the USB-IF OnTheGo and Embedded Host Test Procedures. These procedures require that your host implementation be able to respond to certain specific test device IDs and enter specific test modes for low-level electrical and protocol testing. Alternately, you must be able to give the test lab a procedure for enabling those test modes. If you’ve not planned for this, you may face surprising delays when trying to certify your product at the end of the development cycle. If you’re getting your host stack from an outside vendor, make sure that the host stack supports the embedded host test commands.
After you’ve built your USB 3.0 system, you’ll want to make sure that it is still working when you make a new release. Regressions test tools like the MCCI USB Connection Exerciser can help you to automate testing, particularly for device insertion/removal problems (Figure 2).Make sure your host stack vendor provides suitable test tools to allow you to do a reasonable level of regression testing on your integrated system when you’re preparing for a release. These tools should include testing of all transport speeds in your system, from low speed through SuperSpeed, and should provide automatic go/nogo reports.
Tools such as MCCI’s USB 3.0 Connection Exerciser help automate testing. The tool is essential for finding and debugging connect or disconnect bugs in host drivers and devices, and is useful for regression tests.
Careful planning for USB 3.0 can ensure embedded systems with more flexibility and longer product life. The experience vendors have gained in shipping for the PC market is directly transferable to embedded system applications, and the leading vendors such as Qualcomm, Synopsys, TI and ASMedia are shipping products that will enable immediate deployment. Open source software solutions are available, and vendors such as MCCI can provide commercially supported packages suitable for more demanding applications.
San Diego, CA
Taipei City, Taiwan
Mountain View, CA
Thousand Oaks, CA
Chestnut Ridge, NY
+41 22 777 77 89