Introduction to the 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 supports any of the following speeds, alone or in combination: low speed, full speed, high speed, SuperSpeed, and SuperSpeed Plus. The MCCI USB DataPump encapsulates low level chip-control code and high-level device class support in a comprehensive framework, allowing peripheral firmware development engineers to focus on implementing peripheral functions.

MCCI presently supports the following USB device controller architectures:

MCCI USB DataPump device

IP cores, including

  • Synopsys DesignWare SuperSpeed USB 3.0 IP (including USB 3.0 OTG)
  • Synopsys DesignWare High-Speed OTG IP
  • Cadence High-Speed device IP
  • Mentor Graphics Inventra High-Speed On-The-Go IP (MUSBMHDRC)

SOCs with embedded USB device controllers, including

  • Freescale i.MX6 family
  • Renesas RX and R-Car families
  • Samsung Exynos family
  • Texas Instruments OMAP family
  • NXP LPC1850 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 spseed + full speed, full-speed only, or low-speed only).

Support for the following device class protocols is available:

  • 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)

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 Greenhills.

Matching class drivers for Windows, MacOS, Windows CE and Linux are also available.

More information: