USB2.0 OUT令牌包
2021-06-22
4035
4
USB2.0 OUT令牌用于主机向设备发送数据,令牌后跟数据包,当数据发送完成后设备需返回ACK包。
OUT令牌包格式
OUT令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。
- 包标识字段PID:定义了数据传输方向为USB主机到USB设备。
- ADDR字段:指明了USB设备地址。
- ENDP字段:指明了接收数据的端点号。
- CRC字段:用于ADDR字段和ENDP字段进行循环冗余校验。
PID | 含义 | 说明 |
---|---|---|
0001 | 令牌OUT | 主机发送数据到USB设备 |
OUT令牌包ID低4位为0001,高4位为低4位的补码,所以高4位就为1110,组合起来就是0xE1(LSB-MSB),使用MSB-LSB的格式为0x87。
OUT令牌的PID之后为设备的地址,该地址由SetAddress标准请求实现。设备地址之后为设备的端点地址,最后为CRC校验和。
OUT令牌实例解析
下图为使用抓包工具抓到的一个USB主机向U盘写数据的事务,
可以看到,OUT令牌之后为DATA0数据,最后为设备向主机返回的ACK握手包。
在上图中,OUT令牌的目标设备的地址为15,端点为2,CRC校验为0x0c,传输波形如下图:
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936