USB2.0物理层的电信号
+ -

USB高速基础知识

2022-03-03 3879 22

USB 2.0 中引入了对规范的高速添加,以响应 Firewire 的更高速度。
由于 High Speed 是事后才添加的,并且必须在不影响性能的情况下保持兼容性,所以我们将保留对 High Speed 的描述,直到我们涵盖了原始规范的基础知识

数据传输

高速实现的数据速率为 480 Mb/s。这需要通过最初指定为 12 Mb/s 传输速率的电缆传输,为了实现这一点,当链路传输高速数据时,D+ 的每一端和 D- 的每一端都以 45 欧姆的接地电阻端接。

通过将 17.78 mA 的电流(来自正电源)引导到 D+ 或 D- 线来发送数据。这会导致被馈入电流的线路上的电压为 400mV。差分接收器在接收端检测线路的差分状态。这种安排能够可靠地接收以 480 Mb/s 发送的数据。

事实上,全速/低速驱动器提供 45 欧姆电阻,在链路的每一端应用单端零。FS/LS 驱动器旨在提供尽可能准确的端接电阻。通过关闭高速收发器电流源,线路条件定义为全速/低速。
高速传输基础

除了差分接收器,还有一个“传输包络检测器”和一个“差分包络检测器”。
如果数据线之间的电压低于 100uV,则传输包络检测器会产生一个“静噪”信号,这意味着没有接收到数据。
差分包络检测器检测远端是否已拔出,因为如果远端终端电阻不存在,差分电压将加倍至约 800 mV。

数据包同步

在数据包同步之前,两条数据线都为低电平。使用 NRZI 序列 KJKJKJKJKJKJKJKJ KJKJKJKJKJKJKJKK 发送同步。
数据包同步

每个集线器可能会从同步模式中删除多4位。在 5 个集线器之后,一个数据包的同步字段可能只有 12 位长。

数据包结束

在低速或全速链路上,一个简短的单端零 (SE0) 状态用于指示数据包结束 (EOP),空闲由 J 状态指示。

在高速链路上,空闲状态实际上是一个 SE0,因此该状态不能用于指示 EOP,并且使用了不同的方法来指示数据包结束。在正常的数据传输过程中,连续的 1 不能超过 6 个,因为 0 会自动插入(并且会在接收时删除)。这保证了 NRZI 编码数据流中有足够的转换以允许时钟恢复。

在高速时,通过故意发送一个包含位填充错误的字节来指示 EOP;’01111111’。这适用于除 SOF 之外的所有数据包的末尾。

每个高速 SOF 数据包以包含比特填充错误的 5 个 NRZI 字节结束:01111111 - 11111111 -11111111 -11111111 -11111111。这种模式允许“断开包络检测器”检测到高于 625 mV 的数据幅度上升,以防设备及其终端电阻已被拔出。

兼容性

已注意在高速和全速/低速主机以及高速和全速/低速设备之间提供尽可能多的兼容性。USB 是即插即用系统,不能混淆用户。因此,低速或全速设备将始终与支持高速的主机一起工作。

高速设备将始终与全速/低速主机一起工作,至少在将其身份和功能传达给主机的范围内(它可以全速进行)。然后,如果用户拥有依赖高速带宽来提供任何功能的设备,主机将能够向用户报告。

高速协商

为了保持所需的兼容性,高速设备最初总是将自己显示为全速设备(通过 D+ 上的 1.5K 上拉电阻)。

  • 高速协商发生在复位期间,这是主机在尝试数据通信之前必须对设备执行的第一件事。
  • 高速检测握手由设备发起。
  • 如果集线器具有高速能力,集线器将对其做出响应。

高速协商

设备的作用

该器件保持其 D+ 1.5K 上拉电阻连接,并且不会像 高速时那样使用 45 欧姆电阻终止线路。但它将高速电流 (17.78mA) 驱动到 D 线至少一毫秒。现在,请记住集线器正在对线路应用复位条件,因此实际上已经终止了高速数据。由于只有链路的一端被终止,集线器将在 D- 上看到大约 800 mV。这种情况称为 K 啁啾。

全速/低速集线器不会注意这种情况,但高速集线器会使用其差分接收器和没有静噪信号来检测它。

如果集线器没有响应,那么其余的复位和随后的数据传输将按照全速设备的正常情况进行。

集线器响应

如果集线器具有高速能力,那么它将监控来自设备的 K-chirp,直到它看到它完成。它必须在 100us 内向设备发送一系列 KJ 啁啾对。这意味着它将交替向 D- 和 D+ 线注入 17.78 mA。这些啁啾中的每一个持续大约 50us,并且它们之间没有间隙。在假设集线器具有高速能力之前,该设备必须看到至少 3 个啁啾对。

切换到高速

此时,设备断开其 1.5K 上拉电阻,应用 45 欧姆高速终端(在 SE0 模式下使用其全速数据驱动器),从而处于执行高速数据传输和接收的状态。集线器将继续发送JK对,直到复位结束前 100 - 500 us,并且设备将监视这些JK。在应用器件端接的时间点,啁啾信号的幅度,在示波器上观察到,幅度从 800mV 到 400mV 减半。

帧和微帧

全速/低速 USB 使用 1 ms 帧速率,例如调度对总线的访问,以及作为中断和同步传输的时序参考。

对于高速,更高的帧速率被认为是合适的,同时仍保持与现有 1 kHz 速率的关系。为此,高速使用 125us 长的“微帧”(每毫秒 8 微帧)。通过在 8 个连续的微帧中重复每个帧号,在高速 SOF 数据包中保持与 1ms 帧编号的对应关系。

数据包长度

数据包长度

每微帧的数据包

在高速下,可以指定每微帧最多 3 次同步或中断传输,而不是全速每帧 1 次传输;最大可能的同步或中断传输速率为 192 Mb/s。

新的数据包标识

为高速添加了一些新的 PID,部分是为了解决在全速协议中公认的一些低效率,部分是为了支持新的同步传输功能,以及对“拆分事务”的新要求。

数据包标识

为解决一些低效率并提高高速带宽使用的标识符是:

为控制每个微帧的多个同步数据包的标识符是:

  • DATA2
  • MDATA

增加拆分传输的标识符是

兼容全速和低速设备的高速集线器

在最初的 USB 中,存在一个内置的低效率,即整个总线都被阻塞,等待低速事务发生。

费尽心思将数据速率提高到 480 Mb/s,如果这种情况持续下去,那就太浪费了,因此采取了不同的方法。

与 USB V2.00 集线器的所有通信都以高速进行,即使它包含低速或全速设备的流量。在高速集线器树中,数据包以高速沿树向下传输到集线器,低速或全速设备连接到集线器的端口。

有问题的集线器在其内部分配了特殊的控制电路,以接管与总线的低速或全速段通信的角色;启动事务,从设备获取响应,最后将结果高速传送回主机。

处理这个问题所需的机制,在不阻碍总线的高速段的情况下,包括将每个低速或全速事务分成 2 个阶段;来自主机的请求,以及来自设备的最终响应。

主机使用带有 SPLIT 标识符的新数据包与高速集线器通信其要求。此数据包可以定义开始拆分或完整拆分事务。

这两种传输中数据包的实际顺序非常依赖于传输类型和方向。

此图说明了如何将全速和低速流量与高速流量分开。蓝线仅承载高速交通,红线仅承载全速或低速。指向全速或负载速度设备的任何流量都通过高速部分,作为高速拆分事务。

兼容全速和低速设备的高速集线器

复位

当主机想要复位设备时,主机将保持其 SE0,但不发送任何数据。设备最初会看到 SE0(没有数据活动),并且无法将此情况与挂起区分开来。在此条件的最迟 3.125 ms 之后,设备必须自行恢复到全速终止,然后测试它是否看到 SE0 或空闲。如果它看到 SE0,那么它就知道它正在被重置,并将继续进行上述的握手。
复位

暂停

高速主机通过恢复到全速空闲状态来挂起设备。同样,设备最初会看到 SE0(没有数据活动),并且无法将此情况与复位区分开来。

在此条件的最迟 3.125 ms 之后,设备必须自行恢复为全速终止,然后测试它是否看到 SE0 或空闲。如果它检测到空闲,它必须假定它被挂起,并且必须进入它的低功耗挂起模式。

请注意,链路的两端必须记住它们处于高速模式,这样当 Resume 发生时,不需要高速握手。

暂停

恢复/Resume

至于全速/低速,Resume 由 K 状态发出 20 ms 的信号。当链路先前处于高速模式时,通过在恢复结束时转换回 SE0 来完成恢复,并且主机和设备都必须在 2 个低速位时间内处于高速终止模式。

152950979557

检测设备拔出

在低速或全速链路上,一个简短的单端零 (SE0) 状态用于指示数据包结束 (EOP),空闲由 J 条件指示。

在高速链路上,空闲状态实际上是一个 SE0,因此该状态不能用于指示 EOP,并且使用了不同的方法来指示数据包结束。在正常的数据传输过程中,连续的 1 不能超过 6 个,因为 0 会自动插入(并且会在接收时删除)。这保证了 NRZI 编码数据流中有足够的转换以允许时钟恢复。

在高速时,通过故意发送一个包含位填充错误的字节来指示 EOP;’01111111’。这适用于除 SOF 之外的所有数据包的末尾。

每个高速 SOF 数据包以包含比特填充错误的 5 个 NRZI 字节结束:01111111 - 11111111 -11111111 -11111111 -11111111。这种模式允许“断开包络检测器”检测到高于 625 mV 的数据幅度上升,以防设备及其终端电阻已被拔出。

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......
USB超高速高速端点伴随描述符
在接口中描述的每个超高速端点都紧跟着一个超高速端点伴侣描述符( EndpointCompanion descriptor)。这个描述符包含只给超高速端点定义的附加端点特性。这个描述符总是 作 为 配 置 描 述 符 信 息 的 一 部 分 在GetDescriptor(Configuration) ......
USB超高速 精密时间测量描述符
精密时间测量描述符(Precision Time Measurement)应由支持PTM能力的所有集线器和设备实现。OffsetFieldSizeValueDescription0bLength1数字描述符长度1bDescriptorType1常量描述符的类型,这里为DEVICE CAPABILIT......
USB超高速 GEN1设备状态
USB设备可能有很多状态,如断开状态,刚接入状态,分配地址状态,配置状态,工作状态等。当然由于USB3.0超高速协议规范的定义,USB超高速总线架构采用的是双总线结构。超高速设备的状态如下:AttachedPoweredDefaultAddressConfiguredSuspendedStateNo......
USB设备低速,高速硬件检测机制及断开过程
没有设备连接到主机时:D+和D-数据线上的下拉电阻起作用,使得两者都在低电平;主机端看来就是个SE0状态,同样地,当数据线上的SE0状态持续一断时间后,就被主机认为是断开状态。设备连接到主机时:当主机检到某一个数据线电平拉高并保持了一段时间,就认为有设备连上来了。 主机必需在驱动SE0状态以复位设备......
USB3.2超高速GEN2 128b/132b编码
USB3.2 GEN2的物理层PHY使用的是128b/132b编码,数据的传输速从GEN1最高的5Gbps达到了GEN现在的10Gbps。USB3.2 GEN2和GEN1一样,都是要传输的数据先进行序列化,然后再从低位(LSB)到高位(MSB)进行传输。USB3.2 GEN2对于传输1字节的symb......
USB3.2超高速GEN1 8b/10b编码概述
USB3.2 GEN1的物理层PHY使用的是8b/10b编码。USB3.2GEN1即USB3.0使用的8b/10b编码是对数据从8位到10的编码扩展。如对于发送的数据1字节,其各位从低到高记作 ABCDEFGH,这里将其分为2组,低5位一组,高3位一组。高3位的FGH被编码为fghj,低5位的ABC......
USB3.2超高速GEN2数据扰频
USB3.2GEN2的扰频规则和USB3.2GEN1的扰频算法是不一样的。USB3.2GEN2的扰频算法图:USB3.2GEN2的扰频有以下几种模式:扰码器前进并与数据异或。扰码器前进并被绕过(不与数据异或)。扰码器不前进且被绕过(不与数据异或)USB3.2GEN2的扰频规则:块头(Block he......
USB超高速 配置概要描述符
配置概要描述符可以由具有多个配置的设备实现,使用该功能用于标识设备支持的配置列表。如果实现配置概要描述符,设备提供的每个功能应通过单独的配置概要描述符表示。但是,如果设备功能存在于所有可能的配置中,则可以省略该功能的配置概要描述符。配置概要描述符应按首选项降序包含在BOS描述符中。配置概要描述符可由......
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......
USB3.2超高速 平台描述符
平台描述符用于标识平台或操作系统定义的128位UUID值,使用该值可以标识特定平台或操作系统的唯一设备功能。平台描述符可以包含与该功能特性能力相关联的一个或多个字节的数据。平台描述符的定义如下:struct _PLATFORM_DESCRIPTOR{ BYTE bLength; ......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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