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

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

2022-07-05 525 1

USB主机发送OUT令牌给设备,用于向设备端发送数据。

USB设备收到主机发送的PID为OUT的令牌包后,设备需要对OUT令牌包进行校验。

  • 如果这个packet中的设备地址信息和端点号信息有效, 并且端点为Valid状态

    • USB硬件从硬件buf中把数据搬移到用户可访问的packet buffer中
    • USB硬件核对收到的CRC无误,就发出ACK握手包
    • 如果CRC有误,就不会发出ACK握手包,并置位ERR@USB_ISTR;一般USB模块会自动恢复来准备接收下一次传输
    • 如果收到的数据长度超过了分配的空间,硬件回复STALL,置位溢出错误,但不产生中断
  • 如果该端点状态不是valid

USB外设收到主机返回的应答( PID为ACK的握手包)后:

  • 硬件

    • toggle DTOG_RX@USB_EPnR
    • 硬件把该端点设置为invalid状态(STAT_RX=NAK
    • 硬件置位CTR_RX,产生中断
  • 软件

    • 通过检查EP_ID和DIR@USB_ISTR来识别是哪个端点上的通信
    • 响应CTR_RX中断:
    • 标志清零;
    • 软件对收下来的数据进行处理;
    • 软件重新设置STAT_RX=VALID来重新把该EP设置到接收valid状态

OUT事务示例

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 OUT令牌包
USB2.0 OUT令牌用于主机向设备发送数据,令牌后跟数据包,当数据发送完成后设备需返回ACK包。OUT令牌包格式OUT令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。包标识字段PID:定义了数据传输方向为USB主机到USB......
OUT令牌包的设备端事务响应流程
USB主机发送OUT令牌给设备,用于向设备端发送数据。USB设备收到主机发送的PID为OUT的令牌包后,设备需要对OUT令牌包进行校验。如果这个packet中的设备地址信息和端点号信息有效, 并且端点为Valid状态USB硬件从硬件buf中把数据搬移到用户可访问的packet buffer......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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