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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

08级信工五班张永Word文档下载推荐.docx

1、第1.1节 理论和实践的意义 2第1.2节 国内外研究现状 2第2章 嵌入式ARM处理器 5第2.1节 嵌入式系统特性 5第2.2节 ARM处理器体系结构 7第3 章 嵌入式linux操作系统 13第3.1节 Linux的历史 13第3.2节 Linux作为嵌入式开发的优势 13第3.3节 嵌入式Linux系统体系结构 14第4章 USB驱动原理 18第4.1节 USB总线规范 18第4.2节 USB总线简介 19第4.3节 USB总线拓扑结构 21第4.4节 USB数据流模型 21第4.5节 USB设备驱动程序的概述 22第4.6节 USB驱动程序结构 23第4.7节 USB的主机驱动结构

2、24第5章 USB驱动程序的分析与实现 29第5.1节 USB主控制器驱动程序实现 29第5.2节 USBD的介绍 35第5.3节 USB设备驱动的实现 37第5.4节 大容量的存储设备简单介绍 47结 论 49参考文献 50致 谢 51前 言USB是一种新兴的计算机外围串行通信接口标准,它以单一类型的总线连接各种不同的类型的设备。现在支持几乎所有可以连接到PC上的设备。USB具有热插拔、即插即用、数据传输可靠、扩展方便、低成本、系统总线供电、系统总线带宽利用率高等特点,基于以上优点,USB在PC和便携式电子产品中已经成为必备外围接口,这样就需要在软件方面对USB有良好的驱动支持。在PC上,操

3、作系统对USB给予了完全的支持,当USB设备连接到系统上时,操作系统会自动检测设备,并自动加载相关的驱动程序,利用默认配置参数对设备进行配置,方便了USB客户端设备的使用。但在嵌入式设备上,由于硬件体系结构不同,操作系统在PC下提供的驱动不能完全照搬过来用,需要根据具体硬件进行修改,甚至需要根据嵌入式设备硬件资源状况进行重写或裁剪,以满足具体的需要。本文就是在ARM9(S3c2410)芯片和Linux操作系统下对USB OHCI的驱动程序进行了编写和分析,满足了USB设备在ARM9(S3c2410)芯片上的使用需求。第1章 课题研究价值第1.1节 理论和实践的意义随着以ARM为代表微处理器高速

4、发展,装有操作系统的嵌入式产品越来越多,功能越来越多强大。带有USB接口的嵌入式产品更方便了与PC机进行数据传输。Linux操作系统以其开放源代码、功能强大、稳定等优势使其在嵌入式操作系统领域得以迅速发展1。嵌入式设备种类繁多的特点决定了不同的设备需要设计者开发相应的产品驱动,因此嵌入式Linux设备驱动程序的开发在整个嵌入式系统开发工作中占有举足轻重的地位。第1.2节 国内外研究现状从美国微软发布“维纳斯计划”白皮书到中国科学院推出的“女蜗计划”,整个世界仿佛在一夜之间掀起了嵌入式开发与应用的热潮,人们开始关注嵌入式技术的发展和应用情况实际上,虽然嵌入式系统这一名词在最近几年才成为流行,但早

5、在80年代,国际上就有一些IT组织、公司,开始进行商用嵌入式系统和专用操作系统的研发。就嵌入式系统的硬件来说,其处理器有8位、16位、132位不同类型,其架构也有X86、ARM、MIPS、SHx等不同类型。就嵌入式操作系统来说,目前市场上主流的有Windows CE、VxWorks、Lmux、QNX、pSOS等。目前32位的微处理器硬件和实时多任务的操作系统软件相结合是嵌入式系统发展的主流2。基于ARM(Advanced RISC Machines)技术的微处理器却大约占据了32位RISC(Reduce Instruction Set Computing)微处理器75以上的市场份额,ARM技术

6、正在逐步渗入到我们生活的各个方面,例如苹果最近推出的iPhone手机,里面有ARMll、ARM9和ARM7。由于ARM芯片的高性能,使在其上建立嵌入式系统成为可能。如果开发驱动程序就要有一款实用开源的嵌入式系统了那就非linux莫属。Linux是以其开源、易于移植和可裁剪性。使得越来越多地被应用于嵌入式系统。近年来,随着计算技术、通信技术的飞速发展,特别是互联网的迅速普及和3C(计算机、通信、消费电子)合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信息产业的主流3。Linux从1991年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一。可运行在X86、Alp

7、ha、Sparc、MIPS、PPC、Motorola、NEC、ARM等多种硬件平台,而且开放源代码,可以定制;可与各种传统的商业操作系统分庭抗争。越来越多的企业和研发机构都转向嵌入式Linux的开发和研究上,在新兴的嵌入式操作系统领域内也获得了飞速发展。在基于主流芯片ARM9和开源Linux的基础上开发usb的驱动就容易多了。通用串行总线USB是一种外部总线规范,是计算机领域的一种新的接口技术。早在1994年底,英特尔、康柏、IBM、微软等多家公司就已经联合提出USB总线规范。在近期,USB技术得到了飞速的发展,USB版本已经发展到2.O。通过USB接口,计算机可以方便的和具有USB接口的计算

8、机周边设备如数码相机,打印机,鼠标,键盘等互连。由于USB设备即插即用,数据传输速率快,USB接口已经取代串口,并口,IEEEl394,成为使用最广泛的电脑外围接口。在USB推动PC外部设备发展的同时,PC外部设备反过来也对USB提出更高的要求,其中最主要的一点便是更高速率的数据传输。为此,USBIF在原先提供15Mbiths低速和12Mbit/s全速数据传输的USBlx的基础上,于2000年发布了支持480Mbit/s高速数据传输的USB 20规范,为将USB推广到大容量移动存储、宽带网络产品、数码相机和摄像机等高速外部设备提供了解决方案。USB3。0将提供达到48Gbps的理论传输速度相当

9、于600MB每秒,相比USB 20提升了10倍的传输速度。新的USB 30标准能够让更多机器设备不靠外接电源即可运行使用,也使其传输速度更快4。国外利用USB技术开发的产品种类很多,像USB存储设备,USB通讯备,USB小家电等等,最近还推出了USB接口的红外护腕、USB指纹识别系统等,国外市场上基于USB的外设己经囊括几乎所有的主流数字产品,可见国外在USB实用性方面已作了很多工作,并且目前也正以很快的速度发展。在国内,嵌入式USB主机系统的研究虽处于起步阶段,但也取得了一定的成绩。朗科公司最早提出了“优盘”概念,并取得了USB外部存储装置专利知识产权。USB在汽车领域也取得了飞速发展。总的

10、来说,USB技术在嵌入式系统已经被广泛使用,并成为当今嵌入式开发和应用中的一个热点。USB相关设备驱动的开发也就随之成为了嵌入式产品研发的热点。设备驱动可以理解为操作系统的一部分,对于不同硬件设备来说,其对应的设备驱动程序也是不同的。操作系统本身并没有对种类繁多的硬件设备提供持久不变的“设备驱动,没有设备驱动程序的支持,操作系统无法正常支配硬件行为。这个时候就需要独立开发一套适合自己产品的设备驱动。Linux缺乏对外部设备的支持,也就是设备驱动程序方面并不能像Windows一样得到硬件厂 商的支持。很多硬件设备厂商不提供设备在Linux操作系统下的驱动。传统意义的USB(Universal S

11、erial Bus)开发,仅仅是对USB外设的开发,USB底层驱动程序和USB主控制器驱动程序都由Windows等操作系统提供,有关这些驱动程序的细节过程都是不开放源代码。要设计USB主机驱动,就必须设计这两部分程序,而Windows源码不公开,这些细节资料就无从得到,因此只有从开放源代码的Linux角度设计。Linux开放源码的好处一方面在于可以根据实际需要来配置内核,另一方面在于为开发设备驱动程序提供了借鉴。设备驱动在嵌入式Linux系统开发中占用重要地位5。所以开发出一个usb驱动程序对促进嵌入式的发展起到举无轻重的作用。本文设计驱动适合大部分usb设备的应用。第2章 嵌入式ARM处理器

12、第2.1节 嵌入式系统特性嵌入式系统应用越来越广泛。这是因为嵌入式系统具有功能特定、规模可变、扩展灵活、有一定的实时性和稳定性、系统内核比较小等特点。2.1.1功能特定性可以说基本上所有的嵌入式系统都具有一些特定的功能。如一个IP转串口的小型嵌入式设备,其主要功能就是把IP(TCPIP)数据转成RS232数据,或者把RS232数据转成TCP/UDP数据。也正是基于这样特定和单一的功能,才能把这类嵌入式设备做的体积小巧并且价格低廉。应用于专业领域的嵌入式系统通常都具有执行特定功能的特性。嵌入式系统的这个特性要求设计者在实际设计嵌入式系统的时候一定要做详尽的需求分析,把系统的功能定义清晰,真正地了

13、解客户的需求是做好设计的前提。另外一点,如果在系统中增加一些不需要的功能不仅是开发时间上与经费上的浪费,也带来了系统整体性价比的降低,同样也会带来系统成本的增加。2.1.2规模可变性规模可变主要是指嵌入式系统是以微处理器与周边器件构成核心的,其规模可以变化。嵌入式处理器可以从8位到16位,到32位甚至64位都有。正是基于这个特点,嵌入式开发工程师开发过程中先设计与调制系统中基本不会变的那个部分一通常是指嵌入式处理器核心电路部分,也就是小系统部分,然后再根据实际的应用扩展其外围接口。嵌入式系统的这个特点给开发人员在系统设计过程中带来了很大的灵活性。需要变化的时候,使系统的设计可以快速地进行扩展来

14、适应需求。比如系统内存的增加、系统外围接口的扩展等,都是很容易实现的,但前提是在系统设计的时候已经考虑到这部分的扩展冗余。也就是说设计师在设计系统的时候,要适当考虑一下系统以后的扩展性。最方便的方法就是通过一些跳线等方法做一些简单的扩展。2.1.3实时性与稳定性嵌入式系统因其应用情况通常会对时序和稳定性有一定的要求,也正是这样就出现了实时嵌入式系统等更深层次的系统。常见的实时嵌入式系统有RT Linux、Nucleus等。大家所熟知的火星探测器上使用的操作系统其实就是一个实时性很高的嵌入式系统,上面所使用的操作系统就是美国风河系统公司(Wind River System)的Vxworks操作系

15、统。2.1.4系统的其他特性嵌入式系统除了具有以上几个特性外,还具有系统内核小、专用性强、系统小而精、使用多任务操作系统、有专门的开发配套工具等特点。(1)系统内核小因为嵌入式系统一般都使用应用于小型电予装置,所以系统资源相对有限,其内核也比传统的操作系统小很多,小的有几千字节,大的也不过几十兆。(2)专用性强嵌入式系统的个性化很强,软件和硬件的结合紧密,一般都针对硬件进行系统的移植,同时针对不同的任务,系统软件也需要更改一定程序,程序的编译下载和系统相结合。(3)系统精简系统软件和上层应用软件分离,每一次修改软件,不必把系统软件和上层软件一起编译调试,可以缩短开发的周期。(4)高实时性高实时

16、性的操作系统软件师嵌入式软件的基本要求,软件一般都要求固化和存储的。通常嵌入式系统中的软件都存储在Flash中的。上电之后,才把这些软件中的部分调入RAM区中运行(5)使用多任务的操作系统嵌入式软件逐渐走向标准化,所以一般都使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统在芯片上直接运行,但为了合理调度多个任务,充分利用系统资源、系统函数等,推荐使用RTOS开发平台。(6)具有专门的开发工具和开发环境由于嵌入式系统本身不具备自身开发能力,必须有一套开发工具和环境才能惊醒开发,这些工具和环境一般是基于通用计算机上的软硬件设备,以及各种仪器仪表等。开发时一般分为主机(HOST)和目标机(

17、TARGET)两个概念,主机用于程序开发,目标机作为最后的执行机。一般都是在主机上建立于目标机的编译环境,编译目标机要运行的代码,然后把编译出来的可执行二进制代码通过主机和目标机之间的某种通信接口和协议传输到目标机上进行烧录和运行。第2.2节 ARM处理器体系结构1990年1月成立于英国剑桥的ARM公司,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP,Intellectual Property)为核心的微处理器,已遍及汽车、工业控制、消费电子、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用己占据32位RISC芯片75以上的市场份额,ARM技术可谓无处不

18、在6。2.2.1 ARM处理器的特点ARM处理器具有诸多技术优势,在嵌入式的各领域应用中表现出色,采用RISC架构的ARM微处理器一般具有如下特点:(1)体积小、低功耗、低成本、高性能;(2)支持Thumb(16位)ARM(32位)双指令集,能很好的兼容8位和16位器件;(3)大量使用寄存器,指令执行速度更快;(4)大多数数据操作都在寄存器中完成;(5)寻址方式灵活简单,执行效率高;(6)指令长度固定。2.2.2 ARM内核种类分类带有ARM内核的处理器大概有千种以上,这里不做介绍。ARM微处理器目前主要包括以下几个系列,除了具有ARM体系结构的共有特点之外,每一个系列的ARM微处理器都有自己

19、的特点和应用领域。(1)ARM7处理器;(2)ARM9、ARM9E处理器;(3)SecurCore处理器;(4)StrongARM处理器。其中,ARM7、ARM9、ARM9E和ARMl0为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。这里对各类处理器核的ARM流水线做一下对比,表2.1所示。表2.1 ARM处理器内核流水线芯片类型工作流程ARM7预取译码执行ARM9访问写回2.2.3 ARM处理器工作状态从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换(1)ARM状态,此时处理器执行

20、32位的字对齐的ARM指令;(2) THUMB状态,此时处理器执行16位的、半字对齐的Thumb指令。ARM与THUMB;(3)THUMB指令是ARM指令的子集;(4)可以相互调用,只要遵循一定的调用规则;(5)THUMB存储空间约为ARM代码的60%70%;(6)THUMB指令数比ARM代码多约30%40%;(7)存储器为32位时ARM代码比THUMB代码快约40%;(8)存储器为16位时THUMB比ARM代码快约40%50%;(9)使用THUMB代码,存储器的功耗会降低约30%。正在执行THUMB指令集的处理器是工作在THUMB状态下的。同样,正在执行ARM指令集的处理器是工作在ARM状态

21、下。ARM状态下的处理器不能执行THUMB指令,在THUMB状态下的处理器也不能执行ARM指令。ARM处理器总是在ARM状态下开始执行代码。ARM处理器支持7种处理器模式,取决于体系结构版本。2.2.4 ARM处理器工作模式ARM处理器具有7种工作模式,详情见表2.2。表2.2 ARM处理器的工作模式CPSR4:0模式用途可访问的寄存器10000用户正常用户模式,程序正常执行。 PC, R14R0,CPSR10001FIQ处理快速中断,支持高速数据传输或通道处理。PC,R14_FIQR8_FIQ,R7R0,CPSR,SPSR_FIQ10010IRQ处理普通中断。PC,R14_IRQR13_FI

22、Q,R12R0 ,CPSR,SPSR_IRQ 10011SVC操作系统保护模式,处理软件中断(SWI)。PC,R14_SVCR13_SVC,R12R0,CPSR,SPSR_SVC10111中止处理存储器故障,实现虚拟存储器和存储器保护。PC,R14_ABTR13_ABT,R12R0,CPSR,SPSR_ABT11011未定义处理未定义的指令陷阱,支持硬件协处理器的软件仿真。PC,R14_UNDR13_UND,R12R10,CPSR,SPSR_UND11111系统运行特权操作系统任务。PC,R14R0,CPSR除用户模式外的其他6种模式称为特权模式 。特权模式中除系统模式以外的5种模式又称为异常

23、模式,即 :FIQ(Fast Interrupt Request),IRQ(Interrupt ReQuest),SVC(Supervisor),中止(Abort),未定义(Undefined)7。2.2.5 ARM寄存器组成概述ARM处理器总共有37个寄存器,可以分为以下两类寄存器 :结构如表2.3。(1)31个通用寄存器:R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_frq 、R14_frq。(2)6个状态寄存器: CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_i

24、rq和SPSR_fiq。表2.3 寄存器结构寄存器类别各种模式下实际访问的寄存器通用寄存器和程序管理普通中断快速中断 R0 R1 R2R3R4R5R6R7R8R8-fiqR9R9-fiqR10R10-fiqR11R11-fiqR12R12-fiqR13(sp)R13-svcR13-abtR13-undR13-irqR13-fiqR14(lr)R14-svcR14-abtR14-undR14-irqR14-fiqR15(pc)状态寄存器CPSR无SPSR-sveSPSR-abtSPSR-undSPSR-irqSPSR-fiq 2.2.6 ARM处理器的异常向量列表一般来说,将一张异常向量列表至于首地址处,当产生异常响应,ARM处理器会自动跳转到对应地址执行程序,表2.4。表2.4 异常中断向量表异常类型向量地址优先级异常中断含义复位(Reset)0x000000001当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异中断处理程序处执行,复位异常中断通常用在下面几种情况下:系统加电时、系统复位时、跳转到复位中断向量处执行 ,称为软复位。未定义的指令(undefined instruction)0x000000046当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常中断

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

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