USB2.0 IN令牌包
2021-06-22
7798
2
令牌IN用于主机接收从USB设备发出的数据,和OUT令牌的数据传输方向相反。
IN令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。
- 包标识字段PID:定义了数据传输方向为USB设备到USB主机。
- ADDR字段:指明了USB设备地址。
- ENDP字段:指明了发送数据的端点号。
- CRC字段:用于ADDR字段和ENDP字段进行循环冗余校验。
IN令牌的PID低四位为1001,高4位为低四位的补码,所以为0110,所以包PID为0x69(LSB-MSB),MSB-LSB格式为0x96。
和OUT令牌包类似,IN令牌指名了主机需要从设备端接收数据,故PID之后也跟着接收目标设备的地址,端点地址和该包的CRC校验和。
IN令牌包抓包实例
下图中,编号为8392的事务,其起始包为一个IN令牌包,设备地直来15,端点地址为1(这里为读的方向故为0x81),CRC校验为0x15.
IN令牌之后为设备向主机发送的数据,这里为8字节,后续主机收到数据之后,向设备发送一个ACK握手反馈,表示数据接收到。
IN令牌包波形图
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936