《LPC1114LPC11U14和LPC1343对比学习(八)USB》.doc

《LPC1114LPC11U14和LPC1343对比学习(八)USB》.doc

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

LPC1114/LPC11U14和LPC1343对比学习(八)USB 这3种芯片的功能非常多,到此基本上我们已经介绍完成,只有AD、WDT等没有介绍,鉴于其难度不大这方面的内容就不再说明。下面将进行终极篇的学习----USB学习,由于USB难度非常大,这一贴可能会编写很长时间,这里将主要学习HID的应用。 LPC1114没有USB功能,所以这里只能针对LPC1343和LPC11U14进行说明。对于这两种有USB功能的芯片其还是区别,LPC1343内部集成了USB驱动,而LPC11U14没有此功能,所以LPC1343USB开发比较简单一点,价格也要贵一点。为了编写出通用的USB驱动代码,这里将先对LPC11U14 USB进行学习,之后在移植到LPC1343。 鉴于USB开发难度,这里将不会从零开始开发USB驱动,我们将对NXP设计的USB驱动进行学习,并改进成一个自定义的HID,应用在自己的项目中。 USB HID(NXP原厂代码).rar 对于USB的硬件设计非常简单,具体设计如下图所示: 1. 除了连接好USB的两路差分信号线外,还必须连接好电源,对于P0_3是非常重要,不管是否使用USB电源供电,此管脚必须接高电平,否则无法设别USB设备。而且,如果要应用USB ISP功能,此管脚也必须接高电平。 2. P0_6管脚为软件连接端口,可以通过此管脚连接或断开USB设备。 3. 全速和高速设备的上拉电阻接在D+端,而低速设备是接在D-端的。 4. USB设备取电:在设备没有配置之前最多只能从Vbus上获取100mA电流,电流的大小是由设备配置的,配置后最多可获取500mA电流。 USB基础知识: 1. 在USB1.0和USB1.1中只支持1.5M/s的低速模式和12M/s的全速模式,在USB2.0中又加入了480M/b的高速模式,而在USB3.0中速度到达5GB/s。 2. USB集成器只能扩展USB接口,而能扩展带宽,一个主控制器的带宽是固定的。 3. 在USB1.1中集成器最多4层,USB2.0中最多6层。 4. 低速和全速模式下采用电压差分传输信号,在高速模式下,采用电流传输。 5. USB采用NRZI编码方式,0数据电平翻转,1数据电平不翻转。 USB的描述符应该是USB开发主重要的部分,如果能够正确的配置好描述符,USB开发就完成了一半了。 描述符: 对于HID设备的描述除了5个USB的标准描述:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符。 HID设备还有3个特点描述符:HID描述符、报告描述符、实体描述符。 在5个标准描述符中与HID设备有关的部分有: 1. 设备描述符中bDeviceClass、bDeviceSubClass、bDeviceProtocol三个字段的值必须为零。 2. 接口描述符中bInterfaceClass的值必须为0x03,bInterfaceSubClass的值为1时表示Boot Device,即表示HID是一个启动设备。 面的描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。这间描述符是用一定的字段构成的,分别如下说明: 报表描述符 报表描述符定义了执行设备功能的数据格式和使用方法。 报表描述符和USB的其他描述符是不一样的,它不是一个简单的表格,报表描述符是USB所有描述符中最复杂的。报表描述符非常复杂而有弹性,因为它需要处理各种用途的设备。报表的数据必须以简洁的格式来储存,这样才不会浪费设备内的储存空间以及数据传输时的总线时间。 实际上可以这样理解,报表内容的简洁,是通过报表描述符全面的、复杂的数据描述实现的。 报表描述符必须先描述数据的大小与内容。报表描述符的内容与大小因设备的不同而不同,在进行报表传输之前,主机必须先请求设备的报表描述符,只有得到了报表描述符才可正确解析报表的数据。 报表描述符是报表描述项目(Item)的集合,每一个描述项目都有相对统一的数据结构,项目很多,通过编码实现。 在HID的8种描述符中,最为重要而且复杂的应该是报表描述符,其定义了数据的存储格式和实际意义。如果能够正确的理解报表描述符,那么对数据的处理就能达到应用自如了,所以在设计描述符的时候,一定好多话费时间来理解和编写这一部分的内容。特别要主要以下几点: 1. 输入输出等项使用的数据必须是整数字节,如果没有完全使用到,也必须通过说明来补齐。 2.主要报表的三种项的应用及使用范围。 命令请求: HID设备类特定的命令有6个:Get_Report、Get_Idle、Get_Protocol、Set_Report、Set_Idle、Set_Protocol。 通过近

文档评论(0)

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

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

1亿VIP精品文档

相关文档