µC/USB Device

 μC/USB Device is a USB device stack designed for embedded systems equipped with a USB device controller. 

Thanks to a hardware abstraction layer, you can easily port μC/USB-Device to any new USB device controllers by simply modifying existing hardware access routines. Drivers for several common device classes (Mass Storage, CDC, HID, PHDC) are offered. A framework for developing vendor-specific class drivers is also provided.

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

  • The Device Controller layer interfaces with the device controller to process interrupts, notify the device core of bus events, and receive/transmit packets. 
  • The Device Core layer controls packet reception and transmission, and responds to standard host requests during enumeration (the process by which a host learns the features of a device). 
  • The Class layer provides functionality to the host using one or more class drivers. Each class driver responds to class-specific requests and may provide an API for controlling some features and receiving/transmitting information.

Features

µC/USB Device include the following features: 

  • Speed – μC/USB-Device supports low-speed (1.5 Mbit/sec), full-speed (12 Mbit/sec) and high speed (480 Mbit/sec) USB device controllers. 
  • Memory Footprint – μC/USB-Device’s footprint can be scaled to contain only the features required by the application.
  • Real-Time Kernel Support – μC/USB-Device can be ported to nearly any real-time kernel available.
  • Start/Test Application – Simple test applications are provided for all USB device classes.
Who should use this stack? Manufacturers who want to build USB peripherals quickly and easily.
Other related Micrium’s products? μC/OS-II, μC/OS-III, μC/FS
Source code ANSI-C
Real-time kernel Required
Specification compliance USB 1.1 and USB 2.0
Supported transfer types Bulk, Control, Interrupt
Respond to USB standard request Yes
Supported devices classes Mass Storage (MSC)
Human Interface Device (HID)
Personal Healthcare Device Class (PHDC)
Vendor-specific (support Bulk and/or Interrupt transfers)
Communication Device Base Class (CDC)
CDC Abstract Control Model (ACM)

 Class Support

The Communication Device Class (CDC) encompasses several communication models. The Abstract 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 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).

Micriμm offers many USB device controller drivers. Additional drivers are added on a regular basis. Visit Micriμm's website for a current list of available drivers.

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 to validate the compliance of the stack with the USB Specification. USB-CV 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).

USB-CV 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 modules of μC/USB-Device and the USB-CV test suite used to validate the implementation.

Module USB-CV test suite
Core Chapter 9 tests
Human interface device class HID class tests
Mass Storage Class MSC tests
Personal Healthcare Device Class PHDC tests

All the drivers offered by Micriμm have been tested with all the above USB-CV test suites. 

For pricing, delivery, and ordering information, contact Micrium today.