USB 2.0 Spec.: - Chapter4 Architectural Overview - Chapter5 USB Data Flow Model
USB 2.0 Spec.: - Chapter4 Architectural Overview - Chapter5 USB Data Flow Model
Bus Topology
USB 127
Bus Topology
Due to timing constraints allowed for hub and
cable propagation times, the maximum number of
tiers allowed is seven (including the root tier).
Note that in seven tiers, five non-root hubs
maximum can be supported in a communication
path between the host and any device.
A compound device (see Figure 4-1) occupies two
tiers; therefore, it cannot be enabled if attached at
tier level seven. Only functions can be enabled in
tier seven.
Electrical
The USB transfers signal and power over a
four-wire cable, shown in Figure 4-2.
There are three data rates:
High-speed signaling bit rate is 480 Mb/s.
Full-speed signaling bit rate is 12 Mb/s.
Low-speed signaling bit rate is 1.5 Mb/s.
Electrical
USB 2.0 host controllers and hubs provide
capabilities so that full-speed and low-speed data
can be transmitted at high-speed between the host
controller and the hub, but transmitted between the
hub and the device at full-speed or low-speed.
The clock is transmitted, encoded along with the
differential data.
The clock encoding scheme is NRZI with bit
stuffing to ensure adequate transitions.
A SYNC field precedes each packet to allow the
receiver(s) to synchronize their bit recovery clocks.
Device Endpoints
Each USB logical device is composed of a collection of
independent endpoints.
Each logical device has a unique address assigned by the
system at device attachment time.
The combination of the device address, endpoint
number, and direction allows each endpoint to be
uniquely referenced.
Each endpoint is a simplex connection that supports data
flow in one direction: either input or output.
Endpoints other than those with endpoint number zero
are in an unknown state before being configured and
may not be accessed by the host before being
configured.
Control Transfer
Bulk Transfer
Interrupt Transfer
Isochronous Transfer
Control Transfer
Bursty, non-periodic, host software-initiated
request/response communication,typically used for
command/status operations.
Control transfers are supported via bi-directional
communication flow.
The allowable maximum control transfer data
payload sizes for full-speed devices is 8, 16, 32, or
64 bytes; for high-speed devices, it is 64 bytes and
for low-speed devices, it is 8 bytes.
A Setup packet is always eight bytes.
Bulk Transfer
A bulk pipe is a stream pipe and, therefore, always has
communication flowing either into or out of the host
for a given pipe. If a device requires bi-directional bulk
communication flow, two bulk pipes must be used,one
in each direction.
The USB defines the allowable maximum bulk data
payload sizes to be only 8, 16, 32, or 64 bytes for fullspeed endpoints and 512 bytes for high-speed
endpoints.
Only full-speed and high-speed devices can use bulk
transfers.
There is no time guaranteed to be available for bulk
transfers as there is for control transfers.
Interrupt Transfer
The maximum allowable interrupt data
payload size is 64 bytes or less for fullspeed.
High-speed endpoints are allowed
maximum data payload sizes up to 1024
bytes.
Low-speed devices are limited to eight
bytes or less maximum data payload size.
Interrupt Transfer
A full-speed endpoint can specify a desired
period from 1 ms to 255 ms.
Low-speed endpoints are limited to
specifying only 10 ms to 255 ms.
High-speed endpoints can specify a desired
period (2bInterval-1)x125 s, where
bInterval is in the range 1 to 16.
Isochronous Transfer
Periodic, continuous communication
between host and device, typically used for
time-relevant information.
The USB limits the maximum data payload
size to 1,023 bytes for each full-speed
isochronous endpoint.
High-speed endpoints are allowed up to
1024-byte data payloads.
Frame-Based Transfer
1ms frame
USB
frame USB
90%
frame
10%