Chapter 14
Suspend state, the device must limit its current consumption and monitor the
bus, exiting the Suspend state when bus activity resumes.- Respond to requests sent by the host during and after enumeration.
- Perform error checking.
- Exchange data with the host. A virtual COM-port device receives COM-port
data from the host and sends COM-port data as needed to the host. - As needed, send and receive COM-port parameters and status and control
information.
!
The USB 2.0 specification defines three bus speeds: high speed at 480 Mbps,
full speed at 12 Mbps, and low speed at 1.5 Mbps. USB devices in the commu-
nication devices class must support full speed, high speed, or both. Almost all
high-speed devices also support full speed because adding support for full speed
is rarely difficult and enables the device to work when attached to full-speed
hosts. USB hosts in recent PCs support all three speeds.
The bus speeds describe the rate that information travels on the bus. The theo-
retical maximum data-transfer rate for the bulk endpoints used on most virtual
COM ports is 1.216 Megabytes/s at full speed and 53.248 Megabytes/s at high
speed. The real-world maximum throughput is less and varies with the pro-
gramming on the host and device, the hardware capabilities of the host and
device, and how busy the bus is.0
All bus traffic travels to or from device endpoints. An endpoint serves as a
buffer for received data or data waiting to transmit. Typically an endpoint is a
block of data memory or a register in the device controller.
Every device must implement endpoint zero, which is bidirectional. A device
can have up to 30 additional endpoint addresses. Each of these endpoint
addresses has a number (1 to 15) and direction (IN or OUT). The direction is
defined from the host’s perspective: an IN endpoint provides data to send to the
host and an OUT endpoint stores data received from the host. Device hardware
or firmware configures each endpoint address for a specific USB transfer type
and direction. The number of available endpoints varies with the device con-
troller. A USB virtual COM port typically uses three endpoint addresses in
addition to endpoint zero.