USB Setup Capture Significance
I have a USB protocol analyzer and am examining some data transferred between a host and a HID device. In the case below, a "Get Device Descriptor" request. I understand the setup packet configuration as spec'd by the USB standard. However, I am having trouble understanding how the data I see when I "expand" the setup packet relates to the standard setup packet. Can anyone clarify what is meant by this "additional" setup packet? The manual for the analyzer doesn't mention it, nor the significance of the DATA0 packet (since the actual data from the device is the IN txn packet). Googling just keeps showing me the standard setup packet config, as seen here, which I understand:
A control transfer like Get Device Descriptor consists of three stages (or transactions).
The first stage is the setup stage or setup transaction, consisting of three packets:
- setup packet
- data packet
- acknowledge packet
Each of the packets contains a header and trailer with PID, CRC etc. The relevant transaction payload is contained within the data packet.
Your protocol analyzer software (Data Center from TotalPhase) uses a hierarchical display. If you expand all the nodes, some data is displayed multiple times.
In particular, the payload of the transaction is displayed twice, once at the parent node SETUP txn and once embedded in the data packet DATA0 packet.
Data packet: C3 80 06 00 01 00 00 12 00 E0 F4
Payload: 80 06 00 01 00 00 12 00
So there isn't really any additional data.
Unless you want to debug some low-level packet decoding, it probably does not make sense to dive into the nodes below the txn nodes. It will just repeat some data and additionally show the header and trailer bytes.