ZHCSI19F April 2010 – April 2018 DLPC200
USB is a polled bus. The host controller (typically at PC) initiates all data transfers. Each transaction begins when the PC sends a packet. Communications are always through the bulk transfer mode, and 512 bytes of data are always written/read at a time. The packet consists of the following:
The USB device that is addressed selects itself by decoding the appropriate address fields. The direction of data transfer, either read or write, is specified in the packet header. The source of the transaction then sends a data packet or indicates it has no data to transfer. At the end of either a single packet transfer or a multi-packet transfer, the destination responds with a handshake packet indicating whether the transfer was successful.
The packet header consists of:
As discussed previously, the header describes whether the data transaction is to be a read or write and designates the data endpoint. The data portion of the packet carries the payload and is followed by a handshaking mechanism, checksum, that reports if the data was received successfully, or if the endpoint is stalled or not available to accept data.