Universal Serial Bus (USB) is a plug-and-play protocol widely used in embedded devices, ranging from set-top boxes, printers, web and digital cameras to modems, speakers, zip drives, industrial control devices, card readers and cable/DSL modems. Because of its flexibility, simplicity, speed and low-cost, USB connectivity has moved from the PC world to the embedded market. There has been an explosion of plug-and-play, consumer-friendly USB peripherals that has resulted in making USB a standard requirement for embedded device products.
Embedded Access provides our EUSB software stacks for both USB Host and USB Device applications, as well as USB Class Drivers and implementations designed to speed products to market with advanced USB connectivity. Each stack provides complete source code, example drivers and detailed documentation. Designed for integration with the MQX RTOS, and portable to almost any other RTOS, USB software is a great way to jump-start USB product development.
About EUSB Device
The EUSB Device Embedded USB Device stack has been designed for use in embedded devices that require to connect to a PC or another USB host. The EUSB Device stack consists of a USB device API and a USB device controller interface.
The stack supports all four USB transfer types: Control, Interrupt, Bulk and Isochronus. The EUSB Device stack conforms to the USB 1.1 and USB 2.0 standards and protocols. It allows you to use a USB connection as a simple data pipe and also provides USB Class implementations for Mass Storage, HID and CDC devices.
Key Features
- USB 1.1 and 2.0 compliant
- Supports Control, Bulk, Interrupt and Isochronous transfers
- Support Low-speed (1.5 Mb/s), Full Speed (12Mb/s) and High speed (480 Mb/s) operation
- Include device drivers for on-chip device controllers and off-chip device controllers
- Provides a full range of example USB Class implementation
- Full source code provided
- Royalty-Free licensing
- Integrated with the MQX RTOS and MFS FAT file system but desiged to work with any RTOS
EUSB Device Class Implementations
The EUSB Device stack is provided with a Human Interface Device implementation and many other USB Device Class implementations are available including Mass Storage, Communication Device, Media Transfer Protocol and Reliable File Interface. These device class implementations enable developers to quickly use the EUSB Device stack in real-world applications by leveraging these example implementations of these USB classes. Because these device class implementation are provided with full source code they can be easily customized to meet the specific need of a customer’s application.
EUSB HID Class Device Implementation
The EUSB HID Class Implementation provides support for Human Interface Devices such as a mouse, keyboard or joystick. This class is provided as standard with the EUSB Device stack package. The HID class uses the Isochronous transfer type.
EUSB Mass Storage Class Implementation
The EUSB Mass Storage Class Implementation allows an embedded device to act as a flash drive and plug into any host system (such as Window or Linux PC) and to be read by the host’s file system. This implementation of a mass storage device is provided together with optimized drivers for accessing MMC/SD cards or other devices. The EUSB Mass Storage Class Implementation is fully compatible with the MFS FAT file system to allow file access directly on the embedded platform or from a connected USB host.
EUSB Communications Device Class Driver
The EUSB Communications Class Implementation supports standard communication ports. An API is provided which allows the embedded device to act as a virtual Windows COMM port or it can actually provide a virtual Windows COMM port that has its input and output connected to a serial port on the embedded device. The software is provided with a sample application, which has an embedded command line terminal which can be accessed by the standard Windows terminal program (e.g. HyperTerm) through a COMM port over USB interface.