基于4412开发板的usb技术文档.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于4412开发板的usb技术文档

USB 开发文档 作者:廖工 时间:2012-12-28 一、USB概述 当 USB设备接上或从USB设备移开的时候,主机启动一个被称作总线标识(bus enumeration)的进程,来标识并管理设备状态的改变,当USB设备接上一个加电端口时,系统当采取以下操作: USB设备所连的集线器通过其通向主机的状态改变通道向主机汇报本USB设备已连接上。此时,USB设备处于加电状态,它所连接的端口是无效的。 主机通过询问集线器决定此次状态改变的确切含义。 主机一旦得知新设备已连上以后,它至少等待100ms以使得插入操作的完成以及设备电源稳定工作。然后主机发出端口使能及复位命令给那个端口。 集线器将发向端口的复位信号持续10ms。当复位信号撤消后,端口已经有效了。这时USB设备处于缺省状态,并且可从VBUS汲取小于100mA的电能,所有设备寄存器及状态已经被复位,设备可对缺省地址产生响应。 主机给设备分配一个唯一的地址,设备转向编址状态。(Address state)。 在USB设备接受设备地址之前,它的缺省控制通道(Default Control Pipe)在缺省地址处自然是可寻址的,主机通过读取设备描述表,判决设备缺省通道的实际净数据负载。 主机从设备读取配置信息要从配置0读到配置n-1,其中n为配置个数,此操作须花费几个毫秒。 基于从设备取来的配置信息及设备如何被使用的信息,主机给设备一个配置值,此刻,设备就处于配置状态(Configured state)并此配置有关的所有端节点,都按照配置各就各位,USB设备现在可以从 VBUS得到描述中所要求的电量了。从设备的角度来讲,它已经准备就绪了。 当USB设备被取走时,集线器同样会通知主机,断开一个设备连接会使得设备所连接的端口无效,一收到断开通知后,主机就会更新拓扑信息。 从上述USB上电的整个过程中,我们可以看到,为了实现USB设备能正确被主机识别,首先需要解决描述符的问题,只要描述符能够被主机正确识别,USB系统基本能够工作了,剩下的就是把用户协议添加到USB系统中。 描述符问题(descriptor),描述符包括report描述符、HID描述符、设备(device)描述符、配置(configuration)描述符、接口(interface)描述符、端点(endpoint)描述符;其中report描述符是不定长的,设备不同会不同,而其他描述符一般都有固定的格式。主要实现这些描述符的格式定义以及相应的数据初始化。 主机与设备间的通讯协议问题,使上位机(电脑)能够正确识别设备,并能实现正常的数据交换。主要包括USB设备能够正确回复上位机的查询(USB实现相应的中断处理,实现对上位机的数据的接收与解析以及正确回复等)。 用户协议问题,实现用户方的协议与USB搭配使用,并得到正确及时的数据响应 二、USB描述: 描述符多种多样,下表给出了各个描述符类型的对应编码: 描述符种类 值 Device descriptor 1 Configuration descriptor 2 String descriptor 3 Interface descriptor 4 Endpoint descriptor 5 实际在给描述符表赋值时,对应的描述符类型按照上表进行 1、设备描述: struct usb_device_descriptor { __u8 bLength; -------------------------------usb设备描述的长度(0x12) __u8 bDescriptorType;----------------------------设备描述类型一般都是0x1 __le16 bcdUSB; __u8 bDeviceClass; __u8 bDeviceSubClass; __u8 bDeviceProtocol; __u8 bMaxPacketSize0; __le16 idVendor; ------------------------------------ Usb 设备版本ID __le16 idProduct;-------------------------------------Usb 设备产品ID __le16 bcdDevice; __u8 iManufacturer; __u8 iProduct; __u8 iSerialNumber;

文档评论(0)

xjj2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档