9.2.6.3 USB V2.0 High Speed Transfer Types

A communication flow is carried over one of four transfer types defined by the USB device.

A device provides several logical communication pipes with the host. To each logical pipe is associated an endpoint. Transfer through a pipe belongs to one of the four transfer types:

  • Control Transfers: Used to configure a device at attach time and can be used for other device-specific purposes, including control of other pipes on the device.
  • Bulk Data Transfers: Generated or consumed in relatively large burst quantities and have wide dynamic latitude in transmission constraints.
  • Interrupt Data Transfers: Used for timely but reliable delivery of data, for example, characters or coordinates with human-perceptible echo or feedback response characteristics.
  • Isochronous Data Transfers: Occupy a prenegotiated amount of USB bandwidth with a prenegotiated delivery latency. (Also called streaming real time transfers.)

As indicated below, transfers are sequential events carried out on the USB bus.

Endpoints must be configured according to the transfer type they handle.

Table 9-1. USB Communication Flow
TransferDirectionBandwidthEndpoint SizeError DetectionRetrying
ControlBidirectionalNot ensured8, 16, 32, 64YesAutomatic
IsochronousUnidirectionalEnsured8–1024YesNo
InterruptUnidirectionalNot ensured8–1024YesYes
BulkUnidirectionalNot ensured8–512YesYes