Table of Contents | ||||
---|---|---|---|---|
|
...
A control transfer contains three stages: Setup, Data, and Status. These stages are listed in Table - Control Transfer Stages.
Anchor | ||||
---|---|---|---|---|
|
Panel | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
Bulk Transfers
Bulk transfers are intended for devices that exchange large amounts of data where the transfer can take all of the available bus bandwidth. Bulk transfers are reliable, as error detection and retransmission mechanisms are implemented in hardware to guarantee data integrity. However, bulk transfers offer no guarantee on timing. Printers and mass storage devices are examples of devices that use bulk transfers.
...
Isochronous transfers are used by devices that require data delivery at a constant rate with a certain degree of error-tolerance. Retransmission is not supported by isochronous transfers. Audio and video devices use isochronous transfers.
USB Data Flow Model
shows Figure - USB Data Flow shows a graphical representation of the data flow model.
Panel | ||||
---|---|---|---|---|
| ||||
Panel | ||
---|---|---|
| ||
(1) The host software uses standard requests to query and configure the device using the default pipe. The default pipe uses endpoint zero (EP0). (2) USB pipes allow associations between the host application and the device’s endpoints. Host applications send and receive data through USB pipes. (3) The host controller is responsible for the transmission, reception, packing and unpacking of data over the bus. (4) Data is transmitted via the physical media. (5) The device controller is responsible for the transmission, reception, packing and unpacking of data over the bus. The USB controller informs the USB device software layer about several events such as bus events and transfer events. (6) The device software layer responds to the standard request, and implements one or more USB functions as specified in the USB class document. |
Transfer Completion
The notion of transfer completion is only relevant for control, bulk and interrupt transfers as isochronous transfers occur continuously and periodically by nature. In general, control, bulk and interrupt endpoints must transmit data payload sizes that are less than or equal to the endpoint’s maximum data payload size. When a transfer’s data payload is greater than the maximum data payload size, the transfer is split into several transactions whose payload is maximum-sized except the last transaction which contains the remaining data. A transfer is deemed complete when:
...