emUSB has been designed to work on any embedded system with USB controller. Ports for most common USB devices are available. It can be used with USB 1.1 or USB 2.0 devices at low, full and high speed.
The new emUSB host stack supports hot plugging of hubs and devices. The host stack includes class drivers for MSD, CDC, HID and printers. The driver supports multi-interface and multi-configuration devices. With USB pipe management and extended error recovery mechanisms the stack is perfectly equipped for reliable operations. The new stack follows all SEGGER standards: small footprint, efficiency, high performance and easy to use.
The emUSB device stack provides four different components. There is the HID for Human interface devices, the MSD device for mass storage devices, the CDC for communication devices and the bulk component for specialized USB devices not fitting into the other categories. The emUSB device stack has three layers: A driver for hardware access, the emUSB core and either a USB class driver or the bulk communication component.
Bulk communication component
emUSB-Bulk allows developers to quickly and painlessly develop software for an embedded device that communicates with a PC via USB.
The communication is like a single, high speed, reliable channel (very similar to a TCP connection). It basically allows the PC to send data to the embedded target, the embedded target to receive these bytes and reply with any number of bytes. The PC is the USB host, the target is the USB client. Bulk communication allows usage of the full bandwidth of the USB bus.
The device stack consists of an embedded side, which ships in source code form, and a driver for the PC, which is typically shipped as executable (.sys). ( The source of the PC driver is also available.)
emUSB-MSD allows to use the embedded target device as a USB mass storage device. It can simply be used to plug-in the device and use it just like an ordinary disk drive, without the need to develop a kernel mode driver for the host operating system. This is possible because the mass storage class is one of the standard device classes, defined by the USB Implementers Forum. Virtually every major operating system on the market supports these device classes out of the box.
emUSB-CDC converts the target device into a serial communication device, meaning it is recognized by the host as a serial interface. (USB2COM, virtual COM port). It allows the use of software which is not designed to be used with USB, such as a device data-logger or terminal program.
emUSB-HID converts the target into a human interface device. It is recognized by the host as a device suitable to enable human interaction with the host like a keyboard or mouse.
More information, demos and free trial versions can be found at SEGGER's homepage: www.segger.com