This chapter provides a brief introduction into the Universal Serial Bus (USB) in general, and may be skipped if you are already familiar with the bus, and its software and hardware architecture.
In 1994 an alliance of four industrial partners (Compaq, Intel, Microsoft and NEC) started to specify the Universal Serial Bus (USB). The bus was originally designed with these intentions:
Connection of the PC to the telephone
Ease-of-use
Port expansion
The specification (version 1.0) was first released in January 1996 and the latest official version 1.1 was released in September 1998 The document is still under development and a version 2.0 was announced in 1999. The USB is strictly hierarchical and it is controlled by one host. The host uses a master / slave protocol to communicate with attached USB devices. This means that every kind of communication is initiated by the host and devices cannot establish any direct connection to other devices. This seems to be a drawback in comparison to other bus architectures but it is not because the USB was designed as a compromise of costs and performance. The master / slave protocol solves implicitly problems like collision avoidance or distributed bus arbitration. The current implementation of the USB allows 127 devices to be connected at the same time and the total communication bandwidth is limited to 12Mbit/s. Howewer use of low speed devices, management of USB "interrupts" and other overheads mean that actual throughput cannot exceed about 8.5Mbit/s under near ideal conditions, and typical performance may be around 2Mbit/s.