Micrium – μC/USB Device & Host stacks using μC/OS-II or μC/OS-III

For more information:

Ohad Beit-On



Micrium offers complete embedded USB stack:





What is µC/USB-Device?

μC/USB-Device is a compact, reliable, high-performance stack designed for embedded systems equipped with a USB device controller.

Micrium and USB


The features of µC/USB include:

  • Delivered with complete 100% ANSI C source code and in-depth documentation.
  • Scalable to contain only required features and minimize memory footprint.
  • Support full-speed (12 Mbit/s) and high-speed (480 Mbit/s).
  • Support for any real-time kernel available. A kernel is required.
  • Support for Composite device.
  • Support for Audio, CDC ACM, CDC EEM, HID, MSC, PDHC and Vendor classes.
  • Support for Microsoft OS Descriptors.
  • Simple test applications to play with all USB device classes.

Class support

The Audio class allows you to build audio devices compliant with the audio 1.0 specification. Typical applications include speaker, microphone, headset, etc.

The Communication Device Class (CDC) encompasses several communication models. TheAbstract Control Model (ACM) converts the USB device into a serial communication device, and the target is recognized by the host as a serial interface (USB2COM, virtual COM port). Typical applications include modems, telephone systems and fax machines. The Ethernet Emulation Model (EEM) allows to use the USB device as a device on an Ethernet network. All typical applications (HTTP, FTP, DHCP, etc.) can then be run on the device.

The Human Interface Device (HID) Class allows you to implement any kind of user-input device. It can also be used to communicate with the host (without a special host driver) using a vendor-specific communication protocol. Typical applications include mouse, keyboard, game pad, etc.

The Mass Storage Class (MSC) allows you to use the embedded target device as a USB mass storage device. Typical applications include USB memory stick, digital camera, MP3 player, DVD player, etc.

The Personal Healthcare Device Class (PHDC) allows you to set up the embedded target as a personal healthcare device, which can use a vendor-defined or IEEE-11073 based protocol. Typical applications include glucose meter, blood pressure monitor, weighing scale, etc.

The Vendor class allows you to develop a custom vendor-specific class (at the application level) that makes use of bulk and/or interrupt transfers. A special host driver will likely be required. For example, Microsoft Windows does not natively support this type of device.

Device Controller Driver

μC/USB-Device features a hardware abstraction layer allowing quick porting to any new USB device controllers (and addition to Micrium’s list of supported devices).

Micrium offers many USB device controller drivers. Additional drivers are added on a regular basis.

If your desired USB device controller driver is not listed, you can consult the μC/USB-Device user manual, which contains a chapter on driver development. You can also ask Micriμm to develop the driver for you. Please call us for a quote.

Stack Compliance

Micriμm uses USB Command Verifier (USBCV) to validate the compliance of the stack with the USB Specification. USBCV is the official compliance test tool which evaluates High, Full and Low-speed USB devices for conformance. This tool is provided by the USB Implementers Forum (USB-IF).

USBCV offers a test suite to validate the compliance of a device with Chapter 9 of the USB specification Revision 2.0 (enumeration process). It also offers a test suite for several classes.

The following table lists the different layers of μC/USB-Device and the USBCV test suite used to validate the implementation.

Layer USBCV test suite
Core Chapter 9 tests
Human Interface Device class HID tests
Mass Storage Class MSC tests
Personal Healthcare Device Class PDHC tests
Device Controller Driver Chapter 9, HID, MSC and PDHC tests


μC/USB Host

What is μC/USB Host?

μC/USB Host is a real-time USB Host software stack designed for embedded systems equipped with a USB Host or OTG controller. It includes many class drivers (MSC, HID and CDC ACM). The stack requires a kernel.

μC/USB Host uses a modular architecture with three software layers between the application and the hardware.

  • The Class Driver layer provides class-specific services to the application. For example, the Mass Storage Class (MSC) Driver includes interface functions for reading and writing sectors from a storage device.
    Note that a protocol could be required for certain class. The Protocol Driver layer handles this aspect (e.g., the SCSI command set for the MSC).
  • The Host core layer enumerates the device, loads a matching class driver, and provides the mechanism for data transfers.
  • The Host Controller Driver (HCD) interfaces with the host controller hardware to enable data transfers and detect devices.

µC/USB Host include the following features:

  • Small footprint
  • High performance
  • ROMable and scalable (to reduce footprint)
  • Use with commercial or proprietary RTOS
  • Easy-to-use API
  • Extensive test cases and test harness to verify stack integration

Class Support

The Mass Storage Class (MSC) driver allows to access external memory devices such as flash memory sticks, hard disk drives, CD/ DVD drives, etc. A file system is necessary since the MSC driver implements only a USB protocol, offering an application interface for reading and writing sectors and obtaining basic device information (number of sectors and sector size, for example). The file system interprets the data for reading and writing files. This driver can be used with Micrium’s file system μC/FS, or with any other brand.

The Human Interface Device (HID) Class driver enables the application to communicate with both standard (keyboards, mouse, etc) and vendor-specific HID devices. This driver provides routines for getting and setting reports, in addition to mechanisms for parsing report descriptors.

The Communications Device Class (CDC) encompasses several communication models. The Abstract Control Model (ACM) allows the embedded host to communicate with any CDC ACM USB devices (Modems, USB to serial converters, etc.).

The Future Technology Devices International (FTDI) class enables the application to communicate with USB to serial converters driven by chips manufactured by FTDI Ltd. This class offers an easy to use API that lets the application send and receive data as well as setting serial parameters and retrieving serial status. The FTDI class supports the following FTDI chip families: FT8U232AM, FT232B/FT232R/FT232H, FT2232D/FT2232H, FT423H.



Compilers for C/C++Real Time Operating SystemsDebuggers & JTAG EmulatorsEmbedded Software Testing solutionsMiddleware & SW componentsHW Testing solutions – Boundary-Scan (JTAG) & FunctionalProtocol and Bus Analyzers & StimulatorsHome of CANopen, EtherCAT, PowerLink, ProfiNet– SW Protocols, devices & SolutionsIn-Circuit/Parallel Engineering & Production Device Programmers (Flash/EPROMs/CPLDs…)Video & Audio SW CODECs components

For more information: Ohad Beit-On ohad@sightsys.co.il 054-2584032