USB Generic Drivers



Some applications are too specialized or too new to fit well into an existing driver framework. For these products, MCCI® provides a general purpose USB driver, which can be used with the MCCI USB DataPump® to develop a wide variety of special purpose devices.

MCCI has a generic USB driver, which allows any ring-three application to do USB. In this approach, a USB-aware application uses the MCCI generic USB drivers to directly issue USB commands to a remote device. A complete API is available from MCCI for using this driver. This could be readily prototyped with the MCCI USBIOEX application.

The general purpose drivers are useful for:
  1. industrial measurement and control
  2. product prototyping and testing
  3. migrating special purpose ISA devices to USB
The general purpose driver API allows applications to:
  1. discover the devices that are present.
  2. read device descriptors and structural information.
  3. select alternate interfaces and configurations.
  4. issue read and write operations to bulk, interrupt and isochronous pipes.
  5. issue arbitrary control operations to the default pipe.
  6. control operation timeouts for each pipe.
  7. reset and abort each pipe.
  8. force the entire device to be reenumerated.
One example of how this might be used is to implement a general-purpose digital I/O interface. On the firmware side, the developer starts by coding a simple protocol module. This module might use a bulk-out pipe to receive a bit image of the levels to be applied to the digital outputs. If 16 outputs are controlled, then each pair of bytes received on the bulk OUT pipe could represent a new set of 16 output levels. An INTERRUPT IN pipe could be used to periodically sample the levels on the digital input lines of the module, and forward the inputs to the host. Control-pipe commands addressed to the interface would be used to control the direction of the I/O lines for each bit, set watchdog timers, and so forth.

On the host, any Win32 application can use the standard Windows CreateFile, ReadFile, WriteFile, and DeviceIoControl APIs to access the device using the general purpose drivers. No kernel-mode programming is needed.

Supported Device Features
  • Up to 999 devices per system
  • Multiple configurations per device
  • Multiple interfaces per interface
  • Multiple alternate settings per interface
  • Generic driver can be used at device level or to control a single interface of a multi-function device
Supported Operating Systems
  • Windows 8 (32- or 64-bit
  • Windows 7 (32- or 64-bit)
  • Windows Vista (32- or 64-bit)
  • Windows XP (32- or 64-bit)
Supported Endpoint Types
  • Control, endpoint sizes 8, 16, 32, 64 bytes
  • Bulk IN and OUT, endpoint max packet sizes 8, 16, 32, 64 bytes
  • Interrupt IN, endpoint max packet sizes 1..64 bytes
  • Isochronous IN and OUT, endpoint max packet sizes 1..1023 bytes
What's Included

The basic package includes the following components:
  • Generic USB Driver Files
  • USBIOEX application
  • "Generic Driver OEM Guide"



Back to top