Micrium offers complete embedded USB stack:
μ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:
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.
μ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.
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 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.
µC/USB Host include the following features:
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.