Next: 3.6 USB Data Transfer
Up: 3. WinDriver USB Overview
Previous: 3.4 Data Flow in
Contents
3.5 USB Data Exchange
The USB standard supports two kinds of data exchange between a host and a
device: functional data exchange and control exchange.
- Functional Data Exchange
- is used to move data to and from the device. There are three types of USB data
transfers: Bulk, Interrupt and Isochronous.
- Control Exchange
- is used to determine device identification and configuration requirements and to
configure a device, and can also be used for other device-specific purposes,
including control of other pipes on the device.
Control exchange takes place via a control pipe, mainly the default
Pipe 0, which always exists. The control transfer consists of a
setup stage (in which a setup packet is sent from the host to the
device), an optional data stage and a status stage.
Figure 3.2 below depicts a USB device with
one bi-directional control pipe (endpoint) and two functional data transfer
pipes (endpoints), as identified by WinDriver's DriverWizard utility
(discussed in Chapter 5).
Figure 3.2:
USB Pipes
 |
More information on how to implement the control transfer by sending setup
packets can be found in section 9.2.