新闻中心

EEPW首页>嵌入式系统>设计应用> LPC1114/LPC11U14和LPC1343对比学习(八)USB

LPC1114/LPC11U14和LPC1343对比学习(八)USB

作者: 时间:2016-11-27 来源:网络 收藏
这3种芯片的功能非常多,到此基本上我们已经介绍完成,只有AD、WDT等没有介绍,鉴于其难度不大这方面的内容就不再说明。下面将进行终极篇的学习----USB学习,由于USB难度非常大,这一贴可能会编写很长时间,这里将主要学习HID的应用。

LPC1114没有USB功能,所以这里只能针对LPC1343和LPC11U14进行说明。对于这两种有USB功能的芯片其还是区 别,LPC1343内部集成了USB驱动,而LPC11U14没有此功能,所以LPC1343USB开发比较简单一点,价格也要贵一点。为了编写出通用的 USB驱动代码,这里将先对LPC11U14 USB进行学习,之后在移植到LPC1343。

本文引用地址: //m.amcfsurvey.com/article/201611/322527.htm

鉴于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)的集合,每一个描述项目都有相对统一的数据结构,项目很多,通过编码实现。


上一页 1 2 3 下一页

评论


技术专区

关闭