USB通信相关知识.docVIP

  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通信相关知识

端点状态USB设备与主机的通信可以通过对USB端点状态的控制来完成。USB设备端点可以定义3个不同状态:空闲(Idle)状态、停止(Halt)状态和读/写(W/R)状态。USB硬件抽象层提供USB_ConfigureEndpoint、USB_Write、USB_Read、USB_EndOfTransfer、USB_Stall、USB_HaIt和USB_ClearHalt七个功能函数对设备的状态进行管理,端点的状态转换过程如图4所示。 USB_ConfiguIreEndpoint负责配置端点的最大包长度和传输方向,并将端点状态设置为空闲状态。端点进入空闲状态,如果上层调用USB_Write进行数据发送,将发送缓冲区指向要发送的数据,设置端点状态为写状态,等待USB主机接收数据(真正的数据传输在中断服务程序中进行)。写完成后,端点回到空闲状态。数据接收与发送类似。如果设备出现某种错误,主机会向设备发送Set_Feature命令,设备接收到Set_Feature命令,执行USB_Halt进入停止状态。端点处于停止状态时,如果接收到Clear_Feature,则执行USB—ClearHalt清除Halt标志,进入Idle状态如果USB设备由于某种原因无法对当前命令进行处理(如不能识别命令,或者没有准备好进行数据传输),则执行USB_Stall通知主机发生错误,但端点的状态不变。还没有提供,这时其处于连接状态。 2、上电状态(Powered) 当USB设备已连接至某集线器的下行端口,且已得到USB总线电源,但它还没有被复位时,其将处于上电状态,这时还不能对任何USB事物处理做出响应。尽管自供电设备至连接至某集线器的下行端口前就可能已经上电了,但这时对USB来说,其仍处于连接状态,且只有至该集线器的电源建立时间过后(不管USB设备是否使用这个,其建立时间总是有的),USB才会认为其处于上电状态。 3、缺省状态(Default) USB设备会响应集线器下行端口发出的复位信号,并进行复位操作。在复位结束后,USB设备将进入缺省状态,这时其可从USB总线上获取小于100mA的电流,并可使用缺省设备地址来对某些USB事物处理做出响应。 在USB设备复位操作完毕后,它将采用正确的传输速率(低速/全速)和主机进行通信。低速/全速传输速率的检测是通过USB设备连接在D--/D+线上的上拉电阻实现的。 4、地址状态(Address) 在USB设备复位结束后,主机会为其分配一个唯一的设备地址,当它还没有被配置时,其将处于地址状态。在这之后,USB设备将不再使用缺省设备地址,而是使用这个新的地址来响应主机发出的事务处理。即使当USB设备处于挂起状态,它仍会保持该唯一的设备地址不变。 5、配置状态(Configured) USB设备在使用前必须被配置,即正确处理主机发出的SetConfiguration(x)请求(x代表非0的配置)。在配置操作完成后,USB设备将处于配置状态,这时客户软件可以和其功能单元进行数据传输,并为主机提供额外的功能。配置操作将使USB设备中与该配置有关的所有寄存器都返回至缺省状态,如块端点的数据触发位被置为0值。 6、挂起状态(Suspended) 为节省USB系统的功率消耗,当USB设备值3ms内没有检测到总线活动时,它将自动进入挂起状态,这时其仍会保持原有的设备地址和配置值。USB设备在连接后的任何时刻、任何状态都可能被挂起。 为使USB脱离挂起状态,必须对其进行恢复。USB总线上的任何非空闲信号都将使挂起的USB设备得到恢复。另外,具有远程唤醒功能的USB设备,自己也可以启动系统的恢复操作,但当USB设备复位时,其远程唤醒功能必须被禁止。 标准USB描述符的类型 1、设备描述符(Device Descriptor) typedef code struct { BYTE bLength; BYTE bDescriptorType; WORD bcdUSB; BYTE bDeviceClass; BYTE bDeviceSubClass; BYTE bDeviceProtocol; BYTE bMaxPacketSize0; WORD idVendor; WORD idProduct; WORD bcdDevice; BYTE iManufacturer; BYTE iProduct;

文档评论(0)

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

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

1亿VIP精品文档

相关文档