USB 通信协议——数据交易 表列出了组成 4 种传输类型的元素
在这里,读者就需要注意一些通信协议的结构
例如,传输与数据交易、数据交易与封包、封包与字段之间的关系
当然,这是相当复杂且容易弄混淆的地方
其中,传输包含 1 个或是更多的数据交易,每一个数据交易又包含 1 个、2 个或是 3 个封包
而封包中,又包含封包标识符(PID)字段、检查字段(CRC)以及额外的信息字段
表 传输类型、数据交易与封包的关系表 *每一个封包是往下端接口传递出去的,若是低速,前面还会再放置 PRE 封包
因此,若要了解完整的USB 通信协议就必须从数据域谈起
通过由下而上,从简易至复杂的通信协议单位来组合出各种复杂的通信协议,进而构建出完整的通信协议
从表的第2 栏中,可以知道其中包含了3 种数据交易类型
这3 种数据交易是根据其目的与数据流方向来决定的
其中,SETUP 数据交易用来送出控制传输要求给设备;IN 数据交易是数据从设备传回主机;OUT 数据交易是将数据传送出去给设备
每一个数据交易中,包含了辨识、错误检核、状态以及控制信息,同样也包含了要交换的数据等
此外,一个完整的数据交易可能占用多个帧
但是数据交易却是一个实现USB 通信协议的最基本的结构组成
也即是,在总线上没有任何通信能够去切断该数据交易的沟通过程
当然,除非是错误的USB 通信过程
此外,一个小量数据的传输也许仅需一个数据交易
如果是大量的数据,传输可能就需使用多个数据交易,每一次传输一部分数据
读者或许会认为表的通信协议的结构非常复杂
其中,尤其是第1 栏所列的控制传输是较为严谨与必须去实现的
根据上述不同封包的组合与搭配就可以执行各种数据交易
但最重要的是,数据交易的格式必须与前面所提及的4 种传输类型互相配合
这是因为不同的传输类型就会执行不同的数据交易
其中,除了等时传输外,控制传输、中断传输