Download Bootstrap Yourself with Linux-USB Stack

Transcript
26
Chapter 2
n
USB: An Overview
For a complete understanding of the transfer types defined by USB specification,
read Chapters 5 and 8 of the USB specification.
Terms to Remember
Besides the terms already introduced in this chapter, here are some others you
will come across when you study or implement USB software.
Short packet. A short packet can be defined as a packet whose payload is
shorter than the maximum size or zero length packet (ZLP). A short
packet could indicate the end of a transfer.
Zero length packet (ZLP). A zero length data packet transfer does not
contain data as part of the transfer. When the data to be sent is an exact
multiple of wMaxPacketSize, a ZLP has to be sent after the data transfer
is complete to indicate the end of the transfer. Sometimes a ZLP feature
is implemented as part of the hardware or has to be taken care when
designing Chapter 9/USB.
STALL. A STALL indicates that a function is unable to transmit or
receive data or that even a control pipe request is not supported. The
state of a function after returning a STALL is undefined.
Summary
The USB specification is huge and detailed, so it is difficult to summarize in a
small chapter. However, this chapter captures some important topics that are
essential for an understanding of the USB software system. The device
identification, management, and data flow constitute the major portion of the
USB software system, and most of the complex protocols in the physical and link
are implemented as part of USB hardware. As a USB software developer,
generally if you read Chapters 4, 5, and 9 of the specification, you can
understand most of the software implementations. The functional details
referred to as USB class are defined in separate USB class specifications,
which you must read based on the USB function you are planning to study
or implement. The “More Reading” section that follows provides details on the
USB specifications.