40.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.
Transfer | Direction | Bandwidth | Endpoint Size | Error Detection | Retrying |
---|---|---|---|---|---|
Control | Bidirectional | Not ensured | 8, 16, 32, 64 | Yes | Automatic |
Isochronous | Unidirectional | Ensured | 8–1024 | Yes | No |
Interrupt | Unidirectional | Not ensured | 8–1024 | Yes | Yes |
Bulk | Unidirectional | Not ensured | 8–512 | Yes | Yes |