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.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

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