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 ...