Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2
indent20px

...

A control transfer contains three stages: Setup, Data, and Status. These stages are listed in Table - Control Transfer Stages.

Anchor
Table - Control Transfer Stages
Table - Control Transfer Stages

Panel
borderWidth0
titleTable - Control Transfer Stages


StageDescription
SetupThe Setup stage includes information about the request. This SETUP stage represents one transaction.
DataThe Data stage contains data associated with request. Some standard and class-specific request may not require a Data stage. This stage is an IN or OUT directional transfer and the complete Data stage represents one ore more transactions.
StatusThe Status stage, representing one transaction, is used to report the success or failure of the transfer. The direction of the Status stage is opposite to the direction of the Data stage. If the control transfer has no Data stage, the Status stage always is from the device (IN).



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
borderWidth0
titleFigure - USB Data Flow

USB Data FlowImage Added


Panel
bgColor#f0f0f0

(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:

...