Extra:USB

From COMP15212 Wiki
Depends on IO

USB is far more complicated than we would cover here. More details are widely available and you can download the various standards from source if you feel inclined!

(The USB spec. runs to over 100 MB download for example (last checked: v. 3.2 – 22/09/2017).)

In brief, USB provides a local network, controlled by a central computer and intended for I/O devices. A multitude of different devices support the interface, falling into two basic categories:

  • Real-time devices provide data streaming data for video, audio etc.
  • Best effort devices provide reliability for data storage, download etc.


When a device is ‘plugged in’ there is some control dialogue with the USB driver software which negotiates its wants and needs. It is then scheduled some time across the connection.

Multiple devices can be used simultaneously by timesharing the USB connection and splitting/steering communication via ‘hubs’; (in principle) up to 127 independent devices can be supported on a single USB interface. In communications parlance this is known as “Time-Division Multiplexing” (TDM).

USB TDM

The sharing of the USB medium for multiple I/O devices is similar to the way a processor’s time is shared amongst processes, according to need, priority etc.

USB network

The USB driver detects connections (and disconnections), identifies each device and connects to an appropriate driver which deals with the specifics of its own device. The USB software is also responsible for scheduling the communications and allocating – and sometimes rationing – this resource.

USB connections