Embedded USB Device Stack

Device Classes      Supported Controllers      Prices      

Thesycon’s USB device software stack implements the core functionality of a USB device and optionally provides device class specific protocols. It enables developers to easily add USB device functionality to embedded systems. Complete USB request processing and error recovery mechanisms that are required for reliable operation are implemented internally. The modular design allows implementation of standard device classes, proprietary USB interfaces and composite devices. A composite device implements multiple logical functions in one physical unit. The software stack can easily be integrated into firmware that is based on an embedded operating system or can be used without an operating system.

System Architecture

 

USB System Architecture

 

 

Embedded USB Device Stack Architecture

 

Embedded USB Device Stack

Available Device Classes
Supported Microcontrollers

 

 

 

 

 

 

Features

 

Embedded USB Device Stack Modules  
USB Device Core The USB device core implements the standard functionality of a USB peripheral and provides an abstraction of hardware dependencies.
Features Implements all USB standard requests
  Implements data transfer through data endpoints
  Provides a programming interface to be used by higher software layers such as device classes
  Available for many microcontrollers
   
CDC/ACM Device Class The CDC/ACM protocol module implements a standard-compliant serial link (RS-232) emulation on top of USB. This provides an easy migration path for existing applications.
Matching Class Drivers Thesycon’s TL-USBCOM Driver for Windows 10
  Thesycon’s CDC/ACM Class Driver for Windows CE and Mobile
  Class drivers included in Mac OS X and Linux.
Features Provides a serial COM port emulation for the host
  Existing Windows applications can be reused unmodified if the class is combined with the CDC/ACM Driver for Windows
  Multiple CDC/ACM instances supported
   
Mass Storage The Mass Storage protocol module emulates a FLASH or CD-ROM drive with
Device Class FAT or ISO file system, respectively. It can be used to exchange data files with the PC or to create a built-in CD-ROM which contains a PC software installation.
Matching Class Drivers Class drivers included in Windows, Windows CE/Mobile, Mac OS X, Linux, and other operating systems
Features Supports FLASH drive and CD-ROM emulation
  CD-ROM emulation supports auto-run feature of Windows
  ISO image for CD-ROM emulation can be stored in compressed format
  Virtual media insertion/removal under software control
  FLASH drive can optionally be write-protected
  Multiple Logical Units (LUN) supported
  Multiple Mass Storage instances supported
    
CDC/ECM Device Class The CDC/ECM protocol provides Ethernet emulation over USB. This approach is especially useful if an embedded system contains a TCP/IP protocol stack.
Matching Class Drivers Thesycon’s CDC/ECM Class Driver for Windows 8/7/Vista/XP
  Thesycon’s CDC/ECM Class Driver for Windows CE and Mobile
  Class drivers included in Mac OS X and Linux
Features Provides a (virtual) Ethernet adapter for the host
  USB cable behaves like a point-to-point Ethernet connection
  Supports TCP/IP communication through standard programming interfaces such as sockets
  Multiple CDC/ECM instances supported
   
CDC/NCM Device Class The CDC/NCM protocol provides Ethernet emulation over USB. This approach is especially useful if an embedded system contains a TCP/IP protocol stack.
Matching Class Drivers Thesycon’s CDC/NCM Class Driver for Windows 8/7/Vista/XP
  Thesycon’s CDC/NCM Class Driver for Windows CE and Mobile
  Class driver included in Linux
Features Provides a (virtual) Ethernet adapter for the host
  USB cable behaves like a point-to-point Ethernet connection
  Supports TCP/IP communication through standard programming interfaces such as sockets
  Optimized for high data throughput
  Multiple CDC/NCM instances supported
   
RNDIS Device Class The Microsoft specific RNDIS protocol provides Ethernet emulation over USB. This approach is especially useful if an embedded system contains a TCP/IP protocol stack.
Matching Class Drivers Host driver included in Windows XP and later, and in Windows CE/Mobile
  Host driver included in Linux
Features Provides a (virtual) Ethernet adapter for the host
  USB cable behaves like a point-to-point Ethernet connection
  Supports TCP/IP communication through standard programming interfaces such as sockets
  Multiple RNDIS instances supported
   
HID Device Class The HID module implements a generic HID (Human Interface Device) function. Applications can communicate with the HID device by means of Windows API functions. No device driver installation is required.
Matching Class Drivers HID class driver included in Windows and Windows CE/Mobile
  Class drivers included in Mac OS X, Linux, and other operating systems
Features Supports transparent communication between PC and device
  No driver installation and no administrator privileges required
  Multiple HID instances supported
   
Audio Device Class 1.0 This module implements USB audio device class v1.0. While the specification applies to USB full speed only, the class module supports high speed as well.
Matching Class Drivers Audio class 1.0 driver included in Windows
  Audio class driver included in Mac OS X and Linux
Features Implements the streaming interfaces for playback and record path
  Supports all synchronization models: synchronous, asynchronous, adaptive
  Implements the feedback endpoint as required for asynchronous mode
  Implements the control interface and various control unit types
   
Audio Device Class 2.0 This module implements USB audio device class v2.0 and supports USB high speed and full speed operation.
Matching Class Drivers Thesycon’s TUSBAudio Class Driver for Windows
  Audio class driver included in Mac OS X and Linux
Features Implements the streaming interfaces for playback and record path
  Supports all synchronization models: synchronous, asynchronous, adaptive
  Implements the feedback endpoint as required for asynchronous mode
  Implements the control interface and various entity types, including clock source, clock selector, etc.
   
MIDI Device Class This module implements USB MIDI device class 1.0 which is an extension to the Audio 1.0 device class. While the specification applies to USB full speed only, the class module supports high speed as well.
Matching Class Drivers Audio class 1.0 driver included in Windows
  Audio class driver included in Mac OS X and Linux
Features Implements the MIDI streaming interfaces for TX and RX data path
  Includes the MIDI parser required for the RX path
   
CCID Device Class This module implements the USB specification for Integrated Circuit(s)
  Cards Interface Devices. This is the USB device class for smart card readers.
Matching Class Drivers CCID class driver for Windows available through Windows Update
  libccid on Linux
Features Implements the USB protocol for smart card readers
   
Raw Bulk Not a standard class. Provides raw data transfer through a bulk IN and a bulk OUT pipe. This class is not available as a separate module but is included in the USB Device Core package.
   

 

Supported Microcontrollers  
NXP  
ARM Cortex-M4 core LPC4300 series:
LPC4320, LPC4322, LPC4323, LPC4325, LPC4327, LPC4330, LPC4333, LPC4337, LPC4350, LPC4353, LPC4357
ARM Cortex-M3 core LPC1700 series:
LPC1751, LPC1752, LPC1754, LPC1756, LPC1758, LPC1759, LPC1764, LPC1765, LPC1766, LPC1768, LPC1769, LPC1773, LPC1774, LPC1776, LPC1777, LPC1778, LPC1785, LPC1786, LPC1787, LPC1788
LPC1800 series:
LPC1820, LPC1822, LPC1823, LPC1825, LPC1827, LPC1830, LPC1833, LPC1837, LPC1850, LPC1853, LPC1857
ARM7 core LPC2300 series:
LPC2388, LPC2387, LPC2378, LPC2368, LPC2366, LPC2364, LPC2362
LPC2400 series:
LPC2478, LPC2470, LPC2468, LPC2460, LPC2458, LPC2420
ARM9 core LPC3100 series:
LPC3130, LPC3131, LPC3141, LPC3143, LPC3152, LPC3154, LPC3180/01
LPC3200 series:
LPC3220, LPC3230, LPC3240, LPC3250
  check availability and prices
   
ST Microelectronics  
ARM Cortex-M7 core STM32F7 series
STM32F745, STM32F746, STM32F756
ARM Cortex-M4 core STM32F4 series
STM32F405, STM32F415, STM32F407, STM32F417, STM32F427, STM32F437, STM32F429, STM32F439, STM32F446, STM32F469, STM32F479
ARM Cortex-M3 core STM32F2 series
STM32F205, STM32F215, STM32F207, STM32F217
  check availability and prices
   

Licensing Conditions & Prices

A device stack license includes the full source code and allows royalty-free distribution of binaries compiled from the sources. Distribution of source code is not permitted. For complete license conditions and prices please fill out request form.

USB Vendor and Product ID

For each USB device model an official USB vendor ID (VID) is required. Vendor IDs must be unique and will be assigned by the USB Implementers Forum (www.usb.org). Registration fees will be charged.

 

Thesycon owns a USB vendor ID and offers a subset of product IDs (PID) to device vendors. For customers who have licensed USB software from Thesycon this service is free of charge.

Keep up to Date

If you would like to be kept informed of product updates, please subscribe to the Thesycon newsletter.

 

 

© 2016 THESYCON

Device Driver - Software Development - Consulting home