|
|
 |
|
Micrium µC/USB™ Device & Host StacksThe USB communication protocol is on one hand the most popular to integrate, and on the other, one of the most difficult communications interfaces to embed. While the USB controller is an important consideration, the largest portion of the USB design rests on implementation in software. Micrium's software expertise and unfailing attention to coding standards and naming conventions is apparent in the µC/USB™ Device & Host Stacks they offer. Both the μC/USB Device and Host stacks can run with or without an RTOS.
|
Specifications
- 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
- HID demo: mouse, keyboard
|
Micrium µC/USB™ Device Stacks
|
The Micrium μC/USB™ Device is a USB device stack designed for embedded systems equipped with a USB device controller. A hardware abstraction layer makes it easy to port μC/USB-Device to new USB controllers by simply modifying existing hardware access routines. Drivers for several common device classes are offered, supplemented by a framework for easily developing new class drivers. The μC/USB Device uses a modular architecture with three software layers between the application and the hardware. Each target requires a Device Controller Driver to interface with the device controller hardware to process interrupts, notify the stack core of bus events, and receive and transmit packets. The Device core controls packet reception and transmission and responds to standard host requests during enumeration, the process by which a host discovers the feature of a device. The target provides its functionality to the host with one or more class drivers (e.g. the Mass Storage Class driver). Each class driver responds to class-specific requests and may provide an API for controlling the feature or receiving and transmitting information.
Features
- Supports full-speed (12Mb/sec) and high speed (480Mb/sec) controllers
- Memory footprint can be scaled to contain only the features required for the application at hand
- Can be used with or without a real-time kernel
- Simple target test applications provided for all USB device classes, in all significant configurations
- For bulk, mass storage, and HID classes, simple Windows applications are included, constituting an end-to-end demonstration of USB functionality
Specifications
- Respond to USB standard request: yes
- Supported devices classes: Mass Storage, HID, CDC ACM, vendor-specific (with bulk transfer)
- MSC demo: PC host can write/read data to/from USB device
- CDC ACM demo: PC host interacts with the USB device recognized as a virtual COM port
- Limitation: isochronous transfer and IAD for Composite Device with CDC ACM not supported
|
µC/USB™ Device Application Diagram

|
Micrium µC/USB™ Host Stacks
|
The Micrium μ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 μC/USB Host also 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 classes. 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
- 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
Specifications
- Root hub management: yes
- Supported HCD: OHCI, EHCI, vendor-specific (cf. host controller chart)
- Supported devices classes: Hub, Mass Storage, HID, CDC ACM, Printer
- MSC demo: files operations on a Flash drive
- CDC ACM demo: communicating with a USB modem
- Printer demo: raw text printing, font demo, single image printing
- Limitations: isochronous not supported; EHCI driver does not support Split Transaction Protocol
|
µC/USB™ Host Application Diagram

|
|