Universal Serial Bus (USB) Is A Specification
Universal Serial Bus (USB) Is A Specification
USB was designed for personal computers, but it has become commonplace on other devices such
as smartphones, PDAs and video game consoles, and as a power cord. As of 2008, there are about 2
billion USB devices sold per year, and approximately 6 billion total sold to date.[4]
Unlike older connection standards such as RS-232 or Parallel port, USB connectors also supply electric
power, so many devices connected by USB do not need a power source of their own.
History
The USB is a standard for peripheral devices. It began development in 1994 by a group of seven
companies: Compaq, DEC, IBM, Intel, Microsoft, NEC and Nortel. USB was intended to make it
fundamentally easier to connect external devices to PCs by replacing the multitude of connectors at the
back of PCs, addressing the usability issues of existing interfaces, and simplifying software configuration
of all devices connected to USB, as well as permitting greater bandwidths for external devices. The first
silicon for USB was made by Intel in 1995.
The USB 1.0 specification was introduced in January 1996. The original USB 1.0 specification had a data
transfer rate of 1.5 Mbit/s. The first widely used version of USB was 1.1, which was released in
September 1998. It allowed for a 12 Mbit/s data rate for higher-speed devices such as disk drives, and a
lower 1.5 Mbit/s rate for low bandwidth devices such as joysticks.
The USB 2.0 specification was released in April 2000 and was standardized by the USB-IF at the end of
2001. Hewlett-Packard, Intel, Lucent Technologies (now Alcatel-Lucent), NEC and Philips jointly led the
initiative to develop a higher data transfer rate, with the resulting specification achieving 480 Mbit/s, a
fortyfold increase over 12 Mbit/s for the original USB 1.1.
The USB 3.0 Specification was published in 12 November 2008. Its main goals were to increase data
transfer rate (up to 5Gbps), decrease power consumption, increase power output and be backwards
compatible with USB 2.0. USB 3.0 includes a new, higher speed bus called SuperSpeed in parallel with
the USB 2.0 bus. For this reason, the new version is also called SuperSpeed. The first USB 3.0 equipped
devices were presented in January 2010.
The System
A USB system has an asymmetric design, consisting of a host, a multitude of downstream USB ports, and
multiple peripheral devices connected in a tiered-star topology. Additional USB hubs may be included in
the tiers, allowing branching into a tree structure with up to five tier levels. A USB host may have multiple
host controllers and each host controller may provide one or more USB ports. Up to 127 devices,
including hub devices if present, may be connected to a single host controller. [11] [12]
USB devices are linked in series through hubs. There always exists one hub known as the root hub,
which is built into the host controller.
So-called sharing hubs, which allow multiple computers to access the same peripheral device(s), also
exist and work by switching access between PCs, either automatically or manually. Sharing hubs are
popular in small-office environments. In network terms, they converge rather than diverge branches.[citation
needed]
A physical USB device may consist of several logical sub-devices that are referred to as device functions.
A single device may provide several functions, for example, a webcam (video device function) with a built-
in microphone (audio device function). Such a device is called a compound device in which each logical
device is assigned a distinctive address by the host and all logical devices are connected to a built-in hub
to which the physical USB wire is connected. A host assigns one and only one device address to a
function.
USB endpoints actually reside on the connected device: the channels to the host are referred to as pipes.
USB device communication is based on pipes (logical channels). A pipe is a connection from the host
controller to a logical entity, found on a device, and named an endpoint. The term endpoint is occasionally
incorrectly used for referring to the pipe. However, while an endpoint exists on the device permanently, a
pipe is only formed when the host makes a connection to the endpoint. Therefore, when referring to a
particular connection between a host and a USB device function, the term pipe should be used. A USB
device can have up to 32 endpoints: 16 into the host controller and 16 out of the host controller. But, as
one of the pipes is required to be of a bi-directional type (the default control pipe), and thus uses 2
endpoints, the theoretical maximum number of pipes is 31. USB devices seldom have this many
endpoints.
There are two types of pipes: stream and message pipes depending on the type of data transfer.
isochronous transfers: at some guaranteed data rate (often, but not necessarily, as fast as
possible) but with possible data loss (e.g. realtime audio or video).
interrupt transfers: devices that need guaranteed quick responses (bounded latency) (e.g.
pointing devices and keyboards).
bulk transfers: large sporadic transfers using all remaining available bandwidth, but with no
guarantees on bandwidth or latency (e.g. file transfers).
control transfers: typically used for short, simple commands to the device, and a status response,
used, for example, by the bus control pipe number 0.
A stream pipe is a uni-directional pipe connected to a uni-directional endpoint that transfers data using
an isochronous, interrupt, or bulk transfer. A message pipe is a bi-directional pipe connected to a bi-
directional endpoint that is exclusively used for control data flow. An endpoint is built into the USB device
by the manufacturer and therefore exists permanently. An endpoint of a pipe is addressable with
tuple (device_address, endpoint_number) as specified in a TOKEN packet that the host sends when it
wants to start a data transfer session. If the direction of the data transfer is from the host to the endpoint,
an OUT packet (a specialization of a TOKEN packet) having the desired device address and endpoint
number is sent by the host. If the direction of the data transfer is from the device to the host, the host
sends an IN packet instead. If the destination endpoint is a uni-directional endpoint whose manufacturer's
designated direction does not match the TOKEN packet (e.g., the manufacturer's designated direction is
IN while the TOKEN packet is an OUT packet), the TOKEN packet will be ignored. Otherwise, it will be
accepted and the data transaction can start. A bi-directional endpoint, on the other hand, accepts both IN
and OUT packets.
Endpoints are grouped into interfaces and each interface is associated with a single device function. An
exception to this is endpoint zero, which is used for device configuration and which is not associated with
any interface. A single device function composed of independently controlled interfaces is called
a composite device. A composite device only has a single device address because the host only assigns
a device address to a function.
When a USB device is first connected to a USB host, the USB device enumeration process is started.
The enumeration starts by sending a reset signal to the USB device. The data rate of the USB device is
determined during the reset signaling. After reset, the USB device's information is read by the host and
the device is assigned a unique 7-bit address. If the device is supported by the host, the device drivers
needed for communicating with the device are loaded and the device is set to a configured state. If the
USB host is restarted, the enumeration process is repeated for all connected devices.
The host controller directs traffic flow to devices, so no USB device can transfer any data on the bus
without an explicit request from the host controller. In USB 2.0, the host controller polls the bus for traffic,
usually in a round-robin fashion. The slowest device connected to a controller sets the bandwidth of the
interface. For SuperSpeed USB(defined since USB 3.0), connected devices can request service from
host. Because there are two separate controllers in each USB 3.0 host, USB 3.0 devices will transmit and
receive at USB 3.0 data rates regardless of USB 2.0 or earlier devices connected to that host. Operating
data rates for them will be set in the legacy manner.
1VBUS Red+5 V2
D− WhiteData − 3
D+ GreenData +4