Embedded USB Stack - Host, Device & On The Go

To meet the demands of modern applications, you need a real-time USB stack that is optimized for performance and reliability. RoweBots has chosen to support a variety of USB Stack options provided by the various semiconductor vendors. These various stacks provide exactly what a typical user needs to configure USB Stack support for real-time hosts and device peripherals.

USB provides a flexible and user-friendly architecture for connecting a diverse range of peripherals to systems. Originally developed for the personal computing and consumer electronics market, USB is now being increasingly used in embedded systems to ease integration and facilitate in-the-field hardware upgrades. USB 1.1 provides bandwidth up to 12 Mb/s and USB 2.0 provides up to 480 Mb/s. This higher performance is required for data intensive applications.

Universal Serial Bus is a point-to-point tree-like topology with the host at the root of the tree. The "branches" of the tree are extended using USB hubs which are USB devices themselves. Up to 127 devices can be attached in this hierarchy in total.

The tree begins at the "root" which comprises of a host controller. A host controller implements the serial packet transfer hardware: transmit and receive, error detection, frame management and DMA that host software can use to communicate with USB devices. The details of packet transfers can be found in the USB specification. Full support for this protocol USB Stack is provided as part of DSPnano and Unison; however, transparent multiprocessor support is not currently implemented.

Weather you are delivering a high end multicore application with our Unison RTOS or a tiny DSPnano based system, our USB Stack offerings are ready to run, right out of the box, configured for your target hardware.

The features of the USB Stack include:

  • simple ANSI C interface consistent with POSIX file and socket I/O
  • support for hosts, devices and on the go
  • a separate hardware API to simplify device driver support
  • high performance
  • a very simple device driver structure which is easy to adapt to new devices
  • seemless integration and automatic device creation

The USB stack also has a variety of options for the various types of peripherals. This list includes: hid, mass storage, printers, serial devices, audio devices and more.  Low cost dongle options are supported. 

The USB host device classes allow users to easily write and read files from USB data sticks, communicate using a serial bit stream, get keyboard or mouse input, and accept or send data to a USB audio device.   With off the shelf support and a simple user interface, it is easy to get files from an embedded target, write them onto a usb data stick and then read them on a host workstation of some kind.  In a similar  fashion, serial data can be sent to and from a usb serial device simply by configuring a few parameters and reading and writing files.  The standard POSIX interfaces for communication with attached USB hosts and devices offer total ease of use for things like usb to serial converters whether they are based on common chips or FTDI.  


The USB device support is comprehensive including audio, hid (mouse and keyboard), serial and mass storage support.   In an identical fashion to the USB host support, the device support utilizes simple functions for setup and standard POSIX file I/O and network I/O calls for device interaction.  Using this approach, porting of applications to the environment is very simple and using the USB device support requires no special training.  


USB on the go (OTG) is a combination of USB host and USB device.  In this case, another protocol is used at startup which allows eiher end to be either host or device.  There is also special cables that are required.  This combination will allow devices to be connected by a single standard cable and then, depending on the circumstances, setup one as the host and the other as the device.  If all the drivers and support are present, this approach works well.  Difficulties do arise with respect to drivers in this configuration because on the fly installation is not possible on any system.   It is not true on Unison in any case.


For addition information about our USB Stack, please contact us.