ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:24.99KB ,
资源ID:19136480      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19136480.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM的U盘设计Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于ARM的U盘设计Word文件下载.docx

1、4.3 SCSI指令集 185 程序的实现 215.1主循环-MAINLOOP.C 215.2中断服务程序 215.3控制端点处理 225.4普通端点处理 235.5数据提交函数 24六 固件调试 256.1固件调试 256.2 USB器件的检查 256.3提供描述符 256.4 BULK_ONLY传输协议命令处理 266.5 SCSI 命令集 276.6 系统调试测试 29七 总结 32参考文献 331 引言1.1 USB 接口的分析USB 是一种价格低廉、体积很小、效率高、速度快和支持热插拔的新型串行通信接口。它能够支持许多个外部设备的同时连接和通信,而且即插即用方便的特点能够使用户可以不

2、重新启动计算机的情况下直接把USB接口的外部设备连接到计算机直接开始通信。USB设计规范性为计算机与外部设备的通信提供了一个比较完整的解决策略,它与旧式的计算机接口相比较,USB总线特性有下面的特点:1、它的接口小巧。与旧式的计算机接口相比较,USB的接口有非常明显的体积优势,朝着计算机与外部设备便携化和小型化发展的大趋势。2、USB是共享式接口。USB接口运用了菊花链方式,能够支持许多个外设的连接。经过USB集线器,单个USB主控制器它能偶可以连接最多126个外部设备,它大大提高了计算机的外部设备功能扩展和应用能力。3、它能够支持即插即用和热插拔。当一个USB外部设备连接到计算机时,系统能够

3、自动监测到该设备,同时加载相应的驱动程序。因此,USB可以自动配置, 用户可以不需要其他任何手动配置,当连接设备时不要重新启动计算机;用户也能够随时断开USB设备和计算机的连接,同时并不会损害计算机与外部设备。4、它能够节省系统资源。系统中给USB主控制器分配一根IRQ线盒几个I/O地址,它再给外部设备分配唯一的一个地址。5、USB能够支持许多种操作。3种传输速率:低速1.5Mbit/s、全速2Mbit/s、高速80 Mbit/s。同时,4种类型的传输模式:块传输、中断传输、同步传输、控制传输。这样USB就能够满足不同种外部设备的功能需求。6、USB成本很低。现在,市场上USB的主控与从控芯片

4、的价格都十分便宜,比如USB电缆等也非常的便宜,再加上USB具有很高的性能,使USB成为性价比非常高的计算机接口。7、USB能够提供电源。当外部设备耗电不大,能够可以考虑用USB接口直接供电的方式,这样十分方便与便携。8、USB同时拥有的很好的兼容性。1.2 USB 器件的选择在对一个USB设备开发之初,首要根据具体情况要求选择适当的USB控制器。现在,市面上供应的USB控制器大体有两种:一种是带USB接口的单片机(MCU),另一种是纯粹的USB接口芯片。1、 带USB接口的单片机从应用上能够可以分成两大类:(1)专门应用于底层设计USB控制的单片机(2)增加了USB接口的普通单片机。如果US

5、B 接口芯片仅仅处理USB通信,那么必须得有一个外部微处理器来进行数据交换和协议处理。比较有特点的产品有Philips公司的PDIUSBD12(并行 接口),NS公司的USBN9603/9604(并行接口)和NetChip公司的NET2888 等。USB接口芯片的主要特点是接口方便、价格便宜、可靠性高,特别是在适合于产品的改型设计方面上(软件只需要增添微处理器的USB中断处理和数据交换 程序、PC机的USB接口通信程序,不需要对原有的产品系统结构上作很大的变动,在硬件上只需要对并行总线和中断进行变动)。1.3 Mass Storage协议与FAT16文件系统USB组织在定义了海量存储设备类(M

6、ass Storage Class)的规范制,而且这个类规范又包括四个独立的子类规范, 1. USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport 2. USBMass Storage Class Bulk-Only Transport 3. USB Mass Storage Class ATA Command Block 4.USB Mass Storage Class UFI Command Specification。1和2子规范在定义了数据、命令、状态USB上的传输方法。Bulk- Only传输规范只是使用Bulk端

7、点传送数据、命令、状态,CBI传输规范使用了Control、Bulk和Interrupt三种类型的端点在进行数 据、命令、状态传送。3和4子规范是定义了存储介质上的操作命令。ATA命令仅规范用于在硬盘上,UFI的命令规范只是对USB移动存储。 Microsoft Windows中提供了对Mass Storage协议的支持,所以USB移动设备只是需要遵循Mass Storage协议来组织数据和处理命令,就能够实现和PC机进行交换数据。但是Flash的存储单元的组织形式是用FAT16文件系统,因此,就能够直 接把Windows的浏览器上经过可移动磁盘来进行交换数据了,Windows可以对FAT16

8、文件系统的管理,因此,USB设备并不需要干预FAT16 文件系统操作的完整细节。2 系统应用技术的概述2.1 嵌入式系统2.1.1ARM的初步介绍ARM是Advanced RISC Machines 的缩写,是微处理器行业非常知名的一家企业。ARM在设计上不仅实现了小体积化而且高性能的结构。ARM处理器简单的结构使得ARM的内核非常小,因此使 得工作期间的低功耗。ARM处理器核具有卓越的性能和非常突出的优点,不仅成为高效率、低消耗、低成本嵌入式处理器核的代名词,同时也得到许多厂家的大力 支持。ARM处理器是在32位高端嵌入式系统中使用的主流芯片之一,占有了绝大部分的市场,而且提供了在数字处理和

9、移动通信等消费类嵌入式产品非常好的解 决方案。ARM处理器是精简指令集计算机RISC体系结构的计算机系统,它不仅集成了非常典型的RISC结构特性,RISC是指Reduced Instruction Set Computer 的缩写,比如:1.具有简单的寻址模式,全部加载/存储的地址都是由寄存器的内容与指令域来决定;2.每一条数据处理指令最大限度和利用ALU和移位器;3.实现了最大的数据吞吐量多寄存器加载和存储指令;4.实现了最快速所有指令代码执行的条件;因此这些在基本的RISC结构上增强的特征,使得ARM处理器在低功耗、高性能和体积小方面上得到非常良好的平衡与稳定1。2.2 PDIUSBD12

10、芯片介绍2.2.1PDIUSBD12芯片的性能与特点PDIUSBD12是PHILIPS运用在USB1.1协议设备端上使用最广的芯片之一,带有并行总线与局部DMA传输能力的高速的USB接口器件。 在芯片内集成了具有卓越性能的USB接口器件、SIE和FIFO存储器以及电压调整器等,能够给任何外部微控制器与微处理器达成高速并行接口。PDIUSBD12芯片的功能框图如图2.2.1所示图2.2.1 D12的功能框图PDIUSBD12是一种性价上非常高的USB器件,它提供了28PIN脚模式,有SO28与TSSOP28封装,SIE达到了全部的USB协议层,并且全部由硬件实现而不需要固件的参与。具体功能如下:

11、同步方式识别、并/串转换、比特填充/解填充、CRC校验/生成、PID确认/生成、地址识别和握手信号的鉴定/生成、批处理数据传输 可达1MB/s,30.3V双极性输入范围,可接受4.55.5V工作电压、工业级标准工作环境温度范围为-40+854。3 USB系统原理和结构3.1 USB 总线拓扑结USB总线的物理连接是一种有层次性的星型结构,每个星型结构以集线器(HUB)为中心。PC机就是主机和根HUB,用户能够将外设或者附加的HUB 同它相连,而且这些附加的HUB能够连接另外的外部设备以及下层HUB。USB最多可以支持5个HUB层以及127个外设。下图中描述了总线的物理拓扑结构。图3.1 USB

12、总线拓扑结构3.2.1 USB设备USB设备中包括HUB与功能设备,而且功能设备又能够细分为定位设备与字符设备等等。为达到进一步叙述,给出端点(endpoint)与管道(pipe)的观念。端点:每一个USB设备在主机看来就是一个端点的集合,主机只能通过端点与设备进行通讯,以使用设备的功能。每一个端点实际上就是一个一定大小的数据 缓冲区,这些端点在设备出厂时就已经定义好了。在USB系统中,每一个端点都有唯一的地址,这是由设备地址和端点号给出的。每个端点都有一定的特性。其中 包括:传输方式、总线访问频率、带宽、端点号、数据包的最大容量等等。除端点0外,其它端点必须在设备配置后才能生效。端点0通常为

13、控制端点,用于设备初始化参数等,端点1、2等一般用作数据端点,存放主机与设备间往来的数据。管道:一个USB管道是驱动程序的一个数据缓冲区与一个外设端点的连接,它代表了一种在两者之间移动数据的能力。一旦设备被配置,管道就存在了。管道由两 种类型,数据流管道(其中的数据没有USB定义的结构)与消息管道(其中的数据必须由USB定义的结构)。管道只是一个逻辑上的概念。所有的设备必须支持端点0以作为设备的控制管道。通过控制管道可以获取完全描述USB设备的信息,包括:设备类型、电源管理、配置、端点描述等等。只要设备连接到USB上并上电,端点0就可以被访问,与之对应的控制管道就存在了。一个USB设备可以分为

14、三个层。最底层是总线接口,用来发送与接收包。中间层处理总线接口与不同的端点之间的数据流通。一个端点是数据最终的使用者或提供者,它可以看作是数据源或是数据接收端。最上层就是USB设备所提供的功能,比如鼠标或键盘等。图3.2.1 USB设备层次结构3.2.2 USB HUBUSB结构中HUB是一个关键,它提供了附加的USB节点,USB节点被又称为端口。HUB能够检测出每一个下行端口的状态,而且能够给下端的设备提供电源。下图描述了一个非常典型的HUB结构。图3.2.2 USB HUB3.2.4 设备电源 USB设备的电源能够由USB总线供给,而且也能够自备电源。一个USB设备能够有这两种供电方式,但

15、同一时间只能为一种供电方式。这两种供电方式是可以进行切换的。3.2.5 设备的挂起为了节电,当设备在指定的时间内没有总线传输,USB设备自动进入挂起状态。如果设备所接的HUB的端口被禁止了,设备也将进入挂起状态(称之为选择挂起)。当然主机也可以进入挂起状态。USB设备当总线活动时,就会离开挂起状态。一个设备也可以通过电信号来远程唤醒进入挂起状态的主机。这个能力是可选的,如果一个设备具有这个能力,主机有能力禁止或允许使用这种能力。3.3 USB主机USB主机在USB系统中处于中心地位,能够对USB及其连接的设备有着特殊的任务。主机控制着全部对USB的访问,一个外部设备只能有主机同意才能够有访问总

16、线的权利。主机也同时检测着USB的结构。USB主机有三层结构:设备驱动程序、USB系统软件、USB主控制器(主机的总线接口)。另外,还有两个软件接口:主机控制驱动(HCD)接口,USB驱动(USBD)接口。图3.3 主机的层次结构3.4 USB设备接口的固件程序设计在整个USB接口设计中USB设备接口固件的开发具有举足轻重的地位。设备接口硬件需要软件的协同来完成相应的工作,然而在固件的编制上不会受到具体的微处理器种类限制。相对于开发者来说,接口硬件在工作上具有着不可见性,能够看到的的是接口固件在控制整个接口时所做的工作。完全的中断驱动由PDIUSBD12的固件设计成,当一个CPU处理前台任务的

17、时候,后台进行的是USB的传输。这也就能够确保了最好的传输速率与更 好的软件结构,而且同时也能够简化了编程与调试。事件标志EPPFLAGS和Setup包数据缓冲区CONROL_XFER来实现是由后台 ISR(中断服务程序)和前台主程序循环之间的数据交换,其原理如图3.4.1所示图3.4.1 前后台工作原理对于这种结构,主循环就可以不用来考虑数据的来源,它只要检查循环缓冲区中需要处理的新数据。这样,主循环就能够专注用于数据的处理,而ISR能可以以最大可能的速度来进行数据的传输。D12固件在编写成分层结构简洁且能够进行更加简单的修改和测试。不仅增加了程序的通用性,同时也增加了代码的可读性。固件的积

18、木式结构如图3.4.2所示.图3.4.2 固件结构和数据流向各模块程序的分工如下:硬件提取层: 对单片机的I/O口、数据总线等硬件接口进行操作。 PDIUSBD12命令接口: 对PDIUSBD12器件进行操作的模块子程序集。 中断服务程序: 当PDIUSBD12向单片机发出中断请求时,读取PDIUSBD12的中断传输来的数据,并设定事件标志传输给主循环程序。 标准请求处理程序: 对USB的标准设备请求进行处理。 主循环程序: 发送USB请求、处理USB总线事件和用户功能处理等。 厂商请求处理程序: 对用户添加的厂商请求进行处理。3.5 USB数据流图3.5.1 USB数据流过程从逻辑上讲,US

19、B数据的传输是通过管道进行的。USB系统软件通过缺省管道(与端点0相对应)管道设备,设备驱动程序通过其它的管道来管理设备的功 能接口。实际的数据传输过程是这样的:设备驱动程序通过对USBD接口(USB driver interface)的调用发出输入输出请求(IRP, I/O Request Packet);USB驱动程序接到请求后,调用HCD接口(host controller driver interface),将IRP转化为USB的传输(transfer),一个IRP可以包含一个或多个USB传输;然后HCD将USB传输分解为总线操 作(transaction),由主控制器以包(packe

20、t)的形式发出。需要注意的是:所有的数据传输都是由主机开始的,任何外设都无权开始一个传 输。IRP是由操作系统定义的,而USB传输与总线操作是USB规范定义的。为了进一步说明USB传输,这里引出帧(frame)的概念。 帧:USB总线将1ms定义为一帧,每帧以一个SOF包为开始,在这1ms里USB进行一系列的总线操作。引入帧的概念主要是为了支持与时间有关的总线操作。为了满足不同外设和用户的要求,USB提供了四中传输方式:控制传输;同步传输;中断传输;批传输。它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各自不同的特征:控制传输(Control Transfer)1. 通常用于

21、配置、命令、状态等情形;2. 其中的设置操作(setup)和状态操作(status)的数据包具有USB定义的结构,因此控制传输只能通过消息管道进行;3. 支持双向传输;4. 对与高速设备,允许数据包最大容量为8,16,32或64字节,对于低速设备只有8字节一种选择;5. 端点不能指定总线访问的频率和占用总线的时间,USB系统软件会做出限制;6. 具有数据传输保证,在必要时可以重试。同步传输(Isochronous Transfer) 1. 是一种周期的、连续的传输方式,通常用于与时间有密切关系的信息的传输;2. 数据没有USB定义的结构(数据流管道);3. 单向传输,如果一个外设需要双向传输,

22、则必须使用另一个端点;4. 只能用于高速设备,数据包的最大容量可以从0到1023个字节;5. 具有带宽保证,并且保持数据传输的速率恒定(每个同步管道每帧传输一个数据包);6. 没有数据重发机制,要求具有一定的容错性;7. 与中断方式一起,占用传输CSW。在从Host 接收数据时,也设置接收标志,当收到WRITE 命令后,即进入此状态,直至从Host 端接收数据完毕,再将数据存入Flash 中。图6.5.1 SCSI传送数据图6.5.2 SCSI接收数据本系统开发的U盘的存储空间使用的是4 MB的RAM空间。当U盘插入主机时,通过操作系统的格式化操作把该空间格式化成FAT系统,然后主机就可以在该

23、存储空间上进行文件的写入与读取。6.6 系统调试测试1. 嵌入式软件的加载界面图6.6.12. U盘设备控制传输阶段的配置信息通信过程,包括设备描述符、配置描述符和字符串描述符的枚举、设置USB设备地址等图6.6.23. 基于BulkOnly的海量存储协议的调试信息输出图6.6.34. 本论文所设计的U盘的格式化界面图6.6.45. U盘中文件的拷贝与文件夹的创建图6.6.5七 总结 在此项目开发过程中,我从中学到了许多书本上学不到的东西,尤其是在动手和实际应用的能力得到强化。通过这次USB通信程序开发,包含嵌入式程序、单片机,让我觉得C语言编程的熟练城区是项目开发的重点。许多出现的问题其实都

24、是原理上非常承受的东 西,从资料中就能够找到。而我们要做的就是把书本上的原理在特定的平台上实现就可以了。原理是比较抽象,比较粗略的,不需要精确;而在真正使用代码实现 时,那就是需要具体、详细、精确、一点误差都不能有,因此,对编程语言的熟练就可以达到事半功倍,提高效率。动手实际的运用和开发就是学习的好机会,只有真正经过了开发过程以后,你才会有更加深刻的体会。在项目开发过程中,实际能力和经验的增长是相辅相成 的。有些内容是要凭经验,理论上的东西,是别人总结出来的东西,非常的抽象,跟实际运用中相比往往省略了许多细节,而项目开发有时候就是根据抽象的理论, 来重新实现细节。一个问题在一次查找原因的过程中

25、不清楚,那么你在做第二次就有一定的思路了,也就能够很快的找到问题的所在。在开发过程中,学到的不仅是将理论的东西运用到实际中,同时也是排找问题思路的建立。参考文献1ARM公司.ARM Architeture Reference Manuals. 20002ARM 公司.The ARM-THUMB Procedure Call Standards. 20003马忠梅,马广云.ARM嵌入式处理器结构与应用基础m.北京:北京航空航天大学出版色,20024周立功.PDIUSBD12 USB 固件编程与驱动开发M.北京:北京航空航天大学出版社,2003.2 5沈文,Eagle lee.AVR 单片机C语言

26、开发入门指导M.北京:清华大学出版社,2003 6王士元.C高级实用程序设计M.北京:清华大学出版社,1996 7谭浩强.C程序设计M.北京:8Atmel Corporation.AVR Instruction Set Nomenclature:Status Register(SREG); 9Registers and Operands.10SAMSUNG Electronics CO.LTD. K9F5608U0A-YCB0,K9F5608U0A-YIB0. U-disk design based on ARMFujian Normal University, Fujian Institut

27、e of Technology 2006 Network Engineering122622006071 JianPing Xie Tutor Xiao LinAbstract: USB (Universal Serial Bus, Universal Serial Bus) is a new type of computer interface technology that allows computers to link with external devices more convenient and fast. Now, many devices are beginning to u

28、se USB interface to develop, such as the keyboard. Mouse. Mobile hard disk. Mobile hard disk. Printer. Digital cameras. In practice, more and more developers start using USB technology, such as data collection, USB design and application development has become a very modern electronic design is to be part of.Key words: D12, USB_HUB, ARM, Mass Storage Protocol. FAT area. Summary?

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1