USB3.2超高速协议规范
+ -

USB3.2协议层

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

USB3使用4种数据包类型

  • 链路管理包(Link Management Packets (LMP)) :只在一对链路(一对直接连接的端口)之间传送,主要用于管理这条链路。
  • 事务包(Transaction Packets (TP)):在所有的直接连接主机和设备的链路上传送。它们被用于数据包流程控制制,配置设备及集线器等等。事务包没有数据负载。
  • 数据包(Data Packets (DP)) :在所有的直接连接主机和设备的链路上传送。
    数据包有两部分:数据包头(Data Packet Header (DPH))以及数据包负载(Data Packet Payload (DPP))。
  • 等时时戳包(Isochronous Timestamp Packets (ITP)):是在主机到一个或多个设备间的所有活动链路(active links)上的多播(multicast)。

头组成

数据包头为16个字节:

  • 1字节的Type
  • 11字节
  • 2字节头的CRC16
  • 2字节的链路控制字Link Control Word
    152934232007

在数据包中的位置
152724362885

TYPE字节

TYP只用了5位,其值为

值B4:B0 类型
00000 链路管理包
00100 事务
01000 数据包头
01100 等时时戳包

链路控制字

2字节链路控制字
154058146451

  • 3bit头序号:0~7之间有效
  • 3bit reserved
  • 3bit集线器深度索引:DF有效时才有效。
  • DL延迟,集线器置位表示头包传输可能被延迟。(头部重新发送,链路处于Recovery态等)
  • DF推后,只被集线器使用。用于下层设备处于非U0时的转换。
  • 5bit crc5

如何理解DEFERRED标志?

当集线器从上行端口处接收到一个头包(非ITP),且该头包本来应该被路由到某下行 口,但此时如果该下行端口正处于低功耗状态(非U0链路状态),则会有如下处理:

  • 1.集线器在对应的下行端口的链路上发起UO进入请求,准备把这条链路转换回UO。
  • 2.头包的链路控制字被标记为Deferred(如果它尚未被标记为Deferred),设置集 线器深度(HubDepth),并对该已被修改的头包进行重新计算正确的链路控制CRC-5。该已被修改的头包在对应的下行端口上被排队准备传输。
  • 3.一个包括集线器深度(HubDepth)以及正确的CRC-5的推后头包(deferred headerpacket)被排队进入该集线器的上行端口的Tx头包缓冲区准备传送给主 机。主机接收到该推后响应(DeferredResponse)后,可以接着调度对其他设 端点的传输事务,而不必等候该链路从低功耗状态返回(性能考虑)。
  • 4.头包是数据包头(datapacketheader),则对应的数据包负载被丢弃(discarded)
  • 5.下行链路返回UO后,前面被修改了的Deferred头包被发送给设备。设备如果 准备好可以进行数据传输,则返回ERDYTP给主机。而主机收到该ERDYTP后可以重新调度对该设备端点的传输事务。

如何理解DELAYED标志?

头包的传送可以被延退(delayed)。此时,集线器应该将链路控制字(LinkControl Word)的DL位置位(外围设备或者主机可选),并重新计算CRC-5。一些可能导致这一延:

  • 1.当头包被重新发送(resent)
  • 2.当链路处于Recovery
  • 3.当RemoteRxHeaderBufferCreditCount为0
  • 4.当TxHeaderBuffer非空。

注意:延退(delayed)位(DL位) 只有在ITP中被设置时才有影响(significance)

本文链接为:http://www.usbzh.com/article/detail-1675.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

0 篇笔记 写笔记

USB3.2协议层
USB3使用4种数据包类型链路管理包(Link Management Packets (LMP)) :只在一对链路(一对直接连接的端口)之间传送,主要用于管理这条链路。事务包(Transaction Packets (TP)):在所有的直接连接主机和设备的链路上传送。它们被用于数据包流程控制制,......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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