USB3.0协议规范中文解读

上传人:沈*** 文档编号:93440299 上传时间:2022-05-20 格式:DOC 页数:37 大小:126KB
收藏 版权申诉 举报 下载
USB3.0协议规范中文解读_第1页
第1页 / 共37页
USB3.0协议规范中文解读_第2页
第2页 / 共37页
USB3.0协议规范中文解读_第3页
第3页 / 共37页
资源描述:

《USB3.0协议规范中文解读》由会员分享,可在线阅读,更多相关《USB3.0协议规范中文解读(37页珍藏版)》请在装配图网上搜索。

1、USB3.0 与USB2.0的特性比拟3.2超速结构超速总线是一个分层的通讯结构,如以下图所示:协议层:协议层在主机和设备间定义了end-to-end通讯规那么。超速协议在主机和设备端点(endpoint)之间提供给用数据信息交换。这个通讯关系叫做管道(pipe)。它是主机导向的协议,意味着主机决定什么时候在主机和设备间进行应用数据传输。设备可以通过一个特定端点向主机发起异步请求效劳,所以它不是一个轮询协议USB2.0为轮询协议。 数据可以连续突发传输,提高总线效率。 对某些传输类型块传输,协议提供流控支持。 SS设备可以异步发送,通知主机,设备的功能状态发生改变。而不是轮询的方式。设备端点可

2、以通过设备异步发送的“ready包ERDY TP通知主机进行数据发送与接收,主机对于“ready通知,如果有有效的数据发送或者缓存接收数据,会添加管道。 主机发送包含主机时间戳的特殊包头ITP到总线上,该值可以用于保持设备和主机同步如果需要的话。超速USB电源管理:链路电源管理的关键点是:设备向主机发送异步“ready通知 包是有路由路径的,这样就允许不参与数据通讯的链路进入或仍旧停留在低电源状态。如果包送到一个处于低电源状态的端口,这个端口会切换到退出低电源状态并指示这是个切换事件。设备:超速需要支持USB2.0对默认的控制管道的规定。HUB设备:因为USB3.0向下兼容USB2.0,为支持

3、USB3.0双总线结构,USB3.0HUB在逻辑上是两个HUB的组合:一个USB2.0HUB和一个USB3.0HUB。连接到上游端口的电源和地线是共享的。集线器参与到一个端到端的协议中,所承担的工作:路由选择输出的包到下游端口。输入包混合传递到上游端口当不在低功耗状态下时,向所有下游端口播送时间戳包ITP当在一个低功耗状态的端口检测到包时,集线器将目标端口转变成退出低功耗状态,通知主机和设备带内包遭遇到了一个在低功耗状态的端口。主机(Hosts):一个USB3.0主机通过主控器和USB设备互连。为了支持USB3.0双总线结构,USB3.0主控器必须包括超速USB3.0和USB2.0局部,这样可

4、以同时管理每一个总线上主机和设备间的控制、状态和信息交换。主机含有几个根下行端口实现超速USB和USB2.0,主机通过这些端口:检测USB设备的连接和移除;管理主机和设备间的控制流;管理主机和设备间的数据流;收集状态和活动统计;对连接的设备供电;USB系统软件继承了USB2.0的结构,包括:设备枚举和配置;规划周期性和异步数据传输;设备和功能电源管理;设备和总线管理信息。数据流模型:超速USB集成了USB2.0的数据流模型,包括:主机和设备间的数据和控制交换通过管道pipe进行,数据传输在主机软件和指定的设备端点间进行。设备可以有不止一个的活动管道,有两种类型的管道:流式管道数据和消息管道控制

5、,流式管道没有USB2.0定义的结构,消息管道有指定的结构请求的结构。管道相关联的是数据带宽,传输类型见下面描述,端点属性,如传输方向与缓冲大小。 大多数管道在系统软件对设备进行配置后才存在,但是当设备上电在默认的状态后,一个消息管道即默认的控制管道总是存在的。提供权限访问设备的配置,状态和控制信息。一个管道支持USB2.0定义的四种传输类型的一种(管道和端点属性一致)。海量传输类型bulk在超速中进行了扩展,叫做流stream。流式提供在协议级支持在标准块传输管道中多路传输多个独立的逻辑数据流。第四章超速数据流模型4.2超速通信流SS保持相似的观念和机理,支持端点,管道和传输类型。参考USB

6、2.0协议。端点的属性最大包尺寸端点缓存大小,突发大小等被记录在描述符中和SS Endpoint Companion Descriptor。正如在USB2.0中,端点是使用三个参数组成的地址来验证设备地址,端点号和方向。所有的SS设备必须起码在默认控制管道端点0开始执行。4.2.1 管道一个超速管道是一个设备上的端点和主机软件的连接。管道代表拥有缓存空间的主机软件和设备端点之间传输数据的能力,和USB2.0有相同的过程。主要的区别在于当超速的非同步端点忙时,会返回一个没有准备好NRDY应答,当它想又要效劳时必须发送准备好ERDY通知。主机在下一个传输类型限制下的有效时机中重新安排事务。4.3超

7、速协议综述:正如在USB3.0结构总览那章中提到的,超速协议是利用双差分数据线的物理层。所有的USB2.0的类型都可以被高速协议支持。协议之间的区别在于下面要首先讨论的超速中使用的包的描述。4.3.1与USB2.0的区别:在框架上,超速是向后兼容USB2.0的,但是二者在协议上还是有一些重大的不同:USB2.0的transaction有三局部(令牌token、数据data和握手(handshake),超速也是这三局部但是用法不同令牌包集成在头包和DPH中,各种类型的握手包都是TP包形式;对于OUT事务,令牌被合并在数据包中;对于IN事务,令牌被握手包代替。USB2.0不支持突发bursting

8、,超速支持持续突发;USB2.0是半双工(half-duplex)的播送总线,超速是dual-simplex全双工的非播送总线,支持同时进行IN、OUTtransaction;USB2.0使用轮询模式,超速使用异步通知方式;USB2.0不支持流能力,超速支持海量(bulk)端点的Stream方式;USB2.0在同步传输(isochronous)间隔中没有进入低耗电状态的机制,超速那么允许同步传输效劳间隔中自动进入低耗电状态不效劳的时间段进入低功耗;SS主机在效劳间隔前发送一个PING包到目标同步设备允许开始同步传输之前转变成电源活动状态。USB2.0设备无法通知主机自己在进入低耗电状态前可容忍

9、的延迟时间设备通知主机自己进入低功耗状态的最长延迟时间,超速那么提供LatencyTolerance消息;USB2.0以固定的1ms/125us间隔发送帧包/小帧包USB 2.0全速和高速模式。超速下,设备可以发送IntervalAdjustment消息给主机调整间隔125us一直到+/-13.333us;USB2.0电源管理总是主机导向主机初始化的,超速链路两端都支持电源管理;因此不管何时需要空闲,需要退出,需要通信,每个链路能独立的进入低电源状态。USB2.0仅在每个transaction进行end-to-end级别的错误检测、恢复、流控,超速在end-to-end数据包重试和链路级别头包

10、重试分割这些功能。比拟USB2.0和超速的事务处理(Transaction)超速全双工总线物理层允许同时进行双向的通信。超速协议允许收到握手包之前发送多个数据包突发。对于OUT传输,包含在USB2.0令牌包中的信息设备地址和端点信息被合并在数据包头里面,因此不需要额外令牌包。对于输入传输IN,超速主机发送一个握手包ACK给设备以请求数据和指示数据是否正确。设备可以通过返回数据或者返回STALL握手包来应答,或者返回一个没准备好(NRDY)握手包延迟传输直到设备准备好了。USB2.0的包是播送方式,每个连接的设备解析每个包的地址、端点、方向信息来决定自己是否应该响应。超速包有路由信息,HUB决定

11、每个包要送达哪个设备,只有一个例外,等时时间戳包IsochronousTimestampPacket,ITP播送到每一个设备。USB2.0的查询方式已经被异步通知代替。超速传输通过主机发出一个请求来开始传输,后面跟随着设备的应答。如果设备能接受请求,它就接收数据或者发送数据;如果端点停止了,设备应该以STALL握手包响应;如果设备由于缺少缓存空间或者没有数据而不能接受请求,应该以NRDY应答告诉主机现在还不能处理请求。当等到设备能接受请求时,设备会主动发送一个端点准备好ERDY异步通知给主机然后主时机重新安排传输事务。单路传送和有限制的多点播送的包以及异步通知,都允许没有活泼传输包的链路进入一

12、个降低功耗状态,上游和下游端口共同决定它们的链路进入一个低功耗状态,集线器会传递到上游端口。通过允许链路伙伴独立控制它们的链路电源状态,集线器将任意下游端口可见的最高链路电源状态传递到上游端口,使总线快速进入最低允许电源状态。超速包介绍:超速包以16字节的头部开始。一些包只包含有头部TP,LMP,ITP。所有的头部以用于决定包处理方式的包类型信息开始。头部有16位CRC保护,以2个字节链路控制字link control word结束。依赖于类型,大多数包包含有路由信息路由字符和一个三参数的设备地址设备地址,端点号和方向。路由字符给主机用来指导包被发送到被指向的拓扑路径。设备发送的包被集线器默认

13、路由选择,集线器总是把数据从任何可见的下游端口传到上游端口这一过程不需要路由信息。有四种根本类型的包:协议层LinkManagementPacket(LMP),只穿过一对直接连接的端口链路两端,主要用来管理链路。TransactionPacket(TP,事务包),穿过所有直接连接主机与设备的链路,用来控制流式数据包,配置设备和集线器等任何传输类型的事务处理都用到。注意一个TransactionPacket是没有数据的。控制命令包,TP包就是一个包头DPHDataPacket(DP),穿过所有直接连接主机与设备的链路,数据包有两局部组成,一个和TP包相似的数据包头(DPH)和带有数据块加上用来确

14、保数据完整性的32位CRC的数据包DDPIsochronousTimestampPacket(ITP)。它被主机用来多点播送到所有的活动的链路上。4.4 对传输(transfer)的一般性描述:每一个发送给接收器的非同步数据包通过一个握手包ACK TP被应答同步端点不应答,非同步端点要为每个收到的数据包进行应答,以报告是否正确传输和是否要重传,但是由于超速有独立的发送与接收路径,所以发送器不必在发送下一个包之前为每次传输的数据包等待一个握手超速USB的一个特色:同时进行发送数据与接收应答,当设备检测到数据包错误时或者端点错误,没准备好等,都会通过在应答TP包中反响给主机,主机收到的应答TP包中

15、记录出错的包顺序号,于是主机从错误的那个顺序号开始重新发送包。超速保护所有的根本数据流和USB2.0定义的传输观点,包括传输类型,管道和根本数据流模式。和USB2.0的区别在这章被讨论,开始是协议层,然后是传输类型。USB2.0标准利用一系列事务处理的模式。这从本质上意味这主机是在开始下一次事务前完成这一次总线处理令牌,数据和握手。别离事务处理也坚持这相同模式,因为他们由完整的高速事务组成,类似所有其他事务在相同的模式下完成。超速通过实施发送与接受同步改善了USB2.0事务的协议。因此超速USB事务处理协议本质上是一个别离的事务处理协议,它允许在同一时间不止一个OUT总线事务处理设备可以多个和

16、至多一个IN总线事务处理主机只有一个在总线上活动。设备对事务处理的应答的命令是确定在每个端点根底上例如,如果一个端点接收三个DP包,端点必须为每一个DP包返回ACK TP告知收到DP包。USB2.0协议要在继续下一个总线事务处理之前完成整个IN或OUT事务令牌,数据和握手包连续传输,所有的来自主机的传输本质上是播送到USB2.0总线上的每一个活动设备,与之比拟起来,超速协议不进行播送任何包ITP除外,包只穿过需要到达目标接收方的链路,主机通过发送握手请求ACK TP或者发送数据OUT开始所有的事务,设备以数据或者握手来应答。假设设备没有有效的数据IN或者不能接受数据(OUT),它会以一种包NR

17、DY来应答以指示不能进行此操作。之后,当设备准备好发送或者接收数据时,它会发送一个包给主机指示它已经准备好重新进行事务处理。除此之外,超速提供将链路转变成指定的低电源状态或者退出低电源状态的能力。低电源链路状态可以在软件使能以后由软件控制或者自发的硬件控制来进入。还提供一个自动将主机与设备之间的所有链路由非活动电源状态转变成活动电源状态的机制。设备在每个端点的描述符中记录每个端点的最大包尺寸。这个尺寸只指示负载数据块长度,不包括链路层和协议层的包头DPH。超速的带宽分配相似于USB2.0。4.4.1 Data Bursting突发数据突发数据通过消除在每个基于数据包应答的等待时间提高效率即无需

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

19、大小,是通过在发送给设备的应答包中的一个域来限制。4.4.2 INtransfer输入传输:主机和设备应该延续传输类型和端点属性的约束。一个主机通过发送一个ACK确认请求包给设备IN开始请求一次传输。这个确认握手包包包含了数据包路由选择到想要的端点所需要的地址信息。主机告知设备它可以发送的数据包数量和期望来自于设备第一个包的序号0。在应答中,端点会发送正确的序列号的数据包给主机,主机发确实认包也暗中应答了之前成功收到的数据包以及请求下一个顺序号的数据包。注意:即使主机需要为每一个收到的数据包发送一个确认包,但是设备可以不需等待任何确认包就发送所需要的数据包数量。超速总线的一次IN传输由一个或多

20、个IN事务处理组成,一个IN事务处理由一个或多个包组成比方主机发送ACK TP,设备发送DP或NRDY TP或STALL。当下面的任何条件发生,都能结束IN传输:所有数据已经成功传送;设备端点发送一个短包比最大包尺寸小的包作为应答;端点响应错误。Host发送INpacket之后,设备可以持续发送多个数据包,不需要等待每个包都得到host确实认包ACK TP,因为超速是dual-simplex全双工的,但是设备收到的总的认可包数量应该和设备发送的数据包数量一样。4.4.3 OUTtransfer:主机通过发送一个突发数据包给设备开始一次OUT传输,每一个数据包的DPH包含需要路由选择目标端点的地

21、址信息,也包含数据包的顺序号作为区分不同发送顺序的数据包标号。对于一个非同步事务,设备返回一个确认包,其中包含下个要接收的数据包顺序号和隐含地应答当前数据包。注意虽然设备需要为每个收到的数据包发一个确认包,但是主机不需等待一个应答就能发送最大的突发数据包数量给设备。OUTtransfer在以下情况下时会结束:所有数据已经成功传送;Host发送了一个短包;端点响应错误。四种transfer类型:control、bulk、interrupt、isochronoustransfer。用意同USB2.0,但是bulk最大包大小增加为1024B,control端点最大包大小增加为512B。control

22、端点不支持burst,bulk可以burst116,bulk还增加了Stream能力;interrupt、isochronous可以bust116当最大突发大小为1时,对于同步传输,其最大包大小能为0-1024之间任意大小,对于中断端点,最大包大小可以在1-1024之间任意大小;如果最大突发大小为1时,最大包大小只能为1024。4.4.5 控制传输控制传输的目的与特点与USB2.0协议完全相同。这个规格的协议层章节详细描述了用于完成控制传输的包,总线事务处理和事务处理流程。设备架构那章定义了完整系列的设备使用的标准命令编码。每个设备需要启动默认控制管道作为一个消息管道。这个管道用来进行设备初始

23、化和管理,用来访问设备描述符和向设备请求对其进行操作在设备级。控制传输必须维持相同的在USB2.0中定义的请求获取描述符等命令。超速系统会制造一个最好的条件情况支持主机与设备间的控制传输。正如USB2.0,功能和客户软件不能为控制传输主动要求指定带宽不是能分配10%的带宽吗?。4.4.5.1 控制传输包大小控制端点有一个固定的最大控制传输数据包大小为512字节同时反响了端点缓存大小。还有一个最大突发大小为1控制传输不支持突发数据?。这些最大值适用于在控制传输数据阶段的所有的数据事务处理。参考8.12.2章,详细描述了超速控制传输的建立setup与数据阶段data。超速设备在设备描述符的bMax

24、PacketSize域中必须记录一个09H的值。默认控制管道的默认最大包大小的解码规那么在9.6.1章被给出2的9次方=512B。默认控制管道必须支持最大顺序值为32在0-31范围的顺序值被使用。USB2.0与超速之间,设备到主机和主机到设备的数据阶段数据传输和完成一般没有什么改变。4.4.5.2 控制传输带宽需求设备没有方法为控制管道指示想要的带宽。主机通过权衡所有控制管道总线访问需求与在那些管道上挂起事务处理来提供一个最好的情况给客户软件和功能设备之间的传输。这个规那么跟USB2.0相似。超速需要保存有效的总线带宽给控制管道作为以下使用:控制传输事务处理可能与其他被定义功能端点的事务处理一

25、同被安排控制传输的重试不能优先于其他最好情况的事务处理如果有控制传输和块传输为多个端点挂起,根据一个主机控制器相关的公平规那么,不同端点的控制传输被选择效劳。 当一个控制端点传输一个流控制事件,主时机移除来自于被安排的活动端点。一旦收到一个来自于设备准备好的通知,主时机对这个端点恢复传输。这些要求允许主机与设备间的控制传输周期性的通过有最好条件的超速总线移动数据。系统软件的任意操作行为在USB2.0 5.5.4定义。超速控制传输同样适用。4.4.5.3 控制传输数据流程超速保护消息格式和在USB2.0定义的控制传输的一般阶段流程。超速协议定义了对控制传输建立和状态阶段的相同改变。4.4.6 块

26、传输此规格的8.12.1章详细描述了用来完成块传输的包,总线事务处理和事务处理流程。块传输类型是用来支持想要跟相当大的海量数据通信设备,传输能使用任何可用的超速带宽。超速块传输功能端点提供以下:对基于有限带宽的超速总线访问保证数据的发送,但是不保证带宽和发送时间超速维持下面的块传输管道特征:对块传输管道通信流没有强制固定的数据结构块传输管道是一个流式管道,因此总是有通信流进出主机。如果应用需要一个双向块传输通信流,必须使用两个块传输管道一个OUT,一个IN。标准USB块传输管道提供移动数据流的能力。超速增加了协议级支持多倍流模式的流式概念。4.4.6.1 块传输数据包大小块传输端点应该在端点描

27、述符中设置最大数据包大小为1024字节。也要指定端点在超速总线上能够接受或发送的突发大小。可允许的块传输端点突发大小在1到16的范围。所有的超速块传输端点要支持0-31的顺序值。主机需要支持任何超速bulk传输端点和所有的bulk传输突发大小。主机要确保发送给端点的数据包的数量不能超过描述符中定义的最大包大小。此外,发送的突发数据包不能超过记录的最大突发大小。块传输功能端点发送的数据包,其数据域必须总是小于等于1024字节。如果块传输数据量超过1024,那么突发事务中所有数据包除了最后一次,都必须是1024字节大小。最后一次是剩下的缺乏1024字节的数据。块传输可以持续多个总线事务处理。块传输

28、在端点有以下情况时完成:已经准确传输完了所期待的数据传输了一个比1024字节少的数据包短包应答STALL握手包4.4.6.2 块传输带宽需求正如USB2.0,块传输功能端点没有方法为块管道指定想要的带宽。块事务处理只发生在超速总线上有可用带宽的根底上。超速提供一个最好的条件在客户软件和功能设备间传输块数据。控制传输对总线操作比块传输更有优先权对总线操作的优先级,控制传输比拟高。当有多个端点的bulk传输挂起时,主时机根据一个公平访问原那么提供事务处理的时机给每个端点,这就是主机依赖性操作。所有在系统中挂起的块传输竞争相同的有效总线时间。端点和客户软件不能为块传输假定配置一个指定的效劳率总线带宽

29、不能为块传输主动分配。总线时间被提供给客户软件,由于其他设备被插入到系统或者从系统中移除或者因为块传输被其他功能端点需要,端点能被改变。客户软件不能假定在块传输和控制传输之间的顺序,即在一些情形中,块传输能在控制传输的前面进行。主机在带有块传输端点的事务处理中能使用任何在1和记录的最大的突发大小,更高效的利用有效总线带宽。例如,可能有比有效总线带宽更多的块传输,所以主机可以每次使用事务中更小的数据突发,以提供公平效劳给所有挂起的块数据流因为块传输多,有效带宽少,所以为了能公平给所有等待的块传输时机,主时机使用事务处理中比拟小的数据突发大小,从而将有效带宽充分平均分配给所有块传输。当一个块传输端

30、点传输一次流控制事件在8.10.1章定义时,主时机从安排的活动端点中移除它,主时机基于接收到来自于设备的准备好通知恢复端点的传输。4.4.6.3 块传输数据流程块事务处理为数据可靠传输使用标准的突发序列,在8.10.2章定义。块端点通过一次适宜的控制传输SetConfiguration, SetInterface, ClearEndpointFeature被初始化成最初的发送/接受顺序号和突发大小值8.12.1.2 和8.12.1.3。同样,主机在已经成功完成了上面提到的适宜的控制传输后,配置块传输管道初始的发送/接收序列号和突发大小值。超速块管道的停止条件跟USB2.0定义的块端点一样同样有

31、副作用。从停止条件中恢复也跟USB2.0相同。块管道停止条件包括STALL握手包作为一次事务处理的应答或者由于发送错误主机事务处理的重试次数消耗完的应答。4.4.7 中断传输中断传输类型用来支持带有轮询效劳间隔需要高可靠性传输小数量数据的设备。这个规格的协议层章详细描述了与中断传输相关的包,总线事务和事务处理流程。超速中断传输类型一般提供以下方面:能保证最大的效劳间隔能保证在下一次效劳间隔中尝试重新传输在每个效劳周期中为中断端点尝试中断传输,保存一定带宽保证在每个效劳间隔尝试传输。一旦传输成功,就不尝试另外一次传输在此周期内,直到下一个轮询效劳周期到来保证每个效劳周期中尝试一次中断传输。如果端

32、点以没有准备好的通知或者一个指示不能接收任何包的ACK应答,那么主机不会在此次效劳中尝试另外一次到端点的传输,除非接收到准备好的通知。然后主机必须在收到准备好通知后的2个效劳周期内效劳端点。端点效劳周期的请求在它的端点描述符中描述。超速维持中断管道下面的特性:没有数据内容结构用于中断管道通信流中断管道是一条流式管道,因此总是单向的。4.4.7.1 中断传输包大小中断传输端点指定了超速总线上可以接受的/发送的最大数据包大小,对于支持突发次数burst size大于1的中断端点,仅仅允许的最大数据包大小为1024字节;对于突发次数等于1的中断端点,最大数据包大小能为1到1024的任何值。中断端点允

33、许的最大的突发次数是3. 所有的超速中断端点应该支持在范围0-31的顺序值。超速中断端点只用来移动带有界限效劳间隔的小数量数据。超速协议不要求中断事务处理的包为最大化大小即不要求每个数据包都为1024字节大。主机被要求支持超速中断端点,主机应该支持所有允许的中断包大小和突发大小的组合。主机要确保在一次突发事务处理中发送到端点的数据包大小不能超过端点的最大数据包大小。在突发事务处理中主机也不能发送超过端点最大突发大小的数据包数量。中断端点应该总是发送带有数据域小于等于端点最大数据包大小的包,如果中断传输有比适应端点最大数据包大小更多的信息,所有的突发事务处理的数据都要求为最大包大小,除了突发事务

34、处理的最后一个数据包,就是包含剩下的数据。中断传输可以包含多个突发事务。中断传输是在端点做以下几个完成的:已经传输了所需精确的数据量传输了比最大包尺寸小的数据包短包应答STALL握手包4.4.7.2 中断传输带宽需求周期性端点中断和同步可以被分配到超速总线可利用带宽的80%。中断管道的端点通过端点描述符指定它想要的效劳间隔,中断端点能指定一个想要的周期2(bInterval-1) x 125 s,bInterval值是在范围1到包含1616。USB系统软件会在配置期间使用这个信息,决定能被采用的连续周期。被系统提供的周期可以缩到比设备想要的还短,最短到超速定义的周期大小也是参考的总线轮询周期1

35、25s。注意总线上的错误能阻止中断事务处理在总线上的成功传输,因此超过了想要的周期。超速中断端点在每个效劳周期能提升到三个最大数据包的大小3x1024bytes。对于中断传输,主机没有方法决定端点是否在没有访问端点和请求一个中断传输下进行源/同步数据。如果一次IN中断端点没有中断数据要传输或者OUT中断端点没有充足buffer接受数据,当被主机访问的话,会以一个流控制进行应答。当有中断数据挂起防止客户软件错误通知传输完成的时候,端点应该只提供中断数据。一个数据负载为零长度的数据包是一次有效传输,可以用来进行某些操作。主机可以在轮询效劳周期中任何时刻访问一个端点。 中断端点不应该在尝试事务处理之

36、间分配固定的空间。中断端点只能假定它在轮询效劳周期会收到一次事务处理尝试。错误能阻止轮询效劳周期中的数据成功传输,主机不被要求在同一个轮询效劳周期中重新尝试事务处理,只在下一个轮询效劳周期中重试事务处理。4.4.7.3中断传输数据流程中断事务处理使用标准的突发流程进行可靠的数据传输在8.10.2)。中断端点通过适当的控制传输SetConfiguration, SetInterface, ClearEndpointFeature被初始化成初始的发送或者接收顺序号值和突发大小参考8.12.4.1和8.12.4.2。主机在完成了适宜的控制传输后成功为中断管道设置初始的发送/接收序列好和突发大小。超速

37、中断管道停止条件和USB2.0定义的中断端点一样有相同的副作用。从停止条件中恢复也跟USB2.0相同Section 5.7.5 in the Universal Serial Bus Specification, Revision 2.0.。中断管道停止条件包含STALL握手包对事务处理应答或者对由于发送错误导致主机事务处理尝试次数的消耗的应答。4.4.8 同步传输正如USB2.0一样,超速同步传输类型是用来支持想要能容忍错误,周期性的轮询效劳的传输流。超速跟USB2.0一样不发送起始帧,但是时序信息要通过同步时间戳包ITP被发送给设备。这个规格的协议层章详细描述了用来完成同步传输的包,总线事

38、务和事务处理流程。也描述了怎么样传送时序信息给设备。超速同步传输类型提供下面的:保证在超速总线上一定范围延迟尝试事务处理的带宽只要数据被提供给管道,保证通过管道的数据率同步事务处理在每个效劳周期在同步端点上被尝试。超速总线上成认的同步端点被保证它们需要的总线带宽。主机在对设备的特殊端点进行轮询效劳间隔的任何时候都能请求来自设备的数据或者发给设备数据。被要求的端点轮询效劳周期在端点描述符中被定义。超速同步传输是用来支持一个以相同平均速率产生和消耗数据的发送器/接受器。超速同步管道是一种流管道,总是单向的管道。端点描述符确定被给定的同步管道通信流是流向主机还是流出主机。如果设备需要双向的同步通信流

39、,那么要使用两个同步管道,一个输入,一个输出。无论任何时候当同步传输需要穿过非活动链接, 超速电源管理都会阻碍到同步传输。结果延迟会导致数据在效劳周期内没有到达。为防止这种情况,超速定义了PING和PING_RESPONSE机理参考8.5.7,开始一次同步传输之前,主机可以发送一个PING包给设备,设备以PING_RESPONSE包应答通知主机所有连到设备的链路在活动状态。4.4.8.1 同步传输包大小同步传输端点指定了端点在总线上能够接收/发送的最大数据包大小。对于支持突发尺寸大于1的同步端点,允许的最大数据包大小只能为1024字节;对于支持突发尺寸等于1的同步端点,最大数据包大小可为0到1

40、024之间的任何值。同步端点允许的最大突发尺寸为16.但是同步端点能在同一个效劳周期中请求3次突发事务处理。超速协议不要求同步数据包一定要为最大数据包大小,但是如果传输的数据量比最大数据包尺寸小的话,数据包不被填满。主机应该支持超速同步端点所有的同步数据包大小和突发大小。主机应该确保发送到端点的数据包量小于端点描述符中定义的最大数据包大小;还要确保突发事务处理中的数据包量不能超过端点的最大突发大小。同步端点应该总是发送数据域小于等于端点的最大数据包大小的数据包。如果同步传输对端点最大包大小有充足的信息,突发事务处理中的所有数据都要求为最大数据包大小,除非突发事务中最后一次数据包,即包含了剩下的

41、数据。同步传输能进行几次突发事务处理。4.4.8.2 同步传输带宽需求周期性端点中断和同步传输能分配到80%的有效超速总线带宽。同步管道的端点通过端点描述符指定它想要的轮询间隔。同步端点能指定想要的周期2(bInterval-1) x 125 s。bInterval的范围是1-16. 系统软件将在配置时候使用这个信息决定端点是否能被主机安排。注意总线错误能阻止同步事务在总线上的的成功进行。超速同步端点在每个效劳周期能进行3次最大突发大小为16的事务处理的数据包传输3x16x1024bytes。主时机在每个效劳周期发送数据到端点或者从端点请求数据。注意,如果端点没有同步数据发送而被主机访问请求数

42、据,那么会发送一个0长度包作为数据请求的应答。主机可以在适宜的效劳间隔的任何时刻访问端点。同步传输端点不应该尝试在事务处理之间假定一个固定空间两次事务处理间相隔的时间不固定?,同步端点只能假定它在效劳周期会收到一次事务处理的尝试。轮询效劳周期发生的错误可以阻止数据的成功传输。但是由于同步事务处理中的包没有应答,主机没有方法知道包没有成功传输,因此不会重试包传输。4.4.8.3 同步传输数据流程同步端点总是在轮询效劳周期中从包顺序号0开始发送数据包。每个在轮询效劳间隔中被依次连续发送的的数据包都带有下一个递增的顺序号。顺序号应该从0到31循环。当发送了32个包后,又从0开始发送。同步端点不支持重

43、试,不能应答流控制。4.4.9 设备告知非管道模式设备告知是一种为设备向主机进行设备级和总线级的事件通知的异步通信标准方式。这个特色没有映射到为标准传输类型定义的管道模式。设备告知总是由设备开始。数据流通知总是从设备到主机。第七章链路层7.1 字节顺序包或者链路命令中的多字节域以小端顺序通过总线传输。即先传输最低有效字节(LSB),最后传输最高有效字节MSB。Figure 7-2展示了字节顺序的例子:7.2.1 包和包帧超速使用包来传输信息。链路电源管理包、事务包、同步时间戳包和数据包的详细包格式在第8.2章定义。在协议层,头包帧是不可见的。7.2.1.1 头包结构所有头包有20符号长度,格式

44、在在Figure 7-3中. 包括有LMPs, TPs, ITPs, 和DPHs。头包由三个局部组成,一个头包帧,一个包头,一个链路控制字。7.2.1.1.1 头包帧头包帧,HPSTARTheader顺序集,是一个4个基于K标志的有序集合头包起始帧。被定义为3个连续的SHP标志后面跟着一个K-symbol的 EPF。一个头包应该总是以HPSTART序列集开始。头包帧的结构是能容忍1个符号错误的。7.2.1.1.2 包头一个包头由14个字节组成,格式如Figure 7-4所示。它包括12字节的头信息和一个2字节的CRC-16。CRC-16用来保护12字节的头信息的数据完整性。7.2.1.2 数据

45、包结构数据包是一种由数据包头DPH和一个数据负载包(DPP)组成的特别包。DPH定义在7.2.1.1.章。另外一方面,DPP由数据包帧和可变长度的数据构成,可变长度数据后面跟着CRC-32。Figure 7-8描述了DPP格式。7.2.1.2.1 数据包帧DPP帧由8个K-symbols,一个作为DPP起始帧的four-symbol 有序集和作为DPP结束帧的four-symbol有序集构成。正如Figure 7-8 所表示的,作为DPP起始帧的DPPSTART序列集,由三个连续的SDP的K-symbols和后面跟着的一个EPF的K-symbol组成。一个DPP结束帧序列集有两种不同类型。第一

46、种类型,DPPEND序列集,它是一个由三个连续的K-symbol of END和后面跟着的单个K-symbol of EPF 组成的结束帧有序集。第二种类型,DPPABORT序列集,是一个DPP未完成终止帧序列集,它由3个连续的K-symbol of EDB和后面跟着的单个K-symbol of EPF组成。DPPEND序列集是用来指示完成了的DPP的正常结束,而DPPABORT序列集用来指示一个DPP的半途终止结束。7.2.1.2.2 数据包DPP区域有0-1024字节的数据,后面跟着4字节的CRC-32。任何一个DPP包提前结束应该包含一个DPPABORT有序集。DPP应该快速无缝的跟着它

47、相对应的DPH。CRC-32略7.2.1.2.3 在数据包头DPH域数据负载包(DPP)之间的空间间隙在数据包头DPH域数据负载包(DPP)之间不应该有空间间隙,如Figure 7-10.所示:头包由共20个字节,四个字节的HPSTART序列集,14个字节的包头(PacketHeader),2个字节的链路控制字构成。HPSTART似乎是用于链路双方数据时钟恢复同步用途,类似于USB2.0时的SYNC同步序列;PacketHeader那么包含12个字节的包信息和2个字节的16位CRC;LinkControlWord为2个byte,包括3bitHeaderSequenceNumber,3bitre

48、served,3bitHubDepthIndex,1bitDelayedbit,1bitDeferredbit,和5bitCRC。在第八章将会看到,LMP,TP,ITP,DPH其实都是头包结构,只不过12byte的包信息定义了不同的格式意义。数据包构造:数据包其实是由一个数据包头(DataPacketHeader,DPH)后面无缝跟着一个数据负载包(DataPacketPayload,DPP)构成的。DPH的结构同上面的头包结构,DPP的结构如图7-8所示:DPP由四个字节的DPPSTART类似头包中的HPSTART,01024字节的数据,四个字节的32位CRC,以及四个字节的DPPEND作用

49、类似于USB2.0的EOP?在数据有异常的时候这个将是DPPABORT构成。第八章 、协议层协议层管理Host和Device间end-to-end数据流,是建立在链路层正确传输根底上的。本章详细描述:包类型;LMP,DP,TP,ITP包格式;包期待的响应;四种transaction类型;8.1超速事务处理随着向设备端点请求或者发送数据,主机开始超速事务处理。随着端点发送数据或者对接收数据应答完成事务处理。在超速总线上的一次传输是一次从设备到主机的数据请求,然后将其分解为一次或者几次突发事务处理。当超速主机在等待当前总线事务完成的时候, 它可能会开始一次或屡次OUT总线事务输出到一个或几个端点。

50、然而,超速主机不应该开始另外一次对端点的IN总线事务,直到主机:同时能进行多个OUT事务,只能进行一个IN事务收到一个DP包或者NRDY或STALL TP包或者因为当前被发送到非同步端点的ACK TP包的事务处理超时收到了所有被请求的DP包或者主机收到一个短包,或者一个最后包标志域置位的DP包,或者因为当前被发送到同步端点的ACK TP注意同步端点没有错误应答事务处理超时对于非同步传输,端点可以通过下面应答有效的事务处理:返回一个NRDY TP包在OUT事务中通过返回一个ACK TP正确应答包接收数据在IN事务中返回一个或更多数据包如果发生了内部端点错误,那么返回一个STALL TP包一个NR

51、DY TP包应答指示端点还没有准备好接受或发送数据。因此,设备端点和主机之间不应该有更多进一步操作,除非端点通知主机它准备好了。允许在设备和主机之间实现一个链路降低功耗状态,直到端点准备好接受或发送数据。当准备好时,端点异步发送一个通知ERDY TP给主机,告知它现在准备好移动数据,主机通过重新安排请求事务进行应答返回ACK TP?。注意当它们被主机进行周期性轮询效劳时,同步传输不使用ERDY和NRDY TP包。此外,发送到或者接收自同步端点的数据包不被应答同步传输不检测错误,不应答错误。也就是ACK TP包不被主机发送给同步端点来应答对数据包的接收。如果同步端点不能发送给主机要求的数据那么发

52、送一个长度为0的数据包端点只对主机的要求做应答。主机是负责在总线上安排事务处理,保证数据传输的正确与公平,这通过IN和OUT请求的命令和时序来实现。事务处理不是播送的USB2.0是播送,在主机和设备间的包传输是有一条直接路径。任何没有使用的链路都会进入降低功耗状态,使得总线遵从强制的电源管理。8.2 包类型:LMP,TP,DP,ITP四种。所有的包有一个14字节的头,结尾跟着一个2字节的链路控制字组成16byte。所有的包头都有两个需要被接收方使用的公共域版本与类型,用来决定怎样处理包,所有的包头包含一个2字节CRC-16。包头有一个不可改变的错误率,它为1012个位中不能出现一个错误。所有的

53、设备包括集线器和主机使用他们收到的LMP包。集线器额外负责将DP,ITP,TP传递到连接设备的下游端口和连接主机的上游端口。注意ITP只能被主机发送和被设备接收播送。LMP所有的包都被集线器传递出去,除非包是路由选择集线器它自己。传递ITP包额外的规那么在8.7被描述。注意TP,ITP,或者DPH中的链路控制字比方DF域在被传递出去之前可以被集线器更改。链路控制字的域在8.3.1.2被描述。如果Type域的值是TP或者DPH,路由信息字符和设备地址域就跟在Type域后。路由信息是被集线器用来路由选择上游端口的包传递到正确的下游端口。从设备到主机的包组成的流总是从集线器的下游端口通过路由选择传到

54、上游端口。设备地址域被提供给主机用来验证一个包的源头。所有的其他域在这章会被描述。数据包的头部包含了用来描述数据块的额外信息。数据块DPP总是被跟着一个4字节CRC-32用来判定数据的正确性。数据块和CRC-32一同组成了数据负载包DPP.8.3 包格式这个区域定义了超速包。它定义了组成各种包类型和子类型的区域。这个区域的包类型和位定义以未编码数据格式呈现。添加到串流上的符号有影响即帧包,控制或修改链路,像位编码,链路层帧,为了精简讲述,已经被移除了它们对协议层是不可见的。详细参考6,7章信息。在总线操作,效率或者时序讨论到的地方,会描述那些底层操作对提供额外内容的影响。8.3.1 所有头的公

55、共区域所有超速头以类型域开始用来决定怎样处理包。在顶层这个告诉包接收方怎样处理包:是使用它(DP)或者是管理链路(LMP)或移动和控制设备和主机间的数据流TP。8.3.1.1 保存值和保存区域处理保存区域和保存值不应该用在一个商家指定操作中。发送器应该设置所有保存域为0,接收器应该忽略任何保存值。发送器不应该设置已定义域为保存值,接收器应该忽略任何在定义域上设置保存值的包。注意,接收器应该应答包,返回credit作为每一个在7.2.4.1章指定的要求。8.3.1.2 类型域类型域是一个5位区域,用来确认包格式。类型用来决定怎样使用包或被中间链路传送。8.4 链路管理包LMPLMP是指类型域被设

56、置为链路管理包的包。这些包用来管理单个链路,它们没有带有寻址信息和路由信息。可以是由集线器端口命令产生。例如,集线器端口命令用来设置U2非活动超时。除此之外,它们用来交换端口属性信息和测试目的。格式如图8-4所示:可以看到,结构上就是第七章中的头包结构(从协议层角度看包格式,屏蔽了HPSTART序列以及8b/10b转换码等物理层的特性)。Type是5bit,所有类型的包都有的,其意义为:00000:LMP00100:TP01000:DP01100:ITP所以LMP类型包,Type总是00000。8.4.1 子类型域SubType为4bit,表示了是何种类型的LMP:0000:reserved0

57、001:SetLinkFunction0010:U2InactivityTimeout0011:VendorDeviceTest0100:PortCapability0101:PortConfiguration0110:PortConfigurationResponse01111111:reservedSubTypeSpecific那么是根据不同的SubType有不同的含义。标准对每种LMP意义和格式做了详细解释。8.4.2 SetLinkFunction设置链路功能设置链路功能LMP应该用来配置没有停留在活动U0状态中能被改变的功能。在接收到带Force_LinkPM_Accept位声称的L

58、MP时,端口应该接受所有的LGO_U1和LGO_U2链路命令,除非端口收到一个带有Force_LinkPM_Accept位撤销声称的LMP。注意:Force_LinkPM_Accept功能不正确的使用会严重影响链路的使用性能。这个性能应该只用来进行符合性测试目的。软件必须确保发送SetPortFeature命令产生LGO_U1 or LGO_U2链路命令之前,链路层没有等待的包。当集线器收到一条SetPortFeature(FORCE_LINKPM_ACCEPT)命令时,这个LMP被 10.4.2.2 和 详细描述了。Set Link FunctionSubtype-4位宽度,DW0:bit5

59、,这个域应该为一个Set Link Function的LMP包被置位。Set Link Function-7位宽度,DW0:bit9,这7个位识别Set Link Function.具体的命令BitsDescription0Reserved1Force_LinkPM_Accept值意义0撤销声称不起作用1命令声称起作用6:2Reserved8.4.3 U2非活动超时U2 Inactivity Timeout 如果U1 Inactivity Timeout已经不使能了,U2 Inactivity Timeout LMP应被用来定义从U1转到U2时的超时时间,或者从U0转到U2的超时时间。具体细节

60、见Section 10.4.2.1。8.4.4 商家设备测试Vendor Device Test 使用这种LMP是为了商家指定的设备测试,不应该在正常操作链路下使用:8.4.5 端口属性Port Capabilities 端口属性LMP描述了每个端口链路属性,它在成功完成了链路训练和初始化之后被两个链路伙伴互相发送。所有端口应该在完成了链路初始化之后,在tPortConfiguration时间内发送这个LMP。如果一个链路伙伴在 tPortConfiguration 时间内没接收到这种LMP,那么:如果链路伙伴有下游属性,它应该发送一个在Section10.14.2.6中描述的错误如果链路伙伴

61、只支持上游属性,那么上游端口应该转变成SS.Disabled,它应该尝试用这个设备支持的其他速度连接。Tiebreaker:只有当Direction 域的bit0和bit1都置位时,此域值才有效。此域值用来决定都可配置为上游和下游端口的两个设备哪个作为上游,哪个作为下游端口。在其他情况,此域值为0.在交换端口属性LMPs以后,链路伙伴应该决定哪个链路伙伴应该被配置成在Table 8-8.中指定的下游端点;注意:如果TieBreaker域内容相等,那么两个链路伙伴应该再次以新的不同TieBreaker域值交换端口属性LMPs。TieBreaker域值序列被端口随机产生。当TieBreake值不相

62、同时,较高值1的端口为下游端口;较低值0的端口为上游端口。8.4.6 端口配置由下游端口发送给上游端口只与Port Capability LMP不同的域被描述所有支持下游端口属性的超速端口应该能发送这种LMP如果要在上游模式中被配置的端口在链路初始化后PortConfiguration时间内没接收到这种LMP,那么上游端口应该转变成SS.Disabled,它应该尝试在这个设备支持的其他速度下连接。在下游模式下被配置的端口应该发送端口配置LMP给上游端口。发送这种LMP的端口应该为链路速度域只选择一位。如果一个下游属性端口不能和它的链路伙伴工作,那么下游属性端口应该发送一个在Section 10.14.2.6描述的错误信号。8.4.7 端口配置应答由上游端口发送给下游端口作为端口配置的应答这种LMP被上游端口发送作为一个端口配置的应答。它被用来指示端口配置LMP的

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!