Home |
Mixed Full- and High-Speed Bus Topologies Transfer Types |
Transfer TypesUSB defines four different types of data transfer with different protocols and properties to suit a wide variety of application requirements. Control Transfers are used by the USB clients to configure devices. It is the only transfer type which supports input and output on a single endpoint. The data format used to initiate a Control transfer is defined by the USB specification (the Setup packet). Data delivery is guaranteed through CRC error detection and a limited number of retries in hardware. Bulk Transfers typically consist of larger amounts of data, such as those used for printers or disks. Also, the bandwidth taken up by bulk data can vary, depending on other bus activities. Data delivery is guaranteed through CRC error detection and a limited number of retries in hardware. USB 3.x defines optional Bulk Streams for SuperSpeed/SuperSpeedPlus devices. Bulk Streams are currently not supported by RTUSB-32. Interrupt Transfers are limited-latency transfers to or from a device. Such data may be presented for transfer by a device at any time and is delivered by the USB at a rate no slower than is specified by the device. Interrupt data typically consists of event notification, characters, or coordinates that are organized as one or just a few bytes. An example of interrupt data is the coordinates from a pointing device. Data delivery is guaranteed through CRC error detection and a limited number of retries in hardware. Isochronous Transfers are continuous and real-time in creation, delivery, and consumption. Isochronous data must be delivered at the rate received to maintain its timing. For isochronous pipes, the bandwidth required is typically based upon the sampling characteristics of the associated function. The latency required is related to the buffering available at each endpoint. Data delivery is not guaranteed. Any error in transmission is not corrected by hardware mechanisms such as retries. In practice, the core bit error rate of the USB is usually small enough not to be an issue. USB isochronous data streams are allocated a dedicated portion of USB bandwidth to ensure that data can be delivered at the desired rate. A number of special considerations apply to Isochronous transactions which are further addressed in section Isochronous Transfers in chapter Advanced Topics. Mixed Full- and High-Speed Bus Topologies Descriptors, Interfaces, Endpoints, and Pipes
|