Addressing USB 3.0 integration challenges for small form factor devices: Q&A with Terry Moore, CEO, MCCI
This Q&A with Terry Moore of MCCI covers the whens and hows of integrating USB 3.0 into SFFs.
As USB 3.0 reaches maturity and is incorporated into more and more embedded systems, designers need to be aware of the challenges that come with its use in the embedded space. CEO Terry Moore from embedded USB software developer MCCI explains when USB 3.0 is a right choice, what challenges designers currently face, and how the platform can be improved for future embedded use.
SFF: Why is USB 3.0 particularly useful in Small Form Factor (SFF) embedded devices and systems?
MOORE: USB 3.0 is a cost-effective technology for high-speed data transfers up to 400 MBps. Host ports can be used with high-performance mass storage devices, and can also be used for attaching a great variety of useful accessories. If the SFF product is configured as a device (or dual-role embedded host/device), it can be directly connected to a PC or other USB host for high-speed firmware downloads and data transfers. Protocols such as MTP allow easy synchronization and image transfer.
SFF: What are the biggest challenges right now in integrating USB 3.0?
MOORE: The biggest challenge by far right now is test. There are already hundreds of different kinds of USB 3.0 SuperSpeed products on the market, and hundreds of thousands of different kinds of USB 2.0 high-speed, full-speed, and low-speed devices. There still is no standardized compliance test for USB 3.0 hubs, and so software stacks must be tested carefully with a variety of hub silicon and a variety of hub firmware versions. Unless using a variant of Windows XP or Windows 7 for embedded systems, a USB 3.0 software stack must be obtained and tested by the system integrator.
Preserving investment is a second challenge. Companies normally have many projects and want to deploy the RTOS that best meets customer needs. Because of the differences in USB implementations it can be difficult to reuse code, leading to extra porting and validation costs, and to divergences in USB behavior. Some projects need USB 3.0, others do not; it’s wasteful to have to multiple versions of software to support USB 2.0 and USB 3.0.
SFF: What technologies and design strategies is MCCI using to overcome these challenges?
MOORE: MCCI’s primary approach has been to test and deploy our embedded stack on Windows. This allows testing enumeration, power management, and host controller drivers with the widest variety of devices. In addition to our internal testing, MCCI gained several design wins with early xHCI vendors. This led to testing with tens of thousands of devices, and experience with more than 20 million end users.
MCCI’s stack consists of highly portable code augmented by wrappers that adapt it for Windows. There are no conditional compiles in our portable code; all adaptation for Windows is done by the wrappers. The core code is used in embedded systems without change, minimizing test requirements. Memory allocation policies, as well as DMA, interrupt, and synchronization techniques, are isolated in an abstraction layer; the stack can be tailored for use in almost any environment, from non-OS/pre-boot environments to full Operating Systems (OSs) such as Linux or Windows. In addition, MCCI’s platform approach ensures that customer software can be ported to different host controllers, USB versions, and OS environments as needed.
SFF: What technology advances are needed to smooth USB 3.0 integration?
MOORE: Support for the new USB Power Delivery (PD) specification, both in hardware and in software, will further increase the utility of USB 3.0. Using USB PD, the same USB port (device or host) can be used both for communications and for supplying up to 100 W of power to the SFF system. USB PD relaxes the host/device power paradigm, so it will no longer be necessary to use a B connector for bus-powered systems.
Class drivers are a second challenge. Two new device classes were introduced concurrently with USB 3.0: USB Attached SCSI (UAS), which can give much higher throughput for mass storage devices; and the Audio/Video (AV) class, which allows HD displays to be connected over the USB connector. New class drivers are needed in order to take advantage of these new device classes. In addition, the higher speed of USB 3.0 often requires tweaks to the existing class drivers to maximize throughput.
Despite these challenges, USB 3.0 offers the SFF designer immediate access to a huge variety of low-cost peripherals, from keyboards and mice to high-capacity storage and display, as well as PC connectivity. USB 3.0 host controllers are inexpensive and readily available. It’s destined to become ubiquitous in SFF systems.