读这篇文章时要对usb有一定的了解,知道什么是主机,设备-read.docVIP

读这篇文章时要对usb有一定的了解,知道什么是主机,设备-read.doc

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

USB是怎么传输数据的,怎么识别设备的 Dodo 原创于2008.6.15 读这篇文章之前要对USB有一定的了解,知道什么是主机,设备,USB是一个主从结构的接口。 先说说USB主机 是怎么识别一个U盘的吧,当你把一个U盘插到电脑上的时候,电脑的USB接口上会发生一些变化,这里先得说说USB数据线是怎样的,它里面一般有用的有四根线,ground,VCC,DM(D-),DP(D+),而DM,DP是用来传输数据的,当U盘(以后简称U)插到电脑上的时候,U会把DP(D+)拉高,使DP,DM保持一个J状态(DP为高DM为低,有关总线的状态又有很多,想了解的自己去研究),电脑主板的USB主机芯片检测到这个J状态(DP(D+)拉高),(大概是这样,愿意详细了解的要仔细看协议),知道有设备连接上了(这里提到的主机和设备是指连接在USB线两端的USB接口芯片),电脑的驱动会对连接上的这个设备进行识别,我们把它叫做列举,这个过程是为了让电脑知道连接上的这个设备是什么东西(是U盘,还是USB鼠标,还是USB键盘,或是其他的什么)。 以下是一个U盘的全部列举过程,用图来说明,(有两个附件,一个USB分析仪软件,一个是U盘的的全部列举过程(部分),用USB分析仪软件打开) 在这之前先说说USB数据是怎么在DM,DP上传输的吧,当主机检测到有设备连接上,驱动先会对这个设备作些必备的事情,识别他的速度(这个过程又有很多协议,不多说了,要了解的仔细研究协议),然后就是复位等等,之后就开始在总线(DM,DP)上发送1ms间隔的SOF包(全速)或125us间隔的SOF包(高速),低速(我也不太清楚,呵呵),什么是SOF包呢,SOF 就是start of frame (帧开始),其实就是帧开始的一个标记,其中有帧号,什么是帧呢,帧就是1ms的间隔(全速)或125us的间隔(高速),所有的数据都是在帧内传输的。 USB数据都是以包的形式发出的,包都有固定的格式,它以一个sync(同步)开始,以一个eop(end of packet,包结束)结束,sof 包也是一样的,高速的sync,eop和全速的sync,eop不同。 下面是包的结构图, 从左到右依次是sync场,pid场,。。。。。。当然PID后面是什么,还有没有数据要看具体发什么包了。后面的令牌包,帧开始包,数据包,握手包决定了PID 后面是什么,握手包的PID后面什么都没有,直接是EOP。 不得不说的是pid(packet ID 包的ID),就是说明这个包是什么包,包的类型有四种:令牌包,数据包,握手包,特殊包。不同类型的包又有不同的格式,每种类型又有不同的PID: PID 类型 PID 名 PID[3:0] 描述 令牌 (Token) 输出(OUT) 输入(IN) 帧开始(SOF) 建立(SETUP) 0001B 1001B 0101B 1101B 在主机到功能部件的事务中有地址+端口号 在功能部件到主机的事务中有地址+端口号 帧开始标记和帧号 在主机到功能部件建立一个控制管道的事务中有地址+端口号 数据 (DATA) 数据0(DATA0) 数据1(DATA1) 0011B 1011B 偶数据包PID 奇数据包PID 握手(Handshake) 确认(ACK) 不确认(NAK) 停止(STALL) 0010B 1010B 1110B 接收器收到无措数据包; 接收设备部不能接收数据,或发送设备不能发送数据; 端口挂起,或一个控制管道请求不被支持。 专用 (Special) 前同步(PRE) 1100B 主机发送的前同步字。打开到低速设备的下行总线通信。 附一份中文的(不全)。 下面是各个包的格式: 令牌包 图8-5显示了标记包的字段格式。标记由PID,ADDR和ENDP构成,其中PID指定了包是输入,输出还是建立类型。对于输出和建立事务,地址和端口字段唯一地确定了接下来将收到数据包的端口。对于输入事务的,这些字段唯一地确定了哪个端口应该传送数据包。只有主机能发出标记包。输入PID定义了从功能部件到主机的数据事务。输出和建立PID定义了从主机到功能部件的数据事务。 图8-5 标记包格式 如上图所示,标记包包括了覆盖地址和端口字段的5位CRC。CRC并不覆盖PID,因为它有自己的校验字段。标记和帧开始(SOF)包是由3个字节的包字段数据后面的包结束(EOP,End of Packet)界定的。如果包被译码为合法标记或SOF,但却没有在3个字节之后以EOP终止,则它被认为是无效的,并被接收器忽略。 帧开始(SOF,Start-of-Frame)包 主机以每1.00 m

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档