USB2.0令牌、事务及传输抓包分析
+ -

USB2.0 PING令牌包

2021-06-22 3145 0

PING事务

PING事务只有令牌包和握手包。
PING事务是USB2.0高速模式特有的,全速模式和低速模式没有。
PING事务作用:主机探测设备是否有空间接收数据。

PING令牌PID

PING令牌的PID低4位为0100,高4位的补码为1011,故PING令牌的PID为0xB4.

PING流程

  1. 主机发送PING令牌包。
  2. 设备返回状态。
  • 设备有空间接收数据:设备返回ACK握手包。
  • 设备没有空间接收数据:设备返回NAK握手包。
  • 设备端点挂起:设备返回STALL握手包。

PING抓包示例

PING

PING波形图

PING波形图

PING的使用技术讨论

以下内容来自QQ USB技术交流群(733863085)的技术讨论,并且以下内容的转载得到了群主XToolbox的同意。

感谢USB技术交流群(733863085)各位大佬的技术分享。

qianfan 2021/8/26 10:53:32

PING的使用

qianfan 2021/8/26 10:53:32
我这个bulk传输, 主机给从机发送之前为什么要先ping一下?

XToolbox 2021/8/26 11:13:35
节约带宽

XToolbox 2021/8/26 11:14:26
out后面会跟数据,如果从机没准备好,数据就被nak了,但是数据传输已经实际发生。

XToolbox 2021/8/26 11:15:07
用ping可以先看看从机准备好了吗,如果准备好了才实际传数据,节约带宽。

XToolbox 2021/8/26 11:16:38
支持ping的时候有一个约定,如果out回复ack,说明从机可以继续接收数据,下一包不用ping。如果out回复nyet,表示这包数据可以接受,下一包不能接受,主机(最好是)先ping再发。

qianfan 2021/8/26 11:43:47
学到了, ping的字节数一般而言要小于bulk out的数据的, ping回复nak跟bulk out的nak重发, 带宽占用确实不一样啊

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB2.0 SOF令牌包
SOF令牌包是最广泛的令牌包,由主机发送。在实机的抓包工具过程,由于和NAK包大量存在,都会在软件配置中不显示。但这并不代表这个SOF令牌包不重要。SOF令牌不需要像其它令牌一样,具有握手包。因此发送给设备的SOF包并不能保证一定会收到。SOF数据流管理由USB主机发送一个SOF令牌包。SOF数据......
USB2.0 IN令牌包
令牌IN用于主机接收从USB设备发出的数据,和OUT令牌的数据传输方向相反。IN令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。包标识字段PID:定义了数据传输方向为USB设备到USB主机。ADDR字段:指明了USB设备地址。......
USB2.0 OUT令牌包
USB2.0 OUT令牌用于主机向设备发送数据,令牌后跟数据包,当数据发送完成后设备需返回ACK包。OUT令牌包格式OUT令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。包标识字段PID:定义了数据传输方向为USB主机到USB......
USB2.0 SETUP令牌包
SETUP令牌包用于主机向USB设备发送配置信息SETUP令牌包结构SETUP令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的端点字段和5位的循环字段CRC共24位3字节组成。包标识字段PID:定义了数据传输方向为USB主机到USB设备。ADDR字段:指明了USB设备地址。E......
USB2.0 PING令牌包
PING事务PING事务只有令牌包和握手包。PING事务是USB2.0高速模式特有的,全速模式和低速模式没有。PING事务作用:主机探测设备是否有空间接收数据。PING令牌PIDPING令牌的PID低4位为0100,高4位的补码为1011,故PING令牌的PID为0xB4.PING流程主机发送......
USB2.0 令牌包
令牌包全部由USB主机发出,其内容包括包标识PID,包目标地址ADDR,包目标地址(ENDP)和CRC5校验位域。令牌包指明了后续数据包的目标地址和端点。令牌包的PID有:PID含义说明0001令牌OUT主机发送数据到USB设备1001令牌IN主机接收从USB设备......
USB2.0全速设备使用逻辑分析仪抓取IN令牌包分析SOP/SYNC/PID/EOP
发在B站上的录制的视频 2.USB2.0包Packet的组成-SOP SYNC EOP的解析其中下面有一条评论,询问 站长,也就是说SOP/SYNC/EOP是物理层的,用分析仪都抓不到是吧?这个我在下面也回答了,是可以抓取到的,只不过对于我们进行包分析,意义不大,因为我们的关注点已经不在那里了。刚......
IN令牌包的设备端事务响应流程
USB主机发送IN令牌给设备后,用于请求设备的数据包。USB设备端收到主机发送过来的PID为IN的令牌包后,需要对IN令牌包进行数据校验。如果IN令牌包中的设备地址和端点地址信息有效,并且端点缓冲区中有待发送的数据(端点状态为Valid状态),这时USB设备端的硬件自动使用DTAT0或DATA......
OUT令牌包的设备端事务响应流程
USB主机发送OUT令牌给设备,用于向设备端发送数据。USB设备收到主机发送的PID为OUT的令牌包后,设备需要对OUT令牌包进行校验。如果这个packet中的设备地址信息和端点号信息有效, 并且端点为Valid状态USB硬件从硬件buf中把数据搬移到用户可访问的packet buffer......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!