USB Packet types: (Source: http://www.usbmadesimple.co.uk/ums_3.htm)
|PID Type||PID Name||PID<3:0>*|
One transaction has 3 packets: Token + Data + Handshake for a successful transaction. (*). Nak and Stall error condition could happen after Token when no data is available.
There are 3 types of transactions: IN, OUT, SETUP
*: For IN and OUT transactions used for isochronous transfers, there are only 2 packets; there is no handshake packet.
There are 4 types of transfer:
- Isochronous (such as audio data)
HID device only uses Control and Interrupt
Control transfer = 3 transactions: SETUP + IN/OUT DATA + STATUS(IN/OUT transaction)
Other transfers has just one transaction: IN/OUT data.