USB Host-side Stack


USB Host Stack is a host-side protocol stack that complies with USB 1.1 and 2.0 (Full Speed/High Speed) for implementing a USB host function on an embedded system. Building a system by embedding USB Host Stack enables communication with USB devices without using a PC.

USB host functions

The following USB host functions that are defined by the USB specification are provided:

  • • Detection of USB device insertion/removal
  • • Management of USB standard requests via control transfers
  • • Management of data flow between host and devices
  • • Support for hubs to enable management of multiple USB devices

Transfer types

USB Host Stack supports the following transfer types.

  • • Control transfer: Control data transfer between host and target 
  • • Bulk transfer: Transfer of relatively large amounts of data or non-periodic data transfer
  • • Interrupt transfer: Periodic transfer of relatively small amounts of data
  • • Isochronous transfer: Method used for transfer when real-time transfer is required

Includes sample class drivers

Includes sample classes that can be used as reference when creating a custom class driver.

Optional Class drivers available

The following class drivers are provided as an option.

  • • Mass Storage Class diver
  • • ACM(Abstract Control Model) supported Communication Device Class driver
  • • Audio Class driver

The Mass Storage Class driver provides a storage function when the connected device, such as a large-capacity device or digital camera, supports the Mass Storage Class. The features of the Mass Storage Class driver are as follows:

  • • Supports the Bulk-Only and CBI transfer protocols
  • • Supports the following subclasses: 
  •  o SCSI transparent command set
  •  o SFF-8020i
  •  o SFF-8070i
  •  o MMC-2(ATAPI) 
  • • Supports multiple LUNs

High Portability

USB Host Stack itself is written in the C language and is not dependent on any CPU. Host controller drivers and code dependent on the operating system are separated to ensure easy porting to a different environment.

Supports T-Engine and T-Kernel

USB Host Stack supports T-Engine and T-Kernel.

Availability (Source code provided)

USB Host Stack is available in source code.

Maintenance service and customization service

The following maintenance service is provided. The maintenance service enables developers to use USB Host Stack with peace of mind. 

  • • Response to email inquiries regarding the product
  • • Minor version upgrades

In addition, a customization service is available for supporting USB Host Stack in different environments, such as a custom real-time operating system (RTOS) or hardware.

USB Stack Architecture Diagram

Operating environments

Successful operation of USB Host Stack has been demonstrated in the following environments :
Host controller: UHCI/OHCI/EHCI

  • • TMS320DM35x (Texas Instruments) built-in controller
  • • TMS320DM644x (Texas Instruments) built-in controller
  • • SH7727 (Renesas Technology) built-in controller
  • • S1R72V05 (Seiko Epson) 
  • • μPD720101 (NEC Electronics) 
  • • VR5500 (NEC Electronics) built-in controller

An RTOS is required for operating USB Host Stack. Please contact us for details about the compatible RTOS and development environments. 

Options and related products

Optional products: Class drivers

Mass Storage Class
Communication Device Class
Audio Class
HID Class

  • Other class drivers will be supported in the near future.