Thesycon’s USB host software stack implements full USB host functionality, including external hub support, and optionally provides device class drivers. It enables developers to easily add USB host functionality to embedded systems.
The software stack complies with the USB v1.1 and USB v2.0 specifications. It supports all transfer modes (control, bulk, interrupt, isochronous) at low, full and high speed. USB pipe management and extended error recovery mechanisms that are required for reliable operation are implemented internally.
The modular design enables applications to access the USB host programming interface directly, or to use APIs exposed by class drivers. At its upper edge a class driver typically attaches to an operating system module such as a file system.
The stack can handle multiple devices and hubs simultaneously and fully supports hot plugging of devices and hubs. The programming interface supports dynamic device enumeration and identification.
The USB Bus Driver consists of the USB Host Controller Driver and the USB Bus Driver Core.
The USB Host Controller Driver encapsulates the host controller specific USB implementation. The USB Bus Driver Core provides the generic USB Host functionality.
The HID (Human Interface Devices) class driver handles common input devices such as keyboards and mice.
The HID Demo application represents a plain sample for the usage of the USB Bus Driver API. No additional USB class driver is used. It supports the mouse and keyboard protocol of the HID class and displays the communication data of connected devices. So the user can reproduce the movement of the mouse or a keystroke on the keyboard.
The Mass Storage class driver controls external flash memory devices (USB memory sticks) and hard disk drives. It needs to be combined with a file system module which typically implements FAT file system support.
The Mass Storage Demo application represents a plain sample for the usage of the mass storage class driver API. The demo application uses the file system emFile from Segger. If a USB mass storage device is connected a file is written to the device and verified. Afterwards the achieved data rate is displayed.
The Printer class driver provides a transport layer that allows to send data to a USB printer. In most cases it will be combined with a printer driver which formats the data to be printed.
In the future, Thesycon will provide further class drivers.
The USB host stack firmware is written in ANSI-C and can be ported to any hardware platform. For easy integration the software is designed as a library and provided as source code. The library requires a few system services which are encapsulated by an abstraction layer. This layer needs to be implemented in a platform-specific way. This way the stack can be integrated into any embedded OS, or can be used in stand-alone applications. The host stack supports 32-bit and 16-bit CPUs and works in either endian mode.
The demo package includes:
Note: The source code and the appropriate project files contained in the demo package are for documentation only. It is not possible to recompile the applications.
Embedded USB Host Stack Product Sheet ![]()
Embedded USB Host Stack Manual ![]()
When designing a USB device you need an official USB vendor ID (VID) which is unique world-wide. Vendor ID's will be assigned by the USB Implementers Forum (www.usb.org). There is a fee of $1500 US.
Thesycon owns a USB vendor ID and provides a subset of product ID's (PID) to customers who licensed our USB software.
If you would like to be kept informed of product updates, please subscribe to the Thesycon newsletter.
© 2011 THESYCON