1、USB30合约协议规范标准中文解读USB3.0与USB2.0的特性比较超苞和U5B2比规+USBUSB2 0数据率p超谨(GO越戏戶低速(1.5Mbps) 全% (12Mbps) 高谨C48DMbps)数据接口 fDuaksimplexj四线差分估号十与US日2.0信号分离心 同时双向数据流十半取工,2线差分信号卡 前衣冋仲裁转换的单向数据流门电缆信号数&个:赧速数据路径4个信号存菲超速信号路径2个倍号2个;底5蛰全速倚麓信号路径2个估号存慧线蚩务协主机导向的,异歩传输Sb 包传输有确定路由户主机导向乳枪询传输姦, 包广播到所有设备卢电源管理多级羅路电源管理支持仝闲、睡 蹴挂起状态,裁路、设命
2、功 能级别的电源曹理杆端口级.带两级入口/出口延迟 塚魏电源理总线洪电2同US82K未配直时的洪电噌加 和,配直秋态供电曙加60%v支持低僖总线洪电,开对未配直的和挂起的 设蓍有低电源限制e端状态*端口硬件检测逹接雪件,并擀端 口亘于操作状态以备趙速数据通端口硬件检测逹接事件口系统软件便用端口 命令切换端口到使能状态.数据传输类 型屮带超連的束的舶出1类型 海區传输有流能力“卩四种传输理;控制海墓中断、弄时3.2超速结构超速总线是一个分层的通讯结构,如下图所示:Figure 3-3. SuperSpeed Bus CommuriFcations Layers anriPower Managem
3、errt Elements协议层:协议层在 主机和设备 间定义了 end-to-end 通讯规则。超速协议在 主机 和 设备端点 (endpoint) 之间提供应用数据信息交换。这个通讯关系叫做 管道 (pipe)。它是主机导向的协议 ,意味着主机决定什么时候在主机和设备间进行应用 数据传输 。设 备可以通过一个 特定端点 向主机发起 异步请求 服务,所以它不是一个 轮询协议 ( USB2.0 为 轮询协议)。数据可以连续 突发传输 ,提高 总线效率 。对某些传输类型(块传输) ,协议提供 流控支持 。SS 设备可以 异步发送, 通知主机,设备的功能状态发生改变。而不是轮询的方式。设备 端点可
4、以通过设备异步发送的“ ready”包(ERDY TP)通知主机进行数据发送与接收,主机对于“ready”通知,如果有有效的数据发送或者缓存接收数据,会添加管道。主机发送包含主机时间戳的 特殊包头( ITP) 到总线上,该值可以用于保持 设备和主机 同步 (如果需要的话) 。超速 USB 电源管理:链路电源管理的关键点是:设备向主机发送 异步“ ready”通知包是有路由路径的,这样就允许 不参与数据通讯 的链路进入或仍旧停留在低电源状态。 如果包送到一个处于 低电源状态的端口 ,这个端口会切换到 退出低电源状态 并指示 这是个切换事件。设备:超速需要支持 USB2.0 对默认的控制管道 的规
5、定。HUB 设备:因为USB3.0向下兼容 USB2.0,为支持USB3.0双总线结构,USB3.0 HUB在逻辑上是 两个 HUB 的组合:一个 USB2.0 HUB 和一个 USB3.0 HUB 。连接到上游端口的电源和地线 是共享的。集线器参与到一个端到端的协议中,所承当的工作: 路由选择输出的包到下游端口。输入包混合传递到上游端口 当不在低功耗状态下时,向所有下游端口广播时间戳包( ITP) 当在一个低功耗状态的端口检测到包时,集线器将目标端口转变成 退出低功耗状态 ,通知主机和设备(带内)包遭遇到了一个在低功耗状态的端口。主机 (Hosts):一个 USB3.0 主机通过主控器和 U
6、SB 设备互连。 为了支持 USB3.0 双总线结构 , USB3.0 主控器必须包括 超速(USB3.0 )和USB2.0部分,这样可以同时管理每一个总线上主机和设 备间的控制、状态和信息交换。主机含有几个根下行端口实现超速 USB 和 USB2.0 ,主机通过这些端口:检测USB设备的连接和移除;管理主机和设备间的控制流;管理主机和设备间的数据流;收集状态和活动统计;对连接的设备供电;USB 系统软件继承了 USB2.0 的结构,包括:设备枚举和配置;规划周期性和异步数据传输;设备和功能电源管理; 设备和总线管理信息。数据流模型:超速USB集成了 USB2.0的数据流模型,包括:主机和设备
7、间的数据和控制交换通过 管道(pipe)进行,数据传输在主机软件和指 定的设备端点间进行。设备可以有 不止一个 的活动管道,有两种类型的管道:流式管道(数据)和消息管道 (控制),流式管道没有 USB2.0 定义的结构,消息管道有指定的结构(请求的结构) 。管道 相关联的是数据带宽,传输类型(见下面描述) ,端点属性,如传输方向与缓冲大小。大多数管道在系统软件对设备进行 配置后才存在 ,但是当设备上电在默认的状态后, 一个消息管道即默认的控制管道总是存在的。提供权限访问设备的配置,状态和控制信息。一个管道支持 USB2.0 定义的四种传输类型的 一种 (管道和端点属性一致 )。海量传输类型(b
8、ulk)在超速中进行了扩展,叫做 流(stream)。流式提供在协议级支 持在标准块传输管道中 多路传输 多个独立的逻辑数据流。第四章 超速数据流模型4.2超速通信流SS 保持相似的观念和机理,支持端点,管道和传输类型。参考 USB2.0 协议。端点的属性(最大包尺寸(端点缓存大小) ,突发大小等)被记录在描述符中和 SSEndpoint Companion Descriptor 。正如在 USB2.0 中,端点是使用三个参数组成的地址来验证(设备地址, 端点号和方向) 。所有的 SS 设备必须起码在默认控制管道 (端点 0)开始执行。4.2.1管道 一个超速管道是一个设备上的端点和主机软件的
9、连接。 管道代表拥有缓存空间的主机软 件和设备端点之间传输数据的能力,和 USB2.0 有相同的过程。主要的区别在于 当超速的非 同步端点忙时 ,会返回一个没有准备好( NRDY )应答 ,当它想又要服务时必须发送准备好(ERDY )通知 。主机在下一个传输类型限制下的有效时机中重新安排事务。4.3超速协议综述:正如在 USB3.0 结构总览那章中提到的,超速协议是利用双差分数据线的物理层。所有 的 USB2.0 的类型都可以被高速协议支持。 协议之间的区别在于下面要首先讨论的超速中使 用的包的描述。4.3.1与 USB2.0 的区别:在框架上,超速是向后兼容 USB2.0 的,但是二者在协议
10、上还是有一些重大的不同:USB2.0 的 transaction 有三部分(令牌(token)、数据(data)和握手(handshake),超速也是这三部分但是用法不同(令牌包集成在头包和 DPH 中,各种类型的握手包都是 TP包形式);对于 OUT 事务,令牌被合并在数据包中;对于 IN 事务,令牌被握手包代替。USB2.0不支持突发(bursting),超速支持 持续突发;USB2.0 是半双工 (half-duplex) 的广播总线,超速是 dual-simplex (全双工)的非广播 总线, 支持同时进行 IN、 OUT transaction ;USB2.0 使用 轮询模式 ,超速
11、使用 异步通知方式 ;USB2.0不支持流能力,超速支持海量(bulk)端点的Stream方式;USB2.0在同步传输(isochronous)间隔中没有进入低耗电状态的机制,超速则允许同步传输服务间隔中自动进入低耗电状态 (不服务的时间段进入低功耗);SS主机在服务间隔前发送一个 PING 包到目标同步设备允许开始同步传输之前转变成电源活动状态。USB2.0 设备无法通知主机自己在进入低耗电状态前可容忍的 延迟时间(设备通知主机自己进入低功耗状态的最长延迟时间) ,超速则提供 Latency Toleranee消息;USB2.0 以固定的 1ms/125us 间隔发送帧包 /小帧包( USB
12、 2.0 全速和高速模式) 。超速 下,设备可以发送 Interval Adjustment消息给主机调整间隔 125us 一直到+/-13.333us ;USB2.0 电源管理总是 主机导向(主机初始化) 的,超速链路 两端都支持电源管理 ; 因此不管何时需要空闲,需要退出,需要通信,每个链路能独立的进入低电源状态。USB2.0 仅在每个 transaction 进行 end-to-end 级别的错误检测、恢复、流控,超速在end-to-end (数据包重试) 和链路级别(头包重试) 分割这些功能。4.3.2比较 USB2.0 和超速的 事务处理 (Transaction)超速全双工总线物理
13、层允许 同时 进行双向 的通信。超速协议允许 收到握手包之前 发送多 个数据包 (突发)。对于 OUT 传输, 包含在 USB2.0 令牌包中的信息 (设备地址和端点信息) 被合并在数据包头里面,因此不需要额外令牌包。对于输入传输 IN,超速主机发送一个握手包( ACK )给设备以 请求数据(和指示数据是否正确) 。设备可以通过返回数据或者返回 STALL 握手包来应答,或者返回一个没准备好 (NRDY) 握手包 延迟传输直到设备准备好了。USB2.0 的包是 广播方式 ,每个连接的设备解析每个包的 地址、端点、方向信息来 决定 自己是否应该响应。超速包有 路由信息 , HUB 决定每个包要送
14、达 哪个设备,只有一个例外 , 等时时间戳包(Isochro nous Timestamp Packet, ITP)广播到每一个设备。USB2.0 的查询方式已经被异步通知代替。 超速传输通过主机发出一个请求来开始传输, 后面跟随着设备的应答。 如果设备能接受请求, 它就接收数据或者发送数据; 如果端点停止 了,设备应该以 STALL 握手包响应;如果设备由于 缺少缓存空间或者没有数据 而不能接受 请求,应该以 NRDY 应答告诉主机现在还不能处理请求。当等到设备能接受请求时,设备 会主动发送一个端点准备好( ERDY )异步通知给主机然后主机会重新安排传输事务。单路传送和有限制的多点广播的包
15、以及异步通知, 都允许没有活跃传输包的链路进入一 个降低功耗状 态,上游和下游端口共同决定它们的链路进入一个低功耗状态, 集线器会传递到上游端口。 通过允许链路伙伴独立控制它们的链路电源状态, 集线器将任意下游端口可见 的最高链路电源状态传递到上游端口,使总线快速进入最低允许电源状态。4.3.1.2超速包介绍:超速包以16字节的头部开始。一些包只包含有头部( TP, LMP,ITP )。所有的头部以用于决定包处理方式的包类型信息开始。 头部有 16 位 CRC 保护,以 2 个字节链路控制字 (link control word )结束。依赖于类型,大多数包包含有 路由信息 (路由字符)和一个
16、三参数的 设备地址 (设备地址,端点号和方向) 。路由字符给主机用来指导包被发送到被指向的拓扑 路径。设备发送的包被集线器默认路由选择, 集线器总是把数据从任何可见的下游端口传到 上游端口(这一过程不需要路由信息) 。有四种基本类型的包: (协议层 )Link Management Packet(LMP ),只穿过一对直接连接的端口(链路两端) ,主要用来管理链路。Transaction Packet(TP,事务包),穿过所有直接连接主机与设备的链路,用来控制流式 数 据 包 , 配置 设 备 和集 线 器 等 ( 任 何 传输类 型 的 事 务 处 理 都用 到 )。 注 意一 个 Tran
17、 saction Packet是没有数据的。(控制命令包, TP包就是一个包头(DPH)Data Packet(DP),穿过所有直接连接主机与设备的链路,数据包有两部分组成,一个和 TP 包相似的数据包头 (DPH) 和带有数据块加上用来确保数据完整性的 32 位 CRC 的数据 包( DDP )Isochronous Timestamp Packet(ITP) 。它被主机用来多点广播到所有的 活动 的链路上。4.4对传输 (transfer) 的一般性描述 :每一个发送给接收器的 非同步数据包 通过一个握手包( ACK TP )被应答(同步端点不 应答,非同步端点要为每个收到的数据包进行应答
18、,以报告是否正确传输和是否要重传) ,但是由于超速有独立的发送与接收路径, 所以发送器不必在发送下一个包之前为每次传输的 数据包等待一个握手(超速 USB 的一个特色:同时进行发送数据与接收应答,当设备检测 到数据包错误时或者端点错误,没准备好等,都会通过在应答 TP 包中反应给主机,主机收到的应答 TP 包中记录出错的包顺序号,于是主机从错误的那个顺序号开始重新发送包) 。超速保护所有的基本数据流和 USB2.0 定义的传输观点,包括传输类型,管道和基本数 据流模式。和 USB2.0 的区别在这章被讨论,开始是协议层,然后是传输类型。USB2.0 规范利用一系列事务处理的模式。这从本质上意味
19、这主机是在开始下一次事务 前完成这一次总线处理(令牌,数据和握手) 。分离事务处理也坚持这相同模式,因为他们 由完整的高速事务组成,类似所有其他事务在相同的模式下完成。超速通过实施发送与接受同步改善了 USB2.0 事务的协议。 因此超速 USB 事务处理协 议本质上是一个分离的事务处理协议 ,它允许在同一时间不止一个 OUT 总线事务处理(设 备可以多个)和至多一个 IN 总线事务处理(主机只有一个)在总线上活动。设备对事务处 理的应答的命令是确定在每个端点基础上(例如,如果一个端点接收三个 DP 包,端点必须为每一个 DP 包返回 ACK TP 告知收到 DP 包)。USB2.0 协议要在
20、继续下一个总线事务处理之前完成整个 IN 或 OUT 事务(令牌,数据和握手包连续传输) ,所有的来自主机的传输本质上是广播到 USB2.0 总线上的每一个活动设备,与之比较起来,超速协议不进行广播任何包( ITP 除外),包只穿过需要达到目标接 收方的链路,主机通过发送握手请求( ACK TP )或者发送数据(OUT)开始所有的事务,设备以数据或者握手来应答。假如设备没有有效的数据( IN )或者不能接受数据(OUT),它会以一种包( NRDY )来应答以指示不能进行此操作。之后,当设备准备好发送或者接收数 据时, 它会发送一个包给主机指示它已经准备好重新进行事务处理。 除此之外, 超速提供
21、将链路转变成指定的低电源状态或者退出低电源状态的能力。 低电源链路状态可以在软件使能 以后由软件控制或者自发的硬件控制来进入。 还提供一个自动将主机与设备之间的所有链路 由非活动电源状态转变成活动电源状态的机制。设备在每个端点的描述符中记录每个端点的最大包尺寸。 这个尺寸只指示负载数据块长 度,不包括链路层和协议层的包头( DPH )。超速的带宽分配相似于 USB2.0。4.4.1Data Bursting (突发数据)突发数据通过消除在每个基于数据包应答的等待时间提高效率 (即无需等待应答就能处理数据)。每个超速设备上的端点指示了它在必须等待一个明显握手之前能够发送 /接受的包数量(称之为
22、最大数据突发大小 )。最大数据突发大小是一个每个端点各自的能力,一个主 机从与端点相关的 SuperSpeed Endpoint Companion descriptor 描述符决定 一个端点的最 大数据突发大小。主机在每个事务处理的基础之上能动态改变突发大小, 直到最大突发大小被配置了。 主机能使用不同突发大小的一个例子, 不受限于, 但是包括一个主机上的公平决策和中断流的 重试。 当端点是 OUT 类型,主机能容易控制突发大小(接收器必须总是能管理突发大小 事务处理),当端点为 IN 类型,主机能基于每次事务处理限制端点突发大小,是通过在发 送给设备的应答包中的一个域来限制。4.4.2IN
23、 transfer (输入传输) : 主机和设备应该延续传输类型和端点属性的约束。一个主机通过发送一个 ACK 确认请求包给设备 ( IN )开始请求一次传输。 这个确认(握 手包)包包含了数据包路由选择到想要的端点所需要的地址信息。 主机告知设备它可以发送的数据包数量和期望来自于设备第一个包的序号 ( 0) 。在应答中, 端点会发送正确的序列号 的数据包给主机, 主机发的确认包也暗中应答了之前成功收到的数据包 (以及请求下一个顺 序号的数据包) 。注意 :即使主机需要为每一个收到的数据包发送一个确认包, 但是设备可以不需等待任 何确认包就发送所需要的数据包数量。超速总线的 一次 IN 传输
24、由一个或 多个 IN 事务处理 组成,一个 IN 事务处理由一个或多 个包组成(比如主机发送 ACK TP,设备发送 DP或NRDY TP或STALL)。 当下面的任何条件发生,都能结束 IN 传输:所有数据已经成功传送;设备端点发送一个 短包(比最大包尺寸小的包)作为应答 ;端点响应错误。( Host 发送 IN packet 之后,设备可以持续发送多个数据包,不需要等待每个包都得到 host的确认包(ACK TP),因为超速是dual-simplex (全双工)的,但是设备收到的总的认 可包数量应该和设备发送的数据包数量一样。 )IN Session Trans a di on (s)La
25、mFigure 4-1. Supers peed IN Transaction Protocol443 OUT transfer :主机通过发送一个突发数据包给设备开始一次 OUT传输,每一个数据包(的 DPH )包含需要路由选择目标端点的地址信息, 也包含数据包的顺序号 (作为区分不同发送顺序的数据包标号)。对于一个 非同步事务,设备返回一个确认包,其中包含下个要接收的数据包顺 序号和隐含地应答当前数据包。注意虽然设备需要为每个收到的数据包发一个确认包, 但是主机不需等待一个应答就能发送最大的突发数据包数量给设备。OUT transfer在下列情况下时会结束:所有数据已经成功传送; Host
26、发送了一个短包;端点响应错误。OUT SessionTransactionN data acknowl&aen&ntgFigure 4*2, St perSpeed OUT Transaction Protocol四种 transfer 类型:control、bulk、interrupt、isochronous transfer。用意同 USB2.0,但 是bulk最大包大小增加为 1024B, control端点最大包大小增加为 512B。control端点不支持burst ,bulk 可以 burst 1 16,bulk 还增加了 Stream 能力;interrupt、isochrono
27、us 可以 bust 1 16 (当最大突发大小为 1时,对于同步传输,其最大包大小能为 0-1024之间任意大小,对于中断端点,最大包大小可以在 1-1024之间任意大小;如果最大突发大小为 1时,最大包大小只能为1024 )。4.4.5控制传输控制传输的目的与特点与 USB2.0协议完全相同。这个规格的协议层章节详细描述了用 于完成控制传输的包,总线事务处理和事务处理流程。设备架构那章定义了完整系列的设备 使用的标准命令编码。每个设备需要启动默认控制管道作为一个 消息管道。这个管道用来进行设备初始化和管理,用来访问设备描述符和向设备请求对其进行操作(在设备级) 。控制传输必须维持相同的在U
28、SB2.0中定义的请求(获取描述符等命令) 。超速系统会制造一个最好的条件情况支持主机与设备间的控制传输。正如 USB2.0,功能和客户软件不能为控制传输主动要求指定带宽(不是能分配 10%的带宽吗?)。4.4.5.1控制传输包大小控制端点有一个固定的最大控制传输数据包大小为 512字节(同时反应了端点缓存大小)。还有一个最大突发大小为 1 (控制传输不支持突发数据? )。这些最大值适用于在控制 传输数据阶段 的所有的数据事务处理。参考 8.12.2章,详细描述了超速控制传输的建立(setup)与数据阶段(data)。超速设备在设备描述符的 bMaxPacketSize域中必须记录一个 09H
29、的值。默认控制管道的默认最大包大小的解码规则在 9.6.1章被给出(2的9次方=512B )。默认控制管道必须支 持最大顺序值为 32 (在0-31范围的顺序值被使用)。USB2.0与超速之间,设备到主机和主 机到设备的数据阶段数据传输和完成一般没有什么改变。4.4.5.2控制传输带宽需求设备没有方法为控制管道指示想要的带宽。 主机通过权衡所有控制管道总线访问需求与 在那些管道上挂起事务处理来提供一个最好的情况给客户软件和功能设备之间的传输。 这个 规则跟 USB2.0 相似。超速需要保留有效的总线带宽给控制管道作为以下使用:控制传输事务处理可能与其他被定义功能端点的事务处理一同被安排控制传输
30、的重试不能优先于其他最好情况的事务处理如果有控制传输和块传输为多个端点挂起, 根据一个主机控制器相关的公平规则, 不同端点的控制传输被选择服务。当一个控制端点传输一个流控制事件, 主机会移除来自于被安排的活动端点。 一旦收 到一个来自于设备准备好的通知,主机会对这个端点恢复传输。这些要求允许主机与设备间的控制传输周期性的通过有最好条件的超速总线移动数据。 系统软件的任意操作行为在 USB2.0 5.5.4 定义。超速控制传输同样适用。4.4.5.3控制传输数据流程超速保护消息格式和在 USB2.0 定义的控制传输的一般阶段流程。 超速协议定义了对控 制传输建立和状态阶段的相同改变。4.4.6块
31、传输此规格的 8.12.1 章详细描述了用来完成块传输的包, 总线事务处理和事务处理流程。 块 传输类型是用来支持想要跟相当大的海量数据通信设备,传输能使用任何可用的超速带宽。 超速块传输功能端点提供以下:对基于有限带宽的超速总线访问 保证数据的发送,但是不保证带宽和发送时间超速维持下面的块传输管道特征: 对块传输管道通信流没有强制固定的数据结构块传输管道是一个流式管道, 因此总是有通信流进出主机。 如果应用需要一个双向块 传输通信流,必须使用两个块传输管道(一个 OUT, 个IN )。标准 USB 块传输管道提供移动数据流的能力。超速增加了协议级支持 多倍流模式 的流 式概念。4.4.6.1块传输数据包大小块传输端点应该在端点描述符中设置最大数据包大小为 1024 字节。也要指定端点在超 速总线上能够接受或发送的突发大小。可允许的块传输端点突发大小在 1到 16的范围。所有的超速块传输端点要支持 0-31 的顺序值。主机需要支持任何超速 bulk 传输端点和所有的 bulk 传输突发大小。主机要确保发送给 端点的数据包的数量不能超过描述符中定义的最大包大小。 此外, 发
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1