The USB protocol defines what happens on the serial data lines. The available data transmission time — the bandwidth — is divided up into frames, each 1ms long. At full speed a frame contains a maximum of 1500 bytes and, at low speed, 187 bytes. Frames are primarily used as a means of allocating bandwidth to the different transfers that want to occur. The regular frame timing can also be used by devices to synchronize their activities to the USB bus. Frames are of particular interest to isochronous devices and drivers. Packets The smallest block of data transferred on the serial lines is called a packet. A packet is sent in only one direction, either from the host or to the host. A packet consists of synchronization signals, a Packet ID (pid), possibly some data, and some CRC check bytes. There are 10 Packet IDs in four categories:Low Level Protocol
Token
OUT
IN
SOF
SETUP
Data
DATA0
DATA1
Handshake
ACK
NAK
STALL
Special
PRE