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

USB超高速3.0协议与USB2.0协议的差异

2021-03-18 5702 6

高速在框架层级是向后兼容 USB 2.0 的。然而, USB 2.0 和超高速协议还是有一些根本性的差异:

  • USB 2.0 使用三部分事务交易(令牌,数据和握手),而超高速对这相同的三部分的使用是不相同的。对于输(OUTs),令牌被列入数据包;而对于输入(INs),令牌则被握手所取代。
  • USB 2.0 不支持突发(bursting)而超高速支持连续突发(continuous bursting)。参见端点描述符及端点伴随描述符。
  • USB 2.0 是一个半双工广播(broadcast)总线,而超高速是双重单工(dual-simplex)单播(unicast)总线,这就允许同时进行 IN 和 OUT 事务交易。
  • USB 2.0 使用轮询模型,而超高速使用异步通知。
  • USB 2.0 没有流(Streaming)的能力,而超高速支持对批量端点的流(Streaming)。
  • USB 2.0 没有提供机制来允许具有同步(isochronous)传输能力的设备来在服务间隔之间进入低功耗 USB 总线状态。超高速允许具有同步(isochronous)传输能力的设备在服务间隔之间自动进入低功耗链路状态。超高速主机可以传送 PING 包到目标同步设备,以便允许时间,在启动同步传输之前,将路径转换回到活动功率状态。
  • 如果系统进入更低的系统电源状态, USB 2.0 没有提供机制来让设备告知主机设备可以容忍多少延迟。因此,一个主机可能不能进入更低系统电源状态,因为可能会影响设备的性能(由于它缺乏一个对设备的电源策略的理解)。 USB 3.0 提供了一种机制,让超高速设备使用延迟容忍消息(Latency Tolerance Messaging)告知主机其对延迟的容忍。主机可以使用这些信息来建立一个系统电源策略,将设备的延迟容忍考虑在内。
  • USB 2.0 以固定的 1 ms/125 μs 间隔传输 SOF/uSOF。取决于主机和系统软件的实现,设备驱动程序可能会在有限的小的调整区间内更改该间隔。 USB 3.0 增加了设备机制来发送总线间隔调整消息(Bus Interval Adjustment Message),被主机用来调整其 125 微秒总线间隔,高达+ / -13.333 微秒。此外,主机可能会在一个总线间隔边界附近宽松的时序窗口(relaxed timingwindow)内发送同步时间戳包(Isochronous Timestamp Packet)(ITP)。
  • USB 2.0 的电源管理,包括链路电源管理,总是由主机直接发起。超高速支持链路级的电源管理,可由链路的任何一端启动。因此,每一个链路可以独立地在空闲(idle)时进入低功耗状态,而在需要通讯时退出
  • USB 2.0只在每个事务交易的端到端层级处理事务交易错误检测和恢复以及流量控制。超高速将这些功能在端到端和链路层级进行了拆分。

比较USB2.0和超速的事务处理(Transaction)

  • 超速全双工总线物理层允许同时进行双向的通信。超速协议允许收到握手包之前发送多个数据包(突发)。对于OUT传输,包含在USB2.0令牌包中的信息(设备地址和端点信息)被合并在数据包头里面,因此不需要额外令牌包。对于输入传输IN,超速主机发送一个握手包(ACK)给设备以请求数据(和指示数据是否正确)。设备可以通过返回数据或者返回STALL握手包来应答,或者返回一个没准备好(NRDY)握手包延迟传输直到设备准备好了。
  • USB2.0的包是广播方式,每个连接的设备解析每个包的地址、端点、方向信息来决定自己是否应该响应。超速包有路由信息,HUB决定每个包要送达哪个设备,只有一个例外,等时(同步)时间戳包(Isochronous Timestamp Packet, ITP)广播到每一个设备
  • USB2.0的查询方式已经被异步通知代替。超速传输通过主机发出一个请求来开始传输,后面跟随着设备的应答。如果设备能接受请求,它就接收数据或者发送数据;如果端点停止了,设备应该以STALL握手包响应;如果设备由于缺少缓存空间或者没有数据而不能接受请求,应该以NRDY应答告诉主机现在还不能处理请求。当等到设备能接受请求时,设备会主动发送一个端点准备好(ERDY)异步通知给主机然后主机会重新安排传输事务。
  • 单路传送和有限制的多点广播的包以及异步通知,都允许没有活跃传输包的链路进入一个降低功耗状态,上游和下游端口共同决定它们的链路进入一个低功耗状态,集线器会传递到上游端口。通过允许链路伙伴独立控制它们的链路电源状态,集线器将任意下游端口可见的最高链路电源状态传递到上游端口,使总线快速进入最低允许电源状态。

超速包介绍:

超速包以16字节的头部开始。一些包只包含有头部(TP,LMP,ITP)。所有的头部以用于决定包处理方式的包类型信息开始。头部有16位CRC保护,以2个字节链路控制字(link control word)结束。依赖于类型,大多数包包含有路由信息(路由字符)和一个三参数的设备地址(设备地址,端点号和方向)。路由字符给主机用来指导包被发送到被指向的拓扑路径。设备发送的包被集线器默认路由选择,集线器总是把数据从任何可见的下游端口传到上游端口(这一过程不需要路由信息)。

Data Bursting(突发数据)

突发数据通过消除在每个基于数据包应答的等待时间提高效率(即无需等待应答就能处理数据)。每个超速设备上的端点指示了它在必须等待一个明显握手之前能够发送/接受的包数量(称之为最大数据突发大小)。最大数据突发大小是一个每个端点各自的能力,一个主机从与端点相关的SuperSpeed Endpoint Companion descriptor描述符决定一个端点的最大数据突发大小。
主机在每个事务处理的基础之上能动态改变突发大小,直到最大突发大小被配置了。主机能使用不同突发大小的一个例子,不受限于,但是包括一个主机上的公平决策和中断流的重试。 当端点是OUT类型,主机能容易控制突发大小(接收器必须总是能管理突发大小事务处理),当端点为IN类型,主机能基于每次事务处理限制端点突发大小,是通过在发送给设备的应答包中的一个域来限制。

IN transfer(输入传输):

主机和设备应该延续传输类型和端点属性的约束。
一个主机通过发送一个ACK确认请求包给设备(IN)开始请求一次传输。这个确认(握手包)包包含了数据包路由选择到想要的端点所需要的地址信息。主机告知设备它可以发送的数据包数量和期望来自于设备第一个包的序号(0)。在应答中,端点会发送正确的序列号的数据包给主机,主机发的确认包也暗中应答了之前成功收到的数据包(以及请求下一个顺序号的数据包)。
注意:即使主机需要为每一个收到的数据包发送一个确认包,但是设备可以不需等待任何确认包就发送所需要的数据包数量。
超速总线的一次IN传输由一个或多个IN事务处理组成,一个IN事务处理由一个或多个包组成(比如主机发送ACK TP,设备发送DP或NRDY TP或STALL)。
当下面的任何条件发生,都能结束IN传输:

  • ·所有数据已经成功传送;
  • ·设备端点发送一个短包(比最大包尺寸小的包)作为应答;
  • ·端点响应错误。

(Host发送IN packet之后,设备可以持续发送多个数据包,不需要等待每个包都得到host的确认包(ACK TP),因为超速是dual-simplex(全双工)的,但是设备收到的总的认可包数量应该和设备发送的数据包数量一样。)
1616479992729

OUT transfer:

主机通过发送一个突发数据包给设备开始一次OUT传输,每一个数据包(的DPH)包含需要路由选择目标端点的地址信息,也包含数据包的顺序号(作为区分不同发送顺序的数据包标号)。对于一个非同步事务,设备返回一个确认包,其中包含下个要接收的数据包顺序号和隐含地应答当前数据包。
注意:虽然设备需要为每个收到的数据包发一个确认包,但是主机不需等待一个应答就能发送最大的突发数据包数量给设备。
OUT transfer在下列情况下时会结束:

  • ·所有数据已经成功传送;
  • ·Host发送了一个短包;
  • ·端点响应错误。
    1616480030717

四种transfer类型

四种transfer类型:control、bulk、interrupt、isochronous transfer。
同USB2.0,但是bulk 最大包大小增加为1024B,control端点最大包大小增加为512B。control 端点不支持burst,bulk可以burst 1~16,bulk还增加了Stream能力;interrupt、isochronous可以burst 1~16(当最大突发大小为1时,对于同步传输,其最大包大小能为0-1024之间任意大小,对于中断端点,最大包大小可以在1-1024之间任意大小;如果最大突发大小为>1时,最大包大小只能为1024)。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB3.2超高速兼容USB2.0数据收发的双总线架构
超高速USB体系和以前的USB版本的功能一致,都是通过USB线缆将USB主机USB外设相连,进行数据交互的。所与连接到该条USB总线上的所有设备在主机控制器协调下,共享带宽。USB总线允许外部设备被接入(attached),配置,使用或移除。USB3.2是双总线架构,其中一条总线用于向后兼容USB2......
USB超高速3.0协议与USB2.0协议的差异
超高速在框架层级是向后兼容 USB 2.0 的。然而, USB 2.0 和超高速协议还是有一些根本性的差异:USB 2.0 使用三部分事务交易(令牌,数据和握手),而超高速对这相同的三部分的使用是不相同的。对于输(OUTs),令牌被列入数据包;而对于输入(INs),令牌则被握手所取代。USB 2.0......
USB3.0硬件编码格式-8B/10B编码
1.编码技术基础理论 在高速的串行数据传输中,传送的数据被编码成自同步的数据流,就是将数据和时钟组合成单一的信号进行传送,使得接收方能容易准确地将数据和时钟分离,而且要达到令人满意的误码率,其关键技术在于串行传输中数据的编码方法。 目前, 高速接口正在被广泛应用于包括 SATA、 SAS、 高速......
USB2.0 数据包DATA0,DATA1,DATA2
数据包是用于传输数据的,由8位的包标识PID,数据字段和16位的循环冗余校验字段CRC组成。PID字段:用于指明不同的数据包类型。支持 4 种数据包,分别为: DATA0 、 DATA1 、DATA2 和MDATA。 在介绍的数据触发机制中,使用 DATA0 和 DATA1。SPLIT 令牌事......
USB超高速 GEN1设备状态
USB设备可能有很多状态,如断开状态,刚接入状态,分配地址状态,配置状态,工作状态等。当然由于USB3.0超高速协议规范的定义,USB超高速总线架构采用的是双总线结构。超高速设备的状态如下:AttachedPoweredDefaultAddressConfiguredSuspendedStateNo......
怎么看我的电脑是否支持USB3.0?
USB 3.0 端口标记有 SuperSpeed USB 徽标,或端口通常为蓝色,图片如下:我们的PC中引出的USB接口一般为TYPE-A型,即A型接口,现在一些笔记本也支持TYPE-C接口。USB规范定义了多种的USB接口类型,详情可见 USB机械和电子标准及USB硬件接口分类较新的 PC同时具......
USB2.0 NAK握手包
NAK 握手包一般由 USB 设备发出。对于IN数据传输,表示 USB 设备没有计划向 USB 主机发送数据;对于 OUT 数据传输,表示 USB 设备无法接收 USB 主机发送的数据。NAK包的PID的低4位为1010,故高4位的补码为0101,所以其包PID值为0x5a.PID含......
USB2.0 数据包
USB主机发出的包在USB总线上广播,所有在USB总线上的设备需要根据自己的设备地址对由USB主机广播的令牌包进行过滤。如果该令牌包的地址与其自身地址不匹配,USB设备默认不处理即忽略该令牌包。USB包的目标地址只有7位,所以一条US总线上最多可以挂接127个USB设备(地址0用于设备在枚举过程中......
USB2.0 SOF令牌包
SOF令牌包是最广泛的令牌包,由主机发送。在实机的抓包工具过程,由于和NAK包大量存在,都会在软件配置中不显示。但这并不代表这个SOF令牌包不重要。SOF令牌不需要像其它令牌一样,具有握手包。因此发送给设备的SOF包并不能保证一定会收到。SOF数据流管理由USB主机发送一个SOF令牌包。SOF数据......
USB超高速 中断传输
中断传输类型用来支持带有轮询服务间隔需要高可靠性传输小数量数据的设备。这个规格的协议层章详细描述了与中断传输相关的包,总线事务和事务处理流程。超速中断传输类型一般提供以下方面:能保证最大的服务间隔能保证在下一次服务间隔中尝试重新传输在每个服务周期中为中断端点尝试中断传输,保留一定带宽保证在每个服务间......
USB超高速设备描述符的bMaxPacketSize0为0x09
USB3的设备中,其USB设备描述符和2.0的结构一致,不过在含义上有的字段稍有区别。比如说在USB3.2的版本中,其设备描述符中的bMaxPacketSize0和USB2.0有就所不同。在USB2.0中bMaxPacketSize0代表的是USB设备默认端点0的最大包的大小,一般为0x40即64字......
USB超高速(SuperSpeed)体系结构
USB超高速(SuperSpeed)体系结构在协议层分为物理层,数据链路层,协议层。USB3.0定义了超过高USB,USB3.1/USB3.2实现了超高速Plus架构。数据链路层(Link Layer)超高速链路(SuperSpeed link)是两个端口的逻辑和物理连接。被连接的端口(connec......
USB超高速对USB2.0的兼容性
当主机枚举时,所有设备都会被分配一个USB地址。每个设备支持一个或多个管道,主机可以通过这些管道与设备通信。所有设备都必须在端点0处支持指定的管道,设备的默认控制管道将连接到该管道。所有设备都支持通过此控制管道访问信息的公共访问机制。USB外接设备的兼容USB 3.0 外接设备 ( peripher......
USB超高速 控制传输
控制传输的目的与特点与USB2.0协议完全相同。这个规格的协议层章节详细描述了用于完成控制传输的包,总线事务处理和事务处理流程。设备架构那章定义了完整系列的设备使用的标准命令编码。每个设备需要启动默认控制管道作为一个消息管道。这个管道用来进行设备初始化和管理,用来访问设备描述符和向设备请求对其进行操......
USB3.0官方协议规格书(英文版)下载
USB3.0 协议规范 英文完整版,USB底层结构说明,开发基础(USB3.0 protocol specification full version)USB3.0官方协议规格书(英文版)下载:USB中文网技术交流QQ群下载QQ群文件/USB规范/USB3.0官方协议规格书(英文版).pdfQQ群号......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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