CATCUSBConnectivity DeviceUSB Protocol Software


The CATC USB4DOSTM Protocol Stack software package from Computer Access Technology Corporation provides USB support under DOS for production line testing and embedded applications. DOS application developers needing to communicate with USB devices now have the ability to do so in a clear, straightforward manner. Using a simple software interface, applications can configure USB devices, monitor their activity in real time while quickly transferring data back and forth between them.
DOS is often the production test environment of choice, simpler, more stable and faster to boot and to operate than Windows based systems. A production tester must provide a way to test both the functionality of the USB port itself, and then, through that port, the specific functionality of the USB device. Combining the USB4DOS software with specific test applications produces an ideal test setup for USB devices such as keyboards, mice, joysticks, printers, monitors, cameras, scanners, mass-storage devices, etc.
Additionally, USB4DOS offers embedded systems designers the ideal software solution for their DOS-based applications. USB4DOS allows fast and simple connection to existing or to newly developed USB devices.

Applications

Test environment for production line testing and embedded applications

Features

  • Simple API enables communication between DOS applications and USB devices
  • Complies with USB 1.1 specification
  • Supports both UHCI and OHCI environments
  • Supports full-speed and low-speed USB devices
  • Supports the connection of multiple devices (up to 127)
  • Supports "plug and play" operation
  • Supports Control, Bulk, Interrupt, and Isochronous USB transfer modes
  • Keeps track of protocol errors
  • Can be incorporated into customer systems and manufacturing test environments (custom integration service available)
  • One year warranty and hot-line customer support

USB4DOS includes two main components: a DOS USB stack (implemented as a pair of TSR executables) and an Application Program Interface (API), complete with sample source code that illustrates typical interfaces between software applications and the USB4DOS components. The API sample source code includes several typical application architectures, enabling developers to quickly create custom applications. The API and its usage are described in the User's Manual.

USB4DOS System Overview

  • UHCIDRVR.EXE and OHCIDRVR.EXE: these drivers control the USB host controller. Only one driver is used on any particular platform, matching the type of host controller used, either UHCI (Universal Host Controller Interface) or OHCI (Open Host Controller Interface). A client DOS application uses this driver to communicate with the USB device. The driver receives client requests and translates them into low-level commands that are sent to the host controller.
  • DEVMNGR.EXE: this component manages the USB devices. It keeps a table of all the attached devices with the description of the devices.
  • USB4DOS.CFG: this file contains driver parameters which may be modified (prior to starting the drivers) to optimize performance for specific applications/environments.
  • Diskette Organization: USB4DOS software and documentation are supplied on disk, and are easily installed by executing the INSTALL.EXE program.
USB4DOS Operational Description

Overall operation of USB4DOS is carried out in just six steps:
  • Registering a Client Application: starting USB activity by registering with the Device Manager
  • New Device Initialization: the Device Manager automatically performs these functions.
  • Opening Pipes: operation begins upon notification that a USB device is connected.
  • USB Traffic: data transfer and control begins to and from the device.
  • Device Disconnection: the Device Manager automatically notifies the associated client of the disconnect.
  • Client Unload: when a client needs to shut down, all devices related to the client are freed from the system.

Hub Driver Interface

Hub management is not an internal component of USB4DOS. In most cases the hub driver is implemented largely as a standard client application. A comprehensive Hub driver is available from CATC.

USB4DOS.CFG Parameters

The USB4DOS.CFG configuration file contains a variety of system parameters, which can be adjusted for optimum performance in a particular environment.

Client Interfaces

There are various interfaces used by client applications to communicate with the USB4DOS components.

Device Manager Interfaces:

  • Identify: a client can use this command to ascertain whether or not the Device Manager is present (i.e. has been loaded and is operational).
  • Register: a client uses this command to register with the Device Manager, providing the addresses of two callback functions: ATTACH() and DETACH().
  • Unload: a client uses this command to inform the Device Manager that it is unloading itself from memory: Hub Device Attached and Hub Device Detached
Host Controller Driver Interface:
  • USB Operations (Command Codes): the _USB_REQUEST structure contains a command code indicating the nature of the desired USB operation.