emUSB-Device

High performance USB-Device Software

Overview

emUSB-Device is high-performance USB-device software that is specifically designed for embedded systems. It is written in ANSI C code and enables easy integration of USB functionality into an embedded system. Multiple standard device classes are provided, which allow a system to behave as thought it were standard USB device, as well as ensure that it can communicate with any host (Windows, Linux, and MacOS).

Some examples of supported standard USB devices include mass-storage devices, keyboards, mice, printers, speakers, modems, RS232 serial adapters, and network adapters. Furthermore, proprietary protocols may be implemented using emUSB-Device's Bulk class. Multiple classes can be combined as needed to form a composite device with multiple interfaces that can be used simultaneously.

Key Features

Compliance and Compatibility

emUSB-Device is compliant with USB 1.1, USB 2.0, and USB 3.0, ensuring broad USB-device compatibility across a wide range of application scenarios. This ensures not only compatibility and interoperability, but also performance, flexibility, potential cost savings, a reduction in cases requiring technical support, and extended device product life

A Small Memory Footprint

emUSB-Device uses very little memory, a major advantage for developers working with embedded systems. Its small USB stack size means processors can be smaller, and users benefit from more choices in MCUs, compatibility with legacy hardware, and reduced bill-of-materials costs

Support for Any Speed

emUSB-Device supports all USB speeds, meaning full speed (12 Mb/s), high speed (480 Mb/s), and super supped (5 Gb/s). For developers, this means that one USB stack can be used across a range of products, seamless backward and forward compatibility, optimized performance for each application, hardware scalability, and optimized power efficiency for respective devices

Use Cases

IP-Over-USB

emUSB-Device enables device configuration, control, and communication for data retrieval without the need for host-driver installation on a PC. Standard IP protocols (HTTP, FTP, etc.) can run over a USB cable, enabling plug-and-play web-browser access.

ip_over_usb

Vendor-Specific Devices

emUSB-Device is customizable for vendor-specific use cases. With features like high-speed data transfer, proprietary control software, and diagnostic tools for devices, it offers impressive levels of both performance and flexibility.

vendor_specific_devices

Human-Interface Devices

emUSB-Device can emulate USB devices, such as keyboards, control panels,mice, or custom human-interface devices (HID) devices. In most cases, no drivers are required, which simplifies setup and use.

human_interface

Components

emUSB-Device consists of three layers : a driver for hardware access, the emUSB-Device core, and at least one USB class driver or a bulk-communication component. USB class drivers (MSD, CDC, HID, RNDIS, IP and MIDI), a bulk-communication component, and a VirtualMSD component can be combined in any way to suit the requirements of any target USB device.

USB class drivers and hardware drivers are separate tailorable packages that can be combined and ordered individually. SEGGER recommends purchasing emUSB-Device as a complete package by selecting the emUSB-Device PRO package. This package includes support for the most common use cases, such as HIDs for user interaction, file storage and transfer, and serial communication support. The following table shows which modules are part of the PRO package and which are optional.

Ethernet Communication

emUSB-Device IP

Cross-platform IP-Over-USB Communication

emUSB-Device RNDIS

Ethernet over USB communication via Remote Network Driver Interface Specification (RNDIS) protocol

emUSB-Device ECM

Ethernet over USB communication via Communication Device Class (CDC)/Ethernet Control Module (ECM) protocol (CDC-ECM)

emUSB-Device NCM

Ethernet over USB communication via Communication Device Class (CDC)/Network Control Module (NCM) protocol (CDC-NCM)

Mass Storage

emUSB-Device VirtualMSD

Virtual Mass Storage Device (MSD); contains emUSB-MSD

emUSB-Device MSD

Mass Storage Device (MSD) class

emUSB-Device MTP

Mass Storage via Media Transfer Protocol (MTP)

Serial Communication

emUSB-Device CDC

Serial communication over USB via Communication Device Class (CDC)/Abstract Control Module Protocol (CDC-ACM), typically with RS-232 emulation

emUSB-Device HID

Human-Interface Device (HID) class component (e.g. mouse, keyboard)

emUSB-Device Printer

Printer Protocol Class

Multimedia

emUSB-Device Audio

Audio

emUSB-Device Video

USB Video Class

emUSB-Device MIDI

Musical Instrument Digital Interface (MIDI) class

Other

emUSB-Device Bulk

Bulk Class

emUSB-Device DFU

USB Device Firmware Upgrade (DFU) class

emUSB-Device CCID

USB Chip Card Interface Device (CCID) class

Drivers and Supported Controllers

emUSB-Device supports an extensive range of MCUs with on-chip USB controllers. The driver interface has been designed so that it is possible to use the most common USB device controllers, as well as add drivers for USB controllers that have yet to be supported.

Licensing

The software is available under various embedded software license models and can be delivered as source code. All commercial licenses are based on a one-time payment, are royalty-free, and include six months of updates and support from SEGGER’s Embedded Experts.

There are no subscription fees, ensuring predictable and fixed costs over the entire product lifetime.

For non-commercial use, evaluation, and educational purposes, the software is provided under SEGGER’s Friendly License.