USB Device-side Stack


USB Device Stack is a USB device-side stack that complies with USB 1.1 and 2.0 (Full Speed/High Speed). USB (Universal Serial Bus) is widely used not only in PCs and PC peripherals, but also in digital consumer devices such as digital cameras. Building a system by embedding USB Device Stack makes it easy to develop devices that have a USB device function.

USB device function

Provides a target function that supports logical devices in the USB device layer of USB systems. The USB driver provided by USB Device Stack controls the USB controller and receives requests from user applications to establish USB communication.

Transfer types

USB Device 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

Mass Storage Class driver

The Mass Storage Class driver is provided as standard, which makes it easy to support USB for large-capacity devices such as digital cameras. A sample class driver is also included that can be used as reference when creating a custom class.

Supports T-Engine and T-Kernel

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

Availability (Source code provided)

USB Device Stack is available in source code.

Maintenance service and customization service

The following maintenance service is provided for USB Device Stack. The maintenance service enables developers to use USB Device 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 Device Stack in different environments, such as a custom real-time operating system or hardware.

USB Stack  Architecture Diagram


Operating environments

Successful operation of USB Device Stack has been demonstrated in the following USB device controllers.

  • • RZ/A1 built-in controller
  • • Zynq-7000 built-in controller
  • • CycloneVSoC built-in controller
  • • i.MX6 built-in controller

Successful operation has been demonstrated on the following operating systems.