USB协议.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
USB协议

USB Protocol 域: 域由数字串构成,USB数据最小的单位,由若干位组成至于是多少位由具体的域决定同步域(SYNC),八位,值固定为0000 0001,用于本地时钟与输入同步标识域(PID),由四位标识符+四位标识符反码构成,表明包的类型和格式地址域(ADDR):七位地址,代表了设备在主机上的地址端点域(ENDP),四位,由此可知一个USB设备有的端点数量最大为16个帧号域(FRAM),11每一帧都有一个特定的帧号,帧号域最大容量800数据域(DATA):0~1023,不同传输类型数据域长度各不相同校验域(CRC):对令牌包和数据包中非PID域进行校验USB的标识码有16种 在USB1.1规范里面只用了十种标识码,USB2.0使用了十六种标识码,数据包的类型分为令牌包、数据、握手包和特殊包四种0x01?? 输出(OUT) 0x09?? 输入 (IN) 0x05?? 帧起始(SOF) 0x0d?? 设置(SETUP)0x03?? 偶数据包DATA0) \ 0x0b?? 奇数据包DATA1) |----\数据包 0x07 高速高带宽microframe同步(DATA2) |----/数据包 0x0f MDATA / 0x02?? 确认接收到无误的数据包ACK) \ 0x0a?? 无效, 0x0e?? 错误,地址000 0000被命名为零地址,是任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址,一个USB主机只能接127个设备。由域构成的包有四种类型,分别是令牌包、数据包、握手包和特殊包SYNC+PID+ADDR+ENDP+CRC5(五位的校验码)SYNC+PID+ADDR+ENDP+CRC5 |---\令牌包 3、(SOF) SYNC+PID+11位FRAM+CRC5SYNC+PID+ADDR+ENDP+CRC5 / 数据包: 数据包分为DATA0包和DATA1包,当USB发送数据的时候,当一次发送的数据长度大于相应端点的容量时,就需要把数据包分为好几个包,分批发送,DATA0包和DATA1包交替发送,即如果第一个数据包是DATA0,那第二个数据包就是DATA1在同步传输中,所有的数据包都是为DATA0SYNC+PID+0~1023字节+CRC16SYNC+PID+0~1023字节+CRC16SYNC+PID 8、SYNC+PID 9、SYNC+PID 10、无 11、无 12、无 事务: 事务分别有IN事务、OUT事务和SETUP事务每一种事务都由令牌包、数据包、握手包三个阶段构成,阶段的发送是有一定的时间先后顺序的启动一个输入、输出或设置的事务按输入、输出发送相应的数据返回数据接收情况,同步传输的IN和OUT事务中没有这个阶段设备端点正常,设备往入主机里面发出数据包(DATA0与DATA1交替)设备正在忙,无法往主机发出数据包就发送NAK无效包,IN事务提前结束,到了下一个IN事务才继续相应设备端点被禁止,发送错误包STALL包,事务也就提前结束了,总线进入空闲状态正确接收到数据之后就会向发送ACK包设备端点接收正确,设备往主机返回ACK,通知主机可以发送新的数据设备正在忙,无法往主机发出数据包就发送NAK无效包,通知主机再次发送数据相应设备端点被禁止,发送错误包STALL包,事务提前结束,总线直接进入空闲状态主机设备送数据,这里只有一个固定为8的DATA0包,这8的内容就是标准的USB设备请求命令设备接收到主机的命令信息后,返回ACK,此后总线进入空闲状态,并准备下一个传输(在SETUP事务后通常是一个IN或OUT事务构成的传输)标准的USB设备请求命令是用在控制传输中的的数据包阶段(即DATA0,由八个字节构成)。标准USB设备请求命令共有11个,大小都是8个字节,具有相同的结构,由5个字段构成(注这里的字段和域的本质都是一样的,都是由二进制串构成的,这是为了将命令和包区分开来),结构如下 bmRequestType(1)+bRequest(1)+wValue(2)+wIndex(2)+wLength(2)括号中的数字表示字节数,首字母bm,b,w分别表示位图、字节,双字节 各字段的意义如下: 1、bmRequestType:D7D 6D5D 4D3D2D1D0---------- / | \ =0主机到设备=00标

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档