ARM+USB方案.docVIP

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

基于LPC2132的U盘软硬件系统设计 广东技术 师范学院 张华 俞小青 广州致远电子有限公司 周立山 引 言 USB移动存储技术(U盘)把USB接口技术与Flash存储器技术结合在一起,构成了一种快速、大容量、方便的新型数据交换系统,主要构成有主控制器(MCU)、USB接口芯片和Flash存储器。主控制器(MCU)是系统的核心,负责控制各种外围设备、实现各种算法、协调与主机通信;USB接口芯片负责USB通信;Flash(闪烁存储器)用来存储数据,它决定了U盘的容量。 1 硬件系统设计 U盘设计结构框图如图1所示。使用Phil-ips公司的ARM7芯片LPC2132,控制 Philips的USB1.1接口芯片PDI-USBD12,处理PMC公司的128 KB串行Flash存储器作为数据存储设备实现U盘。 (1) ARM处理器 LPC2132是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-S CPU,并带有64 KB嵌入的高速Flash存储器。LPC2132的实时仿真和跟踪功能方便了代码的调试,降低了开发成本。 (2) PDIUSBD12 PDIUSBD12(简称为“D12”)是一款性价比很高的USB器件;通常用于微控制器系统中实现与微控制器进行通信的高速通用并行接口;支持本地的DMA传输。PDIUSBD12所具有的低挂起功耗连同LazyClock输出可以满足使用ACPI、OnNOW和USB电源管理的要求。低功耗可以应用于使用USB总线供电的外设。 (3) Flash存储器 存储器选用PMC公司的Pm25LV010。适合低功耗和低电压下工作的应用场合;具有完备的数据保护功能。通过没置芯片的状态寄存器,可以将存储空间的高1/4、高1/2或整片写保护。写使能和写禁止指令进一步保护数据。另外还提供WP引脚用于硬件数据保护,以防止对状态寄存器的意外修改。 U盘电路原理如图2所示。 2 软件设计 软件设计主要包括D12驱动、Mass Storage类协议和Flash存储器的读/写控制。 2.1 D12驱动的实现 在USB设备插入主机之前,主机对这个USB设备的情况一无所知,无法建立起通信;但USB协议规定了一些最基本的准则,如每个设备的端点0都是可用的,属于控制端点。有了这个基本的沟通途径,主机就开始通过端点0向设备提出一些问题,这些问题是有关设备基本情况的。这些基本情况可以反映USB设备所属的类别及子类,反映配置情况、接口情况和端点情况;一旦得知了这些信息,主机就大体了解了这个设备是个什么样的设备,按照USB协议中的相应规定,就逐步建立起了一条介于设备之间的高速数据通道,用于数据的传输。主机向设备提出的这些问题实际上就是USB协议中规定的各种标准清求,设备必须对这些问题进行回答;而回答的方式就是向主机传送相应的描述符,即设备描述符、配置描述符、接口描述符、端点描述符。 为了使软件可移植性强、易维护,采用分层的方法编写PDIUSBD12的驱动程序。USB驱动程序分层结构如表1所列。 ① 硬件提取层(D12HAL.c)包含最底层的函数。 ② D12命令接口(D12CI.c)实现PDIUSBD12的命令接口以简化器件的编程。该层的函数及其功能如下: ◇读取芯片ID号,uint16 D12_ReadChipID(void); ◇设置地址/使能,void D12_SetAddressEnable(UINT8 bAddress,UINT8 bEnable); ◇设置端点使能,void D12_SetEndpointEnable(UINT8 bEnable); ◇设置模式,void D12_SetMode(uint8 bConfig,uint8bClkDiv)。 ③ 协议层(Chap_9.c)处理标准的USB设备请求,以及特殊的厂商请求,如DMA等。USB主机通过标准USB设备请求,可设定和获取USB设备的有关信息,完成USB设备的枚举。 所有的请求都是通过端点0接收和发送SETUP包来完成的。接收主机SETUP包的函数为ep0_rxdone(),所有SETUP包都由函数control_handler()来处理,发送SETUP包的函数为ep0_txdone()。SETUP包的接收和发送通过控制传输结构全局变量CONTROL_XFER Con-trolData来控制,它实现了以上3个函数之间的通信。CONTROL_XFER结构体的定义如下: 上述几个函数及ControlData变量之间的关系如图3所示。 ④ 应用层(D12Driver.c)实现PDIUSBD12的所有功能。USB设备控制驱动、USB接口控制驱动和协议层都在应用层的控制之中。应用层要实现的任务包括: ◆初始化PDIUSBD12。包括初始化PDIUSBD12的硬件连接

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档