Modular USB Stack Is Fast And Portable

Oct. 16, 2012
MCCI's TrueTask USB stack uses a modular driver architecture that is not only compact and portable but fast too. It handles USB 3.0 and all USB device protocols.

USB is ubiquitous with USB 3.0 (see USB 3.0: A Tale Of Two Buses) delivering the blistering speeds necessary to keep up with external flash drives. It is likely to be one of three interfaces left on a PC (see In The End, Will It Be PCI Express, USB, And Ethernet?).

Support for USB requires a stack on the host and a stack on the devices. Vendors of USB microcontrollers tend to have stacks for the latter that are provided to developers but there are alternatives like MCCI's TrueTask and DataPup USB stacks (Fig. 1).

Figure 1. MCCI's TrueTask USB utilizes a modular approach to the USB stack. TrueTask address the host/hub while DataPump targets the device.

The TrueTask USB platform targets the host and hub and MCCI DataPump handles the device side. Internally the stacks are modularized so a significant portion are identical regardless of the underlying hardware platform. This allows for better optimization and results in faster performance and smaller code size.

Figure 2 shows a more detailed dissection of MCCI's USB offering. It shows where the various MCCI and USB APIs are located and the underlying support or use of these interfaces.

Figure 2. A more detailed viewo of MCCI's TrueTask USB stack highlights the range of APIs it utilizes.

MCCI handles USB 1.1. USB 2.0 and USB 3.0. It supports standard operating systems such as Microsoft Windows and Linux as well as embedded RTOS platforms like Nucleus, ThreadX, uITRON and MQX. Versions are also available for operation without an operating system on the range of supported platforms that includes ARC, Arm, PowerPC and SH chips. Local host stack emulations are supported for Windows and Linux. This feature allows the MCCI support to handle "in-box" class drivers associated with these operating systems.

On the device side, MCCI addresses all the standard USB protocols including UASP (USB Attached SCSI protocol) and BOT (bulk only transfer) (see What's the Difference Between USB UASP And BOT). Multiplexed USB devices are supported. MCCI also provides test and design support.

A standard USB stack like MCCI's offers developers a stable platform across operating system platforms and operating system versions. USB stacks delivered with an operating system are normally tied to the system making backporting bug fixes a challenge. Developers needing to support systems over a long period of time will appreciate the control over the USB stack.

Developers already employ third party Ethernet and WiFi stacks because they provide added benefits and controls. The same is true for USB.

Sponsored Recommendations

What are the Important Considerations when Assessing Cobot Safety?

April 16, 2024
A review of the requirements of ISO/TS 15066 and how they fit in with ISO 10218-1 and 10218-2 a consideration the complexities of collaboration.

Wire & Cable Cutting Digi-Spool® Service

April 16, 2024
Explore DigiKey’s Digi-Spool® professional cutting service for efficient and precise wire and cable management. Custom-cut to your exact specifications for a variety of cable ...

DigiKey Factory Tomorrow Season 3: Sustainable Manufacturing

April 16, 2024
Industry 4.0 is helping manufacturers develop and integrate technologies such as AI, edge computing and connectivity for the factories of tomorrow. Learn more at DigiKey today...

Connectivity – The Backbone of Sustainable Automation

April 16, 2024
Advanced interfaces for signals, data, and electrical power are essential. They help save resources and costs when networking production equipment.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!