Chapter 4 Software Developmentpage 4-4standard device requests, and standard devicedescriptorsChapter 10 USB Host: Hardwareand SoftwareFunctions and operation of host hardware andsoftwareChapter 11 Hub Specification Hub port operation, requests, and descriptorsChapter 4 provides a firm grounding in the USB core specifications. All developers of USBequipment must study Chapter 5 very carefully. Hardware developers must read Chapter 7; firmwaredevelopers, Chapters 8 and 9. Firmware developers must pay particular attention to the timingspecifications in Chapter 7.What follows are key points from the core specifications. For complete details, refer to thespecifications available from the USB Implementers Forum web site.4-1-4. Data Flow TypesThe USB specifications define four data flow types with the following characteristics. Flexiblycombining these four data flow types provides solutions to the communications needs of a widevariety of applications.Table 4.1.2. USB Data Flow TypesControl Communication of commands and responses for device configuration and pipecontrolBulk Transfer of relatively large, bursty data volumes with wide dynamic latitude intransmission constraintsInterrupt Transfer of small data volumes within time limits based on human-perceptible echoor feedback response characteristicsIsochronous Transfer using prenegotiated USB bandwidth with a prenegotiated delivery latency--audio data, for example--with no procedure for retransmitting data4-1-5. Bus TransactionsData transfers consist of bus transactions, exchanges of basic packets between the host and a specificdevice. The example below shows two such transactions.The first data request (IN) from the host arrives when the device has no data for delivery, so thelatter returns a NAK handshake, completing the transaction. The NAK indicates two things: that thedevice has no data ready and that the host should resend the request later.The second data request (IN), in contrast, causes the device to deliver the data (DATA0) that it hasready. The host acknowledges successful receipt of this data with an ACK, completing thetransaction.Transactions require cirtain bit time order response, so are implemented in hardware.Host Device(1) Data request (IN) →← (2) No data (NAK)(3) Data request (IN) →← (4) Data transfer (DATA0)(5) Successful receipt acknowledgment (ACK) →