没有合适的资源?快使用搜索试试~ 我知道了~
USB3.0协议(中文)

温馨提示
这是一篇有关USB3.0协议的中文讲解。
资源推荐
资源详情
资源评论







USB3.0 与 USB2.0 的特性比较
3.2超速结构
超速总线是一个分层的通讯结构,如下图所示:
1

协议层:
协议层在主机和设备间定义了 end-to-end(端到端)通讯规则。超速协议在主机和设备
端点(endpoint)之间提供应用数据信息交换。这个通讯关系叫做管道(pipe)。
它是主机导向的协议,意味着主机决定什么时候在主机和设备间进行应用 数据传输。
设备可以通过一个特定端点向主机发起异步请求服务,所以它不是一个轮询协议(USB2.0
为轮询协议)。
数据可以连续突发传输,提高总线效率。
对某些传输类型(块传输),协议提供流控支持。
SS 设备可以异步发送,通知主机,设备的功能状态发生改变。而不是轮询的方式。设
备端点可以通过设备异步发送的“ready包(ERDY TP)通知主机进行数据发送与接收,主
机对于“ready通知,如果有有效的数据发送或者缓存接收数据,会添加管道。
主机发送包含主机时间戳的特殊包头(ITP)到总线上,该值可以用于保持设备和主机
同步(如果需要的话)。
超速 USB 电源管理:
链路电源管理的关键点是:
·设备向主机发送异步“ready通知
· 包是有路由路径的,这样就允许不参与数据通讯的链路进入或仍旧停留在低电源状
态。
·如果包送到一个处于低电源状态的端口,这个端口会切换到退出低电源状态并指示
这是个切换事件。
设备:
·超速需要支持 USB2.0 对默认的控制管道的规定。
HUB 设备:
因为 USB3.0 向下兼容 USB2.0,为支持 USB3.0 双总线结构,USB3.0HUB 在逻辑上是
两个 HUB 的组合:一个 USB2.0HUB 和一个 USB3.0HUB。连接到上游端口的电源和地线
是共享的。
集线器(HUB)参与到一个端到端的协议中,所承当的工作:
·路由选择输出的包到下游端口。
·输入包混合传递到上游端口
·当不在低功耗状态下时,向所有下游端口广播时间戳包(ITP),即为同步时间信息
包。
·当在一个低功耗状态的端口检测到包时,集线器将目标端口转变成退出低功耗状态,
通知主机和设备(带内)包遭遇到了一个在低功耗状态的端口。
主机(Hosts):
一 个 USB3.0 主 机 通过 主控 器 和 USB 设 备 互 连 。 为 了支 持 USB3.0 双 总 线 结 构 ,
2

USB3.0 主控器必须包括超速(USB3.0)和 USB2.0 部分,这样可以同时管理每一个总线上
主机和设备间的控制、状态和信息交换。
主机含有几个根下行端口实现超速 USB 和 USB2.0,主机通过这些端口:
·检测 USB 设备的连接和移除;
·管理主机和设备间的控制流;
·管理主机和设备间的数据流;
·收集状态和活动统计;
·对连接的设备供电;
USB 系统软件继承了 USB2.0 的结构,包括:
·设备枚举和配置;
·规划周期性和异步数据传输;
·设备和功能电源管理;
·设备和总线管理信息。
数据流模型:
超速 USB 集成了 USB2.0 的数据流模型,包括:
·主机和设备间的数据和控制交换通过管道(pipe)进行÷,数据传输在主机软件和指
定的设备端点间进行。
·设备可以有不止一个的活动管道,有两种类型的管道:流式管道(数据)和消息管道
(控制),流式管道没有 USB2.0 定义的结构,消息管道有指定的结构(请求的结构)。
管道相关联的是数据带宽,传输类型(见下面描述),端点属性,如传输方向与缓冲大小
·大多数管道在系统软件对设备进行配置后才存在,但是当设备上电在默认的状态后,
一个消息管道即默认的控制管道总是存在的。提供权限访问设备的配置,状态和控制信息。
·一个管道支持 USB2.0 定义的四种传输类型的一种(管道和端点属性一致)。
·海量传输类型(bulk)在超速中进行了扩展,叫做流(stream)。流式提供在协议级支
持在标准块传输管道中多路传输多个独立的逻辑数据流。
第四章÷÷÷÷超速数据流模型
4.2 超速通信流
SS 保持相似的观念和机理,支持端点,管道和传输类型。参考 USB2.0 协议。
端点的属性(最大包尺寸(端点缓存大小),突发大小等)被记录在描述符中和 SS
Endpoint Companion Descriptor。正如在 USB2.0 中,端点是使用三个参数组成的地址来验
证(设备地址,端点号和方向)。所有的 SS 设备必须起码在默认控制管道(端点 0)开
始执行。
4.2.1 管道
一个超速管道是一个设备上的端点和主机软件的连接。管道代表拥有缓存空间的主机
软件和设备端点之间传输数据的能力,和 USB2.0 有相同的过程。主要的区别在于当超速
的非同步端点忙时,会返回一个没有准备好(NRDY)应答,当它想又要服务时必须发送
准备好(ERDY)通知。主机在下一个传输类型限制下的有效时机中重新安排事务。
3

4.3 超速协议综述:
正如在 USB3.0 结构总览那章中提到的,超速协议是利用双差分数据线的物理层。所
有的 USB2.0 的类型都可以被高速协议支持。协议之间的区别在于下面要首先讨论的超速
中使用的包的描述。
4.3.1 与 USB2.0 的区别:
在框架上,超速是向后兼容 USB2.0 的,但是二者在协议上还是有一些重大的不同:
·USB2.0 的 transaction(事务处理)有三部分(令牌(token)、数据(data)和握手
(handshake)),超速也是这三部分但是用法不同(令牌包集成在头包和 DPH 中,各种类型
的握手包都是 TP 包形式);对于 OUT 事务,令牌被合并在数据包中;对于 IN 事务,令牌
被握手包代替。
·USB2.0 不支持突发(bursting),超速支持持续突发;
·USB2.0 是半双工(half-duplex)的广播总线,超速是 dual-simplex(全双工)的非广播总
线,支持同时进行 IN、OUTtransaction;
·USB2.0 使用轮询模式,超速使用异步通知方式;
·USB2.0 不支持流能力,超速支持海量(bulk)端点的 Stream 方式;
·USB2.0 在同步传输(isochronous)间隔中没有进入低耗电状态的机制,超速则允许同步
传输服务间隔中自动进入低耗电状态(不服务的时间段进入低功耗);SS 主机在服务间隔
前发送一个 PING 包到目标同步设备允许开始同步传输之前转变成电源活动状态。
·USB2.0 设备无法通知主机自己在进入低耗电状态前可容忍的延迟时间(设备通知主
机自己进入低功耗状态的最长延迟时间),超速则提供 LatencyTolerance 消息;
·USB2.0 以固定的 1ms/125us 间隔发送帧包/小帧包(USB 2.0 全速和高速模式)。超速
下,设备可以发送 IntervalAdjustment 消息给主机调整间隔 125us 一直到+/-13.333us;
·USB2.0 电源管理总是主机导向(主机初始化)的,超速链路两端都支持电源管理;
因此不管何时需要空闲,需要退出,需要通信,每个链路能独立的进入低电源状态。
·USB2.0仅在每个 transaction 进行 end-to-end 级别的错误检测、恢复、流控,超速在
end-to-end(数据包重试)和链路级别(头包重试)分割这些功能。
4.3.2 比较 USB2.0 和超速的事务处理(Transaction)
超速全双工总线物理层允许同时进行双向的通信。超速协议允许收到握手包之前发送
多个数据包(突发)。对于 OUT 传输,包含在 USB2.0 令牌包中的信息(设备地址和端点
信息)被合并在数据包头里面,因此不需要额外令牌包。对于输入传输 IN,超速主机发送
一个握手包(ACK)给设备以请求数据(和指示数据是否正确)。设备可以通过返回数据
或者返回 STALL 握手包来应答,或者返回一个没准备好(NRDY)握手包延迟传输直到设备
准备好了。
USB2.0 的包是广播方式,每个连接的设备解析每个包的地址、端点、方向信息来决定
自己是否应该响应。超速包有路由信息,HUB 决定每个包要送达哪个设备,只有一个例外,
等时(同步)时间戳包(IsochronousTimestampPacket,÷ITP)广播到每一个设备。
USB2.0 的查询方式已经被异步通知代替。超速传输通过主机发出一个请求来开始传输 ,
后面跟随着设备的应答。如果设备能接受请求,它就接收数据或者发送数据;如果端点停
止了,设备应该以 STALL 握手包响应;如果设备由于缺少缓存空间或者没有数据而不能接
受请求,应该以 NRDY 应答告诉主机现在还不能处理请求。当等到设备能接受请求时,设
备会主动发送一个端点准备好(ERDY)异步通知给主机然后主机会重新安排传输事务。
4

单路传送和有限制的多点广播的包以及异步通知,都允许没有活跃传输包的链路进入
一个降低功耗状态,上游和下游端口共同决定它们的链路进入一个低功耗状态,集线器会
传递到上游端口。通过允许链路伙伴独立控制它们的链路电源状态,集线器将任意下游端
口可见的最高链路电源状态传递到上游端口,使总线快速进入最低允许电源状态。
4.3.1.2 超速包介绍:
超速包以 16 字节的头部开始。一些包只包含有头部(TP,LMP,ITP)。所有的头部以
用于决定包处理方式的包类型信息开始。头部有 16 位 CRC 保护,以 2 个字节链路控制字
(link control word)结束。依赖于类型,大多数包包含有路由信息(路由字符)和一个三
参数的设备地址(设备地址,端点号和方向)。路由字符给主机用来指导包被发送到被指
向的拓扑路径。设备发送的包被集线器默认路由选择,集线器总是把数据从任何可见的下
游端口传到上游端口(这一过程不需要路由信息)。
有四种基本类型的包:(协议层)
·LinkManagementPacket(LMP),只穿过一对直接连接的端口(链路两端),主要用来
管理链路。
·TransactionPacket(TP,事务包),穿过所有直接连接主机与设备的链路,用来控制流
式 数 据 包 , 配 置 设 备 和集 线器 等 ( 任 何 传 输 类型 的事 务处 理 都用 到 ) 。 注 意 一个
TransactionPacket 是没有数据的。(控制命令包,TP 包就是一个包头(DPH))
·DataPacket(DP),穿过所有直接连接主机与设备的链路,数据包有两部分组成,一个
和 TP 包相似的数据包头(DPH)和带有数据块加上用来确保数据完整性的 32 位 CRC 的数据
包(DDP)
·IsochronousTimestampPacket(ITP)。它被主机用来多点广播到所有的活动的链路上。
4.4 对传输(transfer)的一般性描述:
每一个发送给接收器的非同步数据包通过一个握手包(ACK TP)被应答(同步端点不
应答,非同步端点要为每个收到的数据包进行应答,以报告是否正确传输和是否要重传),
但是由于超速有独立的发送与接收路径,所以发送器不必在发送下一个包之前为每次传输
的数据包等待一个握手(超速 USB 的一个特色:同时进行发送数据与接收应答,当设备检
测到数据包错误时或者端点错误,没准备好等,都会通过在应答 TP 包中反应给主机,主
机收到的应答 TP 包中记录出错的包顺序号,于是主机从错误的那个顺序号开始重新发送
包)。
超速保护所有的基本数据流和 USB2.0 定义的传输观点,包括传输类型,管道和基本
数据流模式。和 USB2.0 的区别在这章被讨论,开始是协议层,然后是传输类型。
USB2.0 规范利用一系列事务处理的模式。这从本质上意味这主机是在开始下一次事务
前完成这一次总线处理(令牌,数据和握手)。分离事务处理也坚持这相同模式,因为他
们由完整的高速事务组成,类似所有其他事务在相同的模式下完成。
超速通过实施发送与接受同步改善了 USB2.0 事务的协议。因此超速 USB 事务处理协
议本质上是一个分离的事务处理协议,它允许在同一时间不止一个 OUT 总线事务处理(设
备可以多个)和至多一个 IN 总线事务处理(主机只有一个)在总线上活动。设备对事务处
理的应答的命令是确定在每个端点基础上(例如,如果一个端点接收三个 DP 包,端点必
须为每一个 DP 包返回 ACK TP 告知收到 DP 包)。
USB2.0 协议要在继续下一个总线事务处理之前完成整个 IN 或 OUT 事务(令牌,数据
和握手包连续传输),所有的来自主机的传输本质上是广播到 USB2.0 总线上的每一个活
5
剩余63页未读,继续阅读

魑魅n魍魉
- 粉丝: 17
- 资源: 25
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
- 3
- 4
前往页