Token packets in universal serial bus - computer architecture:
Token packets consist of a PID byte followed by two payload bytes: a 5-bit CRC and 11 bits of address. Tokens are just sent by the host, never by a device.
IN and OUT tokens have a 4-bit device number (for multifunction devices) and 7-bit function number and command the components to transmit DATA x packets, or retain the following DATA x packets, respectively.
An IN token expects a response from a device. The response can be a STALL or NAK response, or can be a DATA x frame response. In the afterward case, the host issues an ACK handshake if it is appropriate.
An OUT token is followed immediately by a DATA x frame. The component responds with, STALL, NYET, ACK or NAK as appropriate. SETUP operates mostly like an OUT token, but it is used for initial component setup. It is followed by an 8-byte.DATA0 frame with a standardized format.
In every millisecond (12000 full-speed bit times), the USB host transmits a special SOF (start of frame) token which is containing an 11-bit incrementing frame number in place of a component address. It is used to synchronize isochronous data flows. High-speed USB 2.0 devices retain 7 additional duplicate SOF tokens per frame, each introducing a 125 µs "micro frame" (60000 high-speed bit times each).
USB 2.0 added a PING token, which asks components if it is ready to retain an OUT/DATA packet pair. The components respond with NAK, ACK or STALL, as appropriate. It avoids the requirement to send the DATA packet if the components know that it will just respond with NAK.
USB 2.0 also added a larger 3-byte SPLIT token having a, 12 bits of control flags, 7-bit hub number and a 5-bit CRC. It is used to perform split transactions. Or else tie up the high-speed USB bus sending data to a slower USB device, the closest high-speed capable hub retain a SPLIT token followed by 1 or 2 USB packets at high speed, performs the data transfer at low or full speed, and provides the response at high speed when prompted by a second SPLIT token. The details are completed; see the USB specification.