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.