USB is integrated into a single standardized connector, so data transfers must be performed by time-sharing of the protocol bus. Since all USB peripheral devices use the same basic protocol, in order to allow data contents to convey different meanings, it is necessary to use an upstream software stack closer to the application for processing, as well as to handle the concept of time.
USB achieves this by categorizing transfers into 4 types: Interrupt, Bulk, Isochronous, and Control. The peripheral devices can achieve optimal communication by selecting the most suited method of transfer. In terms of data transfer rate, USB 1.x supports full-Speed transfers at 12 Mbps and low-Speed transfers at 1.5 Mbps. USB 2.0 further supports high-Speed transfers at 480 Mbps.
|Control Transfer||Bulk Transfer||Interrupt Transfer||Isochronous Transfer|
|Features||Used to transfer information for controlling and configuring peripheral devices.||Used for aperiodic transfer of large data.||Used to transfer periodic and low-bandwidth data.||Used for transfers that need to be performed in real-time.|
|high-Speed 480Mbps||64 byte/packet||512 byte/packet||1-1024 byte/packet||1-1024 byte/packet|
|full-Speed 12Mbps||8,16,32,64 byte/packet||8,16,32,64 byte/packet||1-64 byte/packet||1-1023 byte/packet|
|low-Speed 1.5Mbps||8 byte/packet||-||1-8 byte/packet||-|
|Priority of transfer||3||3||2||1|
|Principal Use||All devices||Printers, scanners, digital cameras, FDD, CD-ROM, and other devices requiring high-reliability transfers||Mouse, Keyboard, Joy-stick etc.||Speaker, Microphone, Telephone etc.|
Under USB 1.x, an Interrupt or Isochronous transfer to a particular endpoint could only be performed once per frame (described later). Under USB 2.0, up to 3 transfers can be performed per microframe (also described later). Under USB 1.x, the transfer rate for a particular endpoint is limited to a maximum of 1,023 Kbyte/s, even for Isochronous transfers. On the other hand, under USB 2.0, the transfer rate for Interrupt and Isochronous transfers may be as high as 8 x 3 x 1,024 Kbyte/s.
Four Types of Data Transfer
Human interface devices such as mice, keyboards, and joysticks are expected to be capable of processing input signals fast enough so that the users do not feel a "lag." Traditionally, detected input signals were handled as interrupt requests; however, with USB, processes cannot be started as interrupt requests from the input device, as all data transfer requests are initiated by the host. To work around this issue, the host "polls" the input device periodically, for example every 10 ms, which is quick enough for reflecting keyboard inputs to the screen without irritating the user. Under the USB specification, this method with the host periodically transferring data is referred to as an "Interrupt transfer."
The 1.5 Mbps low-Speed specification was designed primarily for low-cost input devices, and is available only for use by devices that use the Interrupt transfers. Note that mice, keyboards, and other input devices also require the use of Control transfers.
Image input devices, printing devices, and storage devices such as printers, scanners, digital cameras, memory card reader/writers, FDD, and DVD recorders are expected to transfer large volumes of data with accuracy (i.e. without loss of data). For example, it is not acceptable for printers to output faulty printouts due to corrupted data. "Bulk transfer" can provide data transfers with high reliability. In order to maximize utilization of the bus, however, Bulk transfers cannot be temporally controlled.
Data transfer rates for image input devices, printing devices, and storage devices vary greatly depending on the availability of the bus. Hence, Bulk transfer is not suited for applications that require strict management of the transfer rate. Note that image devices, printing devices, and storage devices also require the use of Control transfers.
Audio and video devices such as speakers, microphones, telephones, and video conferencing devices are expected to be capable of maintaining the concept of time. That is, the devices must be able to transfer a certain amount of data on a periodic basis. USB uses frames (or microframes in USB 2.0) to divide time into units, during which all data transfers are executed.
The most important requirement for "Isochronous transfers" is to transfer a constant amount of data over each time period. Hence, failed transfers are not retried under USB, as doing so will make it difficult to maintain a consistent flow of time. Note that speakers and other audio/video devices also require the use of Control transfers.
Unlike Interrupt, Bulk, and Isochronous transfers, Control transfers have rules about the content of the transferred data.
Control transfers are used to exchange device details, allocate USB addresses, and configure devices, and are hence used by all devices.