USB3总线分析仪传输抓包分析
+ -

USB3获取配置描述符传输抓包

2022-03-02 本文链接为:http://www.usbzh.com/article/detail-817.html ,欢迎转载,转载请附上本文链接。

USB3获取配描述符传输

本条是枚举流程读取配置描述符首包,依旧标准三段式:SETUP → DATA-IN → STATUS,通信地址ADDR=1、EP0;Right=主机→设备,Left=设备→主机,DP=数据报文、TP=链路握手报文。

一、SETUP阶段(下发读取配置描述符指令)

  1. 97551(Host→Dev DP)
    DataLen=8,Setup命令:80 06 02 00 00 00 09 00
    参数释义:bRequest=06(GET_DESCRIPTOR)、wValue=0x0200(CONFIGURATION配置描述符、索引0)、wLength=0x09=9Byte,主机只读取配置描述符头部9字节。
  2. 97554(Dev→Host ACK TP)
    PP=Not Pnd(P=0)普通确认ACK,设备成功收下SETUP指令,SETUP阶段结束;间隔249.792us为设备指令解析耗时。

二、DATA-IN阶段(设备回传9字节配置描述符)

  1. 97621(Host→Dev ACK TP)
    关键标识:PP=Pnd(P=1)、NumP=1、ADDR=1 ENDP=0
    USB3.0等效IN令牌:链路确认SETUP传输无误,事务层通知设备「主机缓存就绪,请上传1包共9字节配置描述符」。
  2. 97624(Dev→Host DP)
    DataLen=9,设备上传配置描述符前9字节,数据长度严格匹配wLength=9;内容为配置描述符头部基础信息(总长、接口数、配置ID等)。
  3. 97627(Host→Dev ACK TP)
    PP=Not Pnd(P=0)常规接收确认ACK,主机确认9字节配置描述符完整接收,DATA-IN阶段结束。

时序逻辑:P=1主机ACK(申请IN数据) → 设备DP回传配置数据 → P=0主机ACK(确认收妥)


三、STATUS状态阶段

  1. 97691(Host→Dev Status TP)
    主机发起IN方向状态查询,校验本次读配置描述符指令执行状态。
  2. 97694(Dev→Host ACK TP)
    无DP数据包(0长度空应答),设备ACK代表:GET_CONFIG_DESCRIPTOR执行成功,整条控制传输完成

补充枚举逻辑

主机先读配置描述符头部9字节,从描述符首2字节读出完整配置总长度,后续会再次下发GET_DESCRIPTOR,读取全量配置(含接口、端点子描述符)。

包号 Pending位 功能
97621 P=1 等效IN令牌,主机索要IN数据
97627 P=0 数据接收完毕,常规链路确认ACK

第二次获取

由于USB的端点0长度为512字节,足够大,所以对于大部的配置描述符在第二次可以一次性获取。
16041181025

本文链接为:http://www.usbzh.com/article/detail-817.html ,欢迎转载,转载请附上本文链接。

0 篇笔记 写笔记

USB3获取配置描述符传输抓包
本条是枚举流程读取配置描述符首包,依旧标准三段式:SETUP → DATA-IN → STATUS,通信地址ADDR=1、EP0;Right=主机→设备,Left=设备→主机,DP=数据报文、TP=链路握手报文。一、SETUP阶段(下发读取配置描述符指令)97551(Host→Dev DP) ......
USB3获取设备描述符传输抓包
整体为标准三段式控制传输:SETUP → DATA(IN) → STATUS,设备已完成SET_ADDRESS,当前通信地址=1、端点EP0;Right=主机→设备,Left=设备→主机,DP=数据报文、TP=链路握手报文。一、SETUP阶段(下发读取设备描述符指令)97214(Host→De......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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