Embedded USB Device Stack: MCCI USB DataPump®

Superior embedded software for USB devices

The MCCI USB DataPump is a complete, portable USB device stack that provides a total solution for engineers designing high-performance multi-function USB peripheral devices. It combines low level chip-control code and high-level device class support in a comprehensive framework, allowing peripheral firmware development engineers to focus on implementing the functions unique to the product, rather than wasting time implementing and debugging common USB operations.

The DataPump supports all defined USB speeds, alone or in combination: low speed, full speed, high speed, SuperSpeed, and SuperSpeed Plus. It also supports High-Speed Inter-Chip (HSIC) USB and SuperSpeed Inter-chip (SSIC) USB, for embedded chip-to-chip applications.

MCCI presently supports the following USB device controller architectures:

MCCI USB DataPump device

IP cores, including

SOCs with embedded USB device controllers, including

  • Freescale i.MX6 family
  • Renesas RX, RZ, and R-Car families
  • Samsung Exynos family
  • Texas Instruments OMAP family
  • NXP LPC1850 family
  • FTDI FT900 family

Dedicated USB device controllers, including

  • Avago PLX USB3380 / USB3382 SuperSpeed USB device controller
  • Renesas R8A66597 high-speed USB device controller

In addition, we support a wide range of legacy and special purpose devices -- contact us if you don't see what you need.

The DataPump incorporates complete support for the USB 3.0 specification, including SSIC USB and HSIC USB support. In addition to SuperSpeed support, the DataPump also lower speed devices (high speed + full speed, full-speed only, or low-speed only).

Support for the following device class protocols is available:

  • Android Debug Bridge (ADB) including support for SecureADB
  • Audio Class 1.0 and 2.0
  • Still Image Class
  • Video Class 1.1
  • Mass Storage Bulk-Only Transport
  • Human Interface Device (HID) 1.1
  • Device Firmware Update (DFU) 1.1, for firmware update over USB
  • CDC (Communications Device Class) 1.1 Wireless Mobile Communication subclass (WMC) for multi-function 2.5G and 3G handsets
  • CDC Network Control Model (NCM) 1.0 and 1.0 with Errata, for high throughput network traffic.
  • CDC Mobile Broadband Interface Model (MBIM) 1.0, for LTE modems and other broadband devices.
  • CDC 1.1 WMC Abstract Control Model (ACM), for traditional modems and modem emulation (more info)
  • CDC 1.1 WMC Device Management
  • CDC 1.1 WMC OBEX (Object Exchange)
  • CDC 1.1 Ethernet Control Model (ECM), for Ethernet-like networking (more info)
  • MCPC GL-004/005 for multi-function 2.5G and 3G cell-phone handsets
  • Microsoft Remote NDIS (RNDIS), for Ethernet-like networking devices, targeting PCs running Windows
  • MCCI Virtual Serial Port (VSP), for migrating RS-232 devices to USB (more info)
  • MCCI Loopback, for test and performance evaluation
  • Networking Control Model (NCM)
  • Other protocols and use-cases can be readily supported, such as for DSRC, etc.

The DataPump is especially suitable for integration with a real-time operating system or as a device driver in a general-purpose operating system; however, it can also be used on devices with no operating system at all. The following operating systems are among those supported by MCCI:

  • ThreadX
  • Nucleus
  • OSE
  • MQX
  • µITRON (also known as uITRON and microITRON)
  • Windows (XP through 8.1, 32 and 64 bit)
  • Windows Compact Embedded
  • Linux (including Android)
  • proprietary

The DataPump has been ported to numerous CPUs, including ARC, ARM (many variants -- basically any architecture from ARMv3 on, including Cortex-M series), MIPS, PowerPC, RX, Tensilica, x86, and amd64 architectures. It is 64-bit clean for both LP64 and LLP64 architectural variants. It is endian-independent. Supported compilers include Realview, Kiel, DesignStudio 5, GCC, Clang, IAR, MetaWare, Microsoft Visual C, and Green Hills.

Matching class drivers for Windows, OS X, Windows CE, Linux, Android, and RTOS are also available.

More information: