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 HID (Human Interface Devices) class driver handles common input devices such as keyboards and mice.
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 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. For this purpose there is an Evaluation Version available.
The HID Demo application is implemented on top of the USB Bus Driver. It represents a plain sample for the usage of the USB Bus Driver API. No additional USB class driver is used. The HID Demo Application 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 Thesycon Test Application is implemented on top of the USB Bus Driver. It represents a plain sample for the usage of the USB Bus Driver API. No additional USB class driver is used. The Thesycon Test Application is designed to test the data transfer (control, bulk, and interrupt) between the host and a device. This demo application requires a USB device which supports a special test protocol. There is a demo application for Thesycon’s Embedded USB Device Stack available which supports this test protocol. Therefore it is possible to use the supported device controller of the Embedded USB Device Stack as test devices for the Embedded USB Host Stack.
The Mass Storage Demo application is implemented on top of Thesycon’s mass storage class driver. It 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.
Embedded USB Host Stack Product Sheet ![]()
Embedded USB Host Stack Manual ![]()
USB Mass Storage Device Class Reference 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.
© 2010 THESYCON