!USBInfo User Manual

2. Technical Backgrounds

USB provides a very convenient manner for the end-user to connect a variety of devices, such as keyboards, scanners, printers, storage devices, etc. Below the surface however, it's a very complex system of high speed signals, power distribution and protocols. In order to create a true standard, the USB Implementers Forum (USB-IF) supervises and monitors the implementation of the USB 2.0 standard, to which all USB devices should comply. Creating a standard is not an easy task. The USB-IF has to protects the interest of both manufacturers and end-users, advise on protocol standards, and still allow maximum flexibility for all parties. The USB-IF is a non-profit organisation, formed by many players in the international mass market.

USB Classes

USB devices are devided into classes and each class has its own specification, protocols, etc. E.g. printers fall into a different class then, say, a keyboard as it's a completely different device, using different data rates, protocols, drivers and software.

Technical structure

The internal organisation within a device is very strict. At the top level we've got the Device (e.g. a keyboard). Common things, such as power requirements, control, configuration and speed are defined at Device level. Different Configurations may exist within the Device, but only one can be active at any time. Most devices have only one Configuration though. Within the current Configuration are one or more Interfaces. A simple device, such as a mouse, will generally contain just one Interface. More complex interfaces (e.g. a webcam or a keyboard/mouse combination) may contain multiple Interfaces. Each interface may have one or more Alternates defined. Alternate interfaces may be used whenever the host system wants to select a specific feature. E.g. a webcam generally has a large number of Alternates for its camera interface, each specifying a different packet size. It's then up to the host system to select the Alternate that best fits the available bandwidth. Each Interface (or indeed Alternate Interface) may have any number of Endpoints. An Endpoint is the lowest level within the Device and can only be used for a single task. The data in an Endpoint can flow in only one direction (IN or OUT) and the Endpoint Type determines how the data will be handled. Endpoints can be of the type Control, Interrupt, Bulk or Isochronous. One Endpoint (Endpoint 0) will always be present. This endpoint is of the type Control and is the prime entrance when 'talking' to the Device. All other Endpoints are optional. If a device is bi-directional (e.g. a printer) it needs at least two more Endpoints: one for Bulk Data IN and one for Bulk Data OUT. |  |

The Status window of !USBinfo, will show the above internal structure in a graphical manner, like this:

| © Copyright Paul Reuvers X-Ample Technology bv usb@xat.nl Last changed: Last changed: Friday, 25 July 2003 - 14:14 CET.