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

IN令牌包的设备端事务响应流程

2022-07-05 1052 0

USB主机发送IN令牌给设备后,用于请求设备的数据包。

USB设备端收到主机发送过来的PID为IN的令牌包后,需要对IN令牌包进行数据校验。

  • 如果IN令牌包中的设备地址和端点地址信息有效,并且端点缓冲区中有待发送的数据(端点状态为Valid状态),这时USB设备端的硬件自动使用DTAT0或DATA1的PID令牌包来响应。响应的数据包为DATA0或DATA1的数据格式,内容包括DATA0或DATA1的PID,相应的端点缓冲区的数据,USB硬件计算好的数据包的CRC16校验。
  • 如果USB设备收到的IN令牌包中的端点无有效数据或数据端点未工作,则发送NAKSTALL握手包,以表示无数据要发送或端点错误。

USB主机接收到USB设备通过DATA0或DATA1的数据包并且确认无误后,发送ACK 握手包给USB设备。

  • 硬件翻转数所包PID(DATA0和DATA1切换)
  • 硬件端点置为INVALID(无数据发送,NAK)
  • 硬件产生接收中断
  • 软件响应接收中断
  • 准备下发要发送的数据
  • 更新数据长度(如果和上一次的不一致)
  • 软件重新置该端点为valid状态。这样当再次接收到IN令牌包后响应发送数据给主机。

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   

0 篇笔记 写笔记

USB2.0 IN令牌包
令牌IN用于主机接收从USB设备发出的数据,和OUT令牌的数据传输方向相反。IN令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。包标识字段PID:定义了数据传输方向为USB设备到USB主机。ADDR字段:指明了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......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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