文档介绍:USB通信协议——数据交易
表列出了组成4种传输类型的元素。在这里,读者就需要注意一些通信协议的结构。例如,传输与数据交易、数据交易与封包、封包与字段之间的关系。当然,这是相当复杂且容易弄混淆的地方。其中,传输包含1个或是更多的数据交易,每一个数据交易又包含1个、2个或是3个封包。而封包中,又包含封包标识符(PID)字段、检查字段(CRC)以及额外的信息字段。
表传输类型、数据交易与封包的关系表
*每一个封包是往下端接口传递出去的,若是低速,前面还会再放置PRE封包。
因此,若要了解完整的USB通信协议就必须从数据域谈起。通过由下而上,从简易至复杂的通信协议单位来组合出各种复杂的通信协议,进而构建出完整的通信协议。
从表的第2栏中,可以知道其中包含了3种数据交易类型。这3种数据交易是根据其目的与数据流方向来决定的。其中,SETUP数据交易用来送出控制传输要求给设备;IN数据交易是数据从设各传回主机;OUT数据交易是将数据传送出去给设各。每一个数据交易中,包含了辨识、错误检核、状态以及控制信息,同样也包含了要交换的数据等。此外,一个完整的数据交易可能占用多个帧。但是数据交易却是一个实现USB通信协议的最基本的结构组成。也即是,在总线上没有任何通信能够去切断该数据交易的沟通过程。当然,除非是错误的USB通信过程。
此外,一个小量数据的传输也许仅需一个数据交易。如果是大量的数据,传输可能就需使用多个数据交易,每一次传输一部分数据。读者或许会认为表的通信协议的结构非常复杂。其中,尤其是第1栏所列的控制传输是较为严谨与必须去实现的。
根据上述不同封包的组合与搭配就可以执行各种数据交易。但最重要的是,数据交易的格式必须与前面所提及的4种传输类型互相配合。这是因为不同的传输类型就会执行不同的数据交易。其中,除了等时传输外,控制传输、中断传输与批量传输都以下列的3个阶段来组成一个数据交易的动作。
等时传输却只有包含如下所列的2个阶段而已。若等时传输在传输的过程中发生错误,不会重送一次,所以也就不具有握手阶段。
因此,为了方便读者的记忆与了解整个USB的通信协议,在此以一个较简易的方式来向读者介绍。即是通过一个小口诀来介绍USB通信概念。这个口诀即是:5 4 2 3 3,如图所示。
图 USB通信协议的简易口诀
这个口诀相当简单,有点像是通关秘诀,而整个数字的顺序即可串联出USB的通信协议。5,4,2即分别为每个封包(令牌、数据与握手)的字段数目,其后的3则为实现一个数据交易所需的3个封包阶段(令牌、数据与握手),而最后的3则为实现一个控制传输所需的3个数据交易层。读者可以对照表,且只须以这个简易的数字顺序,从下层到上层,即可构建出一个完整的控制传输。而以下,先从USB封包类型与其所包含的字段来谈起。
欢迎转载,信息来源维库电子市场网()
由于USB最初在设计时,即是为了能够针对具备如传输率、响应时间以及错误帧错等特性的许多不同的外围类型来加以考虑的。而其中,4种数据传输的每一个能够掌握不同的需求。在此,根据不同外围设各的类型与应用,定义了4种传输类型,分别是控制传输(control transfer)、中断传输(interrupt transfer)、批量传输(bulk transfer)以及等时传输(isochronous transfer)。其中,需要特别注意的是低速设各仅支持控制传输与中断传输。
控制传输是USB传输中最重要的传输类型,只有正确执行完控制传输,才能进一步执行其他的传输类型。这种传输是用来提供给介于主机与设各之间的配置、命令或状态的通信协议之用的。控制传输能够使能主机去读取与此设各相关的信号,并去设置设备地址,以及选择配置与其他的设置等。此外,控制传输也能够送出自定义的要求,以针对任何目的送出与接收数据。因此须以双向传输来达到这个要求。当然,所有的USB设各必须支持控制传输。
中断传输原本属于单向传输,并且仅从设各输人到PC主机,作IN的传送模式(,已改为双向传输,增加了OUT的传送模式)。这是由于最早在开发USB外围设备时,先以人工接口设各为设计考虑,其数据只须做输入IN传输,如鼠标或键盘等设备。而由于USB不支持硬件的中断,所以必须靠PC主机以周期性的方式加以查询,以便获知是否有设各需要传送数据给PC。如果因为错误而发生传送失败的话,可以在下一个查询的期间重新再传送一次。
批量传输属于单向或双向的传输。顾名思义,这类型的传输用来传送大量的数据。这些大量的数据必须准确地加以传输,但相对的却无传输速度上的限制(即没有固定传输的速率)。例如,送出一个文件给打印机,或是从扫描机扫描一张图片,并传送至PC主机上。这是由于批量传输是针对未使用到U