Chapter 4
112
wMaxPacketSize can be in the range 0–1024 for isochronous endpoints and 1–
1024 for interrupt endpoints. If bMaxBurst > 0, wMaxPacketSize = 1024.
bInterval specifies the service interval for interrupt and isochronous endpoints.
The service interval is a period within which the host must reserve time for an
endpoint’s transactions. The period is an integral number of frames (low and
full speed), microframes (high speed), or bus intervals (SuperSpeed). The
allowed range and usage of bInterval varies with the device’s speed, the transfer
type, and the USB version.
For low-speed interrupt endpoints, bInterval is the maximum latency in ms in
the range 10–255. For all full-speed interrupt endpoints and for full-speed iso-
chronous endpoints on 1.x devices, the interval equals bInterval in ms. For
interrupt endpoints, the value may range from 1–255. For isochronous end-
points in USB 1.x devices, the value must be 1. For isochronous endpoints in
full-speed USB 2.0 devices, values 1–16 are allowed, and the interval is
2
bInterval-1
in ms, allowing a range from 1 ms to 32.768 seconds.
For high-speed and SuperSpeed endpoints, the value is in units of 125
µs. The
value for interrupt and isochronous endpoints may range from 1–16, and the
interval is calculated as 2
bInterval-1
, allowing a range from 125 µs to 4.096 sec-
onds.
For high-speed bulk and control OUT endpoints, the field can contain a maxi-
mum NAK rate used for compliance purposes only. Devices typically set the
field to zero. For other bulk transfers and control transfers, the value is reserved.
5WRGT5RGGF'PFRQKPV%QORCPKQP
Every SuperSpeed endpoint has a companion descriptor to support SuperSpeed
capabilities. A host retrieves endpoint companion descriptors as subordinate
descriptors sent in response to a request for a configuration descriptor when the
configuration has one or more endpoints.
bMaxBurst specifies the maximum number of packets the endpoint can send
or receive in a burst minus one. A value of zero means one packet per burst.
The maximum value is 15, indicating 16 packets per burst. A Data Packet in a
burst can transmit without waiting for an acknowledgement of the previous
Data Packet in the burst.
bmAttributes provides information specific to bulk and isochronous end-
points. For bulk endpoints, bits 4..0 are a MaxStreams value that indicates the
maximum number of streams the endpoint supports. Zero means the endpoint