hid设备usb通讯协议数据剖析实验.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hid设备usb通讯协议数据剖析实验 篇一:USB的HID通信协议 USB事务处理是主机和设备之间数据传输的基本单位,由一系列具有特定格式的信息包组成。因此,要了解完整的USB通信协议,必须从USB的信息传输单元包及其数据域谈起。通过由下而上,从简单至复杂的通信协议单位组成各种复杂的通信协议,进而构建出完整的通信协议。 16.4.1 包 包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。首先了解一下包的组成。 USB包由五部分组成,即同步(SYNC)字段、包标识符(PID)字段、数据字段、循环冗余校验(CRC)字段和包结尾(EOP)字段,包的基本格式如下: 同步字段(SYNC) PID字段 数据字段 CRC字段 包结尾字段(EOP) 在USB的数据传输中,所有的传输包都起始于SYNC,接着是PID,后面是包中所包含的数据信息,接下来是用来检测包中数据错误的循环冗余校验信息,最后以包结尾作为结束标志。下面我们将一一介绍每个字段。 1.同步(SYNC)字段 SYNC字段由8位组成,作为每个数据信息包的前导。顾名思义,它是用来产生同步作用的,目的是使USB设备与总线的包传输率同步,它的数值固定 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包中,数据字段可以包含设备地址、端点号、帧序列号以及数据等内容。在总线传输中,总是首先传输字节的最低位,最后传输字节的最高位。 (1) 设备地址(ADDR)数据域 ADDR数据域由7位组成,可用来寻址多达127个外围设备。 (2) 端点(ENDP)数据域 ENDP数据域由4位组成。通过这4个位最多可寻址出32个端点。这个ENDP数据域仅用 在IN、OUT与SETUP令牌信息包中。对于慢速设备可支持端点0以及端点1作为中断传输模式,而全速设备则可以拥有16个输入端点(IN)与16个输出端点(OUT)共32个端点。 (3) 帧序列号 当USB令牌包的PID为SOF时,其数据字段必须为11位的帧序列号。帧序列号由主机产生,且每个数据帧自动加一,最大数值为0x7FF。当帧序列号达到最大数时将自动从0开始循环。 (4) 数据 它仅存于DATA信息包内,根据不同的传输类型,拥有不同的字节大小,从0到1023字节(实时传输)。 4.循环冗余校验(CRC)字段 根据不同的信息包类型,CRC数据域由不同数目的位所组成。其中重要的数据信息包采用CRC16的数据域(16个位),而其余的信息包类型则采用CRC5的数据域(5个位)。其中的循环冗余码校验CRC,是一种错误检测技术。由于数据在传输时,有时候会发生错误,因此CRC可根据数据算出一个校验值,然后依此判断数据的正确性。 5.包结尾(EOP)字段 包的发送方在包的结尾发出包结尾信号。它表现为差分线路的两根数据线保持2比特低位时间和1比特空闲位时间。US B主机根据EOP判断数据包的结束。 16.4.2 信息包格式 根据信息包所实现的功能,其可以分为3种类型:令牌包、数据包和握手包。其中,令牌包定义了数据传输的类型,数据包中含有需要传输的数据,握手包指明了数据接收是否成功。 1.令牌(token)包 在USB系统中,只有主机才能发出令牌包。令牌包定义了数据传输的类型,它是事务处理的第一阶段。令牌包格式如下: 8位 8位 7位 4位 5位 SYNC PID ADDR ENDP CRC5 令牌包中较为重要的是SETUP、IN和OUT这三个令牌包。它们用来在根集线器和设备端点之间建立数据传

文档评论(0)

精品文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档