USB2.0 NYET握手包
2021-12-01
本文链接为:http://www.usbzh.com/article/detail-699.html ,欢迎转载,转载请附上本文链接。
- 在USB2.0高速设备OUT事务中使用,它表示设备本次数据成功接收,但是没有足够的空间来接收下一次数据。主机在下一次输出数据时,将先使用PING命令牌包来探测设备是否有足够的空间接收数据,一面不必要的带宽浪费。
- 如果低速或者全速设备和高速HUB之间的事务一直没有完成,高速HUB也会向主机返回一个NYET包。
在 SPLIT 令牌包事务处理中,如果 USB 集线器无法正常处理 SPLIT 请求,则 USB 集线器向 USB 主机返回 NYET 握手包。 NYET 握手包一般只发生在高速数据传输过程中。
| PID | 含义 | 说明 |
|---|---|---|
| 0110 | 握手NYET | 接收方没有响应 |
NYET握手包示例

控制SPLIT请求

这是一段 USB 高速 (HS) 模式下的传输分析,反映了一次 通过 Hub(地址 30)访问低速设备(地址 34)的 GET DEVICE DESCRIPTOR 请求过程,但出现了明显的 重试/重传 现象。
一、核心传输行为
| 项目 | 内容 |
|---|---|
| 目标设备地址 | 34 |
| 请求类型 | GET DEVICE DESCRIPTOR(获取设备描述符) |
| Hub 地址 | 30 |
| Hub 端口 | Port 3 |
| 设备速度 | LS(低速设备,通过 Hub 代理) |
| 传输方式 | 控制传输(SETUP + DATA0 + ACK) |
二、事务模式:Split Transaction(拆分事务)
由于 主机(HS) 与 低速设备(LS) 之间通过 高速 Hub 通信,USB 使用 Split Transaction:
- SPLIT (S) = Start:主机通知 Hub 开始一个低速事务
- SPLIT (C) = Complete:主机查询 Hub 是否完成与低速设备的交互
- SETUP / DATA0 / ACK / NYET:Hub 与设备之间的响应状态
三、异常现象:重复的 SPLIT(C) + SETUP + NYET
从日志可见,大量重复 以下模式:
SPLIT(C) → SETUP → NYET
并多次出现后,才出现 SETUP + ACK(成功)。
| 序号示例 | 出现次数 | 最终结果 |
|---|---|---|
| 507023~507046 | 约 6 次重试 | 507046 出现 ACK |
本文链接为:http://www.usbzh.com/article/detail-699.html ,欢迎转载,转载请附上本文链接。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936 USB技术交流3:1031974172
USB2.0令牌、事务及传输抓包分析





