USB3设置配置SET_CONFIGURATION传输(NRDY)
2026-06-02
本文链接为:http://www.usbzh.com/article/detail-1681.html ,欢迎转载,转载请附上本文链接。

整体流程:SetConfig配置 → 主机下发HID控制报文 → 设备先NRDY流控暂停 → ERDY就绪恢复 → 最终ACK正常结束
1. Transaction14:SET_CONFIGURATION 标准配置描述符
- 传输类型:控制SETUP事务,ADDR=1、ENDP=0
bRequest=SET_CONFIGURATION,wValue=1:主机下发配置1,USB设备进入配置态,端点0正式启用收发,是后续所有交互的前置。
2. Transaction109:控制下发(主机→设备 OUT)
- SETUP包:
bRequest=0x09(SET_FEATURE),wValue=0x0001,主机发起特性设置控制请求 - OUT数据包:
Data = 00 09 01 00 00 00 00 00(8字节DATA),主机把载荷下发到设备EP0 - 设备回ACK:设备成功收下OUT数据,链路应答正常。
3. Transaction110:设备上报ERDY(端点就绪通知)
EP Ready + ERDY令牌包:设备通过IN方向发送ERDY,含义:IN端点缓冲区空闲就绪,随时可以接收主机IN令牌拉取数据;USB3链路流控机制:ERDY=Device IN buffer ready。
4. Transaction111:设备发送NRDY → 触发流控暂停(关键异常点)
- 主机发起STAT状态阶段交互,设备回复 NRDY 令牌包
- NRDY释义:设备当前IN缓冲区满载/忙,无法接收主机后续IN请求,主动挂起链路流控,图中标注注释:
endpoint has initiated flow control by sending an NRDY packet和抓包完全对应。 - 此时主机收到NRDY,停止继续发起IN传输,等待设备就绪。
- NRDY释义:设备当前IN缓冲区满载/忙,无法接收主机后续IN请求,主动挂起链路流控,图中标注注释:
5. Transaction112:设备再次上报ERDY,解除NRDY阻塞
设备再次发送ERDY:缓冲区资源释放完毕、取消流控,通知主机可以继续发起IN事务读取数据。
6. Transaction113:控制传输状态阶段收尾(IN+ACK)
- 主机发起IN状态阶段(控制传输标准收尾),设备回送状态包,主机ACK应答;
- 整组
SET_CONFIGURATION控制传输完整闭环结束。
USB3总线分析仪传输抓包分析





