USB - Universal Serial Bus

The Universal Serial Bus is an external, packet driven, plug and play, serial, extension bus.

No bus master, all transactions initiated by host controller.

Even interrupts are 'discovered' by host controller using scheduled polling of all devices on bus.

A new device makes its presence know by forcing power and data lines to non-valid states.

Communication is implemented between root controller and logical constructions known as endpoints on each device. A device is capable of implementing 32 endpoints, 16 in and 16 out, but is not required implement all of them.

Endpoints are created as part of a device's initial configuration and are usually associated with specific functions on the device. Function 0 provide configuration information for device.

The connection between the root hub and a set of endpoints on a device is known as a pipe. A pipe is a transient construction created when communication is needed. A pipe may be uni-directional or bi-directional.

Polling :

Configuration :