USB3.2GEN1链路命令
2026-05-29
本文链接为:http://www.usbzh.com/article/detail-1669.html ,欢迎转载,转载请附上本文链接。
USB3.2GEN1的链路命令格式如下:
8符号的链路命令如下:
- 3个符号的SCL
- 1个符号的EPF
- 4个符号的链路命令
4个字符的链路命令,其中低11位链路信息,高5位为CRC5
低11位的链路信息又分为:
数据传输与流控制(b10-9:00)
| 命令 | 功能方向 | 描述 |
|---|---|---|
| LGOOD_n(b8~7:00) | 接收端 → 发送端 | 确认接收成功。通知对方序列号为n的数据包已正确接收。 |
| LCRD_x(b8~7:01) | 接收端 → 发送端 | 释放缓冲区信用。告知对方自己的Rx Header Buffer已可用,相当于通知可以继续发送数据。 |
| LBAD(b8~7:10) | 接收端 → 发送端 | 通知接收失败。告知对方接收到的数据包校验错误(CRC损坏)。 |
| LRTY(b8~7:11) | 发送端 → 接收端 | 准备重传。在接收到LBAD后,发送端在重发数据前会先发送此命令。 |
- 固定的命令结构:每个链路命令都是固定的 8个符号 长,并且会重复命令字以增强容错性。
- 核心确认机制 (
LGOOD_n&LCRD_x):这是USB 3.0保证可靠传输的关键。- 序列号 (
n):LGOOD_n使用模8递增的包头序列号来精确确认是哪一个数据包被成功接收,如果序列号不连续,就意味着发生了丢包或包损坏。 - 信用索引 (
x):LCRD_x使用字母(A, B, C, D)循环作为索引,代表不同的接收缓冲区。接收端每处理完一个数据包,就会按顺序发送LCRD_x来“释放”一个缓冲区,告诉发送端“我有空位了,可以继续发”。如果发送端接收到的LCRD_x索引不连续,也意味着可能有命令丢失。
- 序列号 (
- 错误恢复流程 (
LBAD&LRTY):当接收端检测到坏包时会回复LBAD,但不会指明是哪个包。发送端收到LBAD后,必须先发送LRTY,然后重发从最后一个被LGOOD_n确认的包之后的所有数据包,这种“回退”机制保证了数据的最终一致性。 - 链路训练状态机 (LTSSM):所有这些链路命令,特别是电源管理相关的命令,都运行在一个复杂的链路训练与状态状态机的框架下。LTSSM定义了链路从初始化、正常工作到进入/退出低功耗模式的完整状态流转过程。

链路电源管理(b10-9:01)
| 命令 | 功能方向 | 描述 |
|---|---|---|
| LGO_U1/U2/U3(b8~7:00) | 任一方 → 对方 | 请求进入低功耗状态。主动向链路伙伴请求进入U1(浅睡眠)、U2或U3(深度睡眠)状态。 |
| LAU(b8~7:01) | 对方 → 请求方 | 接受状态切换请求。同意进入对方所请求的Ux低功耗状态。 |
| LXU(b8~7:10) | 对方 → 请求方 | 拒绝状态切换请求。拒绝进入U1或U2低功耗状态。 |
| LPMA(b8~7:11) | 双方交互 | 确保电源状态同步。与LGO_Ux和LAU握手配合,保证链路两端同时进入相同的电源状态。 |
链路活性保持(b10-9:10)
| 命令 | 功能方向 | 描述 |
|---|---|---|
| LUP(b8~7:00) | 设备(上行端口) → 主机 | 上行端口活性指示。在U0状态下,设备若无其他事务发送,需每隔10µs发送一次,以表明自身仍在正常工作。 |
| LDN(b8~7:11) | 主机(下行端口) → 设备 | 下行端口活性指示。与LUP功能类似,由主机下行端口定期发送,以维持链路的活动状态。 |

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
USB3.2超高速协议规范





