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

The Importance of PCB Design in Consumer Products

April 25, 2024
Explore the importance of PCB design and how Fusion 360 can help your team react to evolving consumer demands.

PCB Design Mastery for Assembly & Fabrication

April 25, 2024
This guide explores PCB circuit board design, focusing on both Design For Assembly (DFA) and Design For Fabrication (DFab) perspectives.

What is Design Rule Checking in PCBs?

April 25, 2024
Explore the importance of Design Rule Checking (DRC) in manufacturing and how Autodesk Fusion 360 enhances the process.

Unlocking the Power of IoT Integration for Elevated PCB Designs

April 25, 2024
What does it take to add IoT into your product? What advantages does IoT have in PCB related projects? Read to find answers to your IoT design questions.

Comments

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