µ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. μC/ USB Host is a full-featured, high performance, small footprint USB host software stack. Kernel independent, μC/USB Host includes API, class drivers (MSC, HID, and CDC ACM) and framework for developing custom class drivers. The stack can run with or without an RTOS.

μ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.

    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.

Features

µC/USB Host include the following features:

  • Small footprint
  • High performance
  • ROMable and scalable (to reduce footprint)
  • Use with or without commercial or proprietary RTOS
  • Easy-to-use API
  • Outstanding documentation and source code included
  • Extensive test cases and test harness to verify stack integration
Who should use this stack? Manufacturer who wants a USB productwith an embedded Host.
Other related Micrium’s products? μC/OS-II, μC/OS-III, μC/FS
Source code ANSI-C
Real-time kernel With or without
Specification compliance USB 1.1 and USB 2.0
Supported transfer types Bulk, Control, Interrupt
Root hub management Yes
Supported HCD OHCI, EHCI, Vendor-specific (cf. hostcontroller chart)
Supported devices classes Hub, Mass Storage, HID, CDC ACM,Printer
HID demo Mouse, keyboard
MSC demo Files operations on a Flash drive
CDC ACM demo Communicating with a USB Modem
Printer Demo Raw text printing, font demo, singleimage printing
Limitations Isochronous not supported.
EHCI driver does not support SplitTransaction Protocol.
Multi-host not supported.

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 USB device understanding the standard V.250 (AT) commands. For instance, an USB modem.

The Printer class permits to handle a print job, get information about the capabilities and the status of the printer. A printer converts a Page Description Language (PDL) into a human-readable printed page. μC/USB-Host offers the support for the PCL 5 language from Hewlett-Packard and offers the user the option to add a new PDL to the stack.

A driver for another standard class or for a vendor-specific class can be developed from a template driver, using the host stack documentation describing the class driver architecture.

Memory Footprint

μC/USB Host's footprint is scalable to contain only the features required by the application.

ARM7 Target

This footprint has been obtained with:

  • IAR v5.20 ARM compiler toolchain for the core ARM7TDMI-S using the ARM mode.
  • Compiler: high optimization with the balanced option for size and speed.
  • Host controller: LPC2468 OHCI-compliant
Layer Code (kB) Constant (kB) Data (kB)
OS abstraction 0.78 - -
Host Core 12.7 0.80 3.00
Host Controller driver 7.64 0.76 9.10
TOTAL (kB) 21.12 1.56 12.1
Layer Code (kB) Constant (kB) Data (kB)
CDC ACM Class driver 2.64 0.18 2.12
HID Class driver 6.09 1.04 13.29
MSC* Class driver 3.89 0.44 0.86

* The mass storage class driver does not include file system software, which is necessary for accessing the files and directories on a connected device.

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