USB通信协议——数据交易
表 传输类型、数据交易与封包的关系表
*每一个封包是往下端接口传递出去的,若是低速,前面还会再放置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封包类型与其所包含的字段来谈起。
- Linux系统下USB摄像头驱动程序开发(04-25)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)