. .
. v .
USB事务处理是主机和设备之间数据传输的根本单位,由一系列具有特定格式的信息包组成。因此,要了解完整的USB通信协议,必须从USB的信息传输单元包及其数据域谈起。通过由下而上,从简单至复杂的通信协议单位组成各种复杂的通信协议,进而构建出完整的通信协议。
包
包〔Packet〕是USB系统XX息传输的根本单元,所有数据都是经过打包后在总线上传输的。首先了解一下包的组成。
USB包由五局部组成,即同步〔SYNC〕字段、包标识符〔PID〕字段、数据字段、循环冗余校验〔CRC〕字段和包结尾〔EOP〕字段,包的根本格式如下:
同步字段〔SYNC〕 PID字段 数据字段 CRC字段 包结尾字段〔EOP〕
在USB的数据传输中,所有的传输包都起始于SYNC,接着是PID,后面是包中所包含的数据信息,接下来是用来检测包中数据错误的循环冗余校验信息,最后以包结尾作为完毕标志。下面我们将一一介绍每个字段。
1.同步〔SYNC〕字段
SYNC字段由8位组成,作为每个数据信息包的前导。顾名思义,它是用来产生同步作用的,目的是使USB设备与总线的包传输率同步,它的数值固定为00000001。
2.包标识符〔PID〕字段
PID字段是紧随在SYNC字段后面,用来表示数据信息包的类型。在USB协议中,根据PID的不同,USB包有着不同的类型,分别表示具有特定的意义。如下所示:
PID0 PID1 PID2 PID3
包标识符长度为一个字节〔8个数据位〕,由4个位的包类型字段和4个位的校验字段构成。PID是USB包类型的唯一标志,USB主机和USB设备在接收到包后,必须首先对包标识符解码得到包的类型,并判断其意义从而做出下一个反响。包标识符中的校验字段是通过对类型字段的每个位求反码产生的,它是用来对包类型字段进展错误检测用的,旨在保证对包的标识符译码的可靠性,如果4个检验位不是它们各自的类型位的反码,那么说明标识符中的信息有错误。
表16-2中列出了信息包的类型,包括令牌、数据、握手或特殊四种信息包类型。为简化对USB的认识,有关高速传输的局部没有在表中列出。
3.数据字段
在USB包中,数据字段是用来携带主机与设备之间要传递的信息,其内容和长度根据包标识符、传输类型的不同而各不一样。并非所有的USB包都必须有数据字段,例如握手包、专用包和SOF令牌包就没有数据字段。在USB包中,数据字段可以包含设备地址、端点号、帧序列号以及数据等内容。在总线传输中,总是首先传输字节的最低位,最后传输字节的最高位。
. .
. v .
(1) 设备地址〔ADDR〕数据域
ADDR数据域由7位组成,可用来寻址多达127个外围设备。
usb的hid通信协议 来自淘豆网m.daumloan.com转载请标明出处.