数据请求的应答。
主机可以在合适的服务间隔的任何时刻访问端点。同步传输端点不应该尝试在事务处理之间假定一个固定空间(两次事务处理间相隔的时间不固定?),同步端点只能假定它在服务周期会收到一次事务处理的尝试。轮询服务周期发生的错误可以阻止数据的成功传输。但是由于同步事务处理中的包没有应答,主机没有方法知道包没有成功传输,因此不会重试包传输。
4.4.8.3 同步传输数据流程
同步端点总是在轮询服务周期中从包顺序号0开始发送数据包。每个在轮询服务间隔中被依次连续发送的的数据包都带有下一个递增的顺序号。顺序号应该从0到31循环。当发送了32个包后,又从0开始发送。同步端点不支持重试,不能应答流控制。
4.4.9 设备告知(非管道模式)
设备告知是一种为设备向主机进行设备级和总线级的事件通知的异步通信标准方式。这个特色没有映射到为标准传输类型定义的管道模式。设备告知总是由设备开始。数据流通知总是从设备到主机。
第七章 链路层
7.1 字节顺序
包或者链路命令中的多字节域以小端顺序通过总线传输。即先传输最低有效字节(LSB),最后传输最高有效字节(MSB)。Figure 7-2展示了字节顺序的例子:
13
7.2.1 包和包帧
超速使用包来传输信息。链路电源管理包、事务包、同步时间戳包和数据包的详细包格式在第8.2章定义。在协议层,头包帧是不可见的。
7.2.1.1 头包结构
所有头包有20符号长度,格式在在Figure 7-3中. 包括有LMPs, TPs, ITPs, 和DPHs。头包由三个部分组成,一个头包帧,一个包头,一个链路控制字。
7.2.1.1.1 头包帧 头包帧,HPSTART(header)顺序集,是一个4个基于K标志的有序集合头包起始帧。
14
被定义为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 数据包结构
数据包是一种由数据包头(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结束帧序列集有两种不同类型。第一种类型,DPPEND序列集,它是一个由三个连续的K-symbol of END和后面跟着的单个K-symbol of EPF 组成的结束帧有序集。第二种类型,DPPABORT序列集,是一个DPP(未完成)终止帧序列集,它由3个连续的K-symbol of EDB和后面跟着的单个K-symbol of EPF组成。DPPEND序列集是用来指示完成了的DPP的正常结束,而DPPABORT序列集用来指示一个DPP的半途终止结束。
15
7.2.1.2.2 数据包
DPP区域有0-1024字节的数据,后面跟着4字节的CRC-32。任何一个DPP包提前结束应该包含一个DPPABORT有序集。DPP应该快速无缝的跟着它相对应的DPH。
CRC-32略
7.2.1.2.3 在数据包头(DPH)域数据负载包(DPP)之间的空间间隙
在数据包头(DPH)域数据负载包(DPP)之间不应该有空间间隙,如Figure 7-10.所示:
头包由共20个字节,四个字节的HPSTART序列集,14个字节的包头(Packet Header),2个字节的链路控制字构成。HPSTART似乎是用于链路双方数据时钟恢复同步用途,类似于USB2.0时的SYNC(同步序列);Packet Header则包含12个字节的包信息和2个字节的16位CRC;Link Control Word为2个byte,包括3 bit Header Sequence Number,3 bit reserved,3 bit Hub Depth Index,1 bit Delayed bit,1 bit Deferred bit,和5bit CRC。在第八章将会看到,LMP,TP,ITP,DPH其实都是头包结构,只不过12byte的包信息定义了不同的格式意义。
数据包构造:
数据包其实是由一个数据包头(Data Packet Header,DPH)后面无缝跟着一个数据负载包(Data Packet Payload,DPP)构成的。DPH的结构同上面的头包结构,DPP的结构如图7-8所示:
DPP由四个字节的DPPSTART(类似头包中的HPSTART),0~1024字节的数据,四个字节的32位CRC,以及四个字节的DPPEND(作用类似于USB2.0的EOP?在数据有异常的时候这个将是DPPABORT)构成。
16