配套课件-嵌入式Linux开发入门_第1页
配套课件-嵌入式Linux开发入门_第2页
配套课件-嵌入式Linux开发入门_第3页
配套课件-嵌入式Linux开发入门_第4页
配套课件-嵌入式Linux开发入门_第5页
已阅读5页,还剩597页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 系统概述 1.1 嵌入式系统 1.2 ARM嵌入式系统 1.1 嵌入式系统1.1.1 嵌入式系统简述嵌入式系统是一个较为复杂的技术概念,无疑也是当今最热门的技术概念之一。嵌入式系统是指嵌入式计算机(Embedded Computer)及其应用系统。关于嵌入式系统目前尚无严格、统一的定义。根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“用于控制、监视的设备,或者作为仪器、机器或设备的辅助装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants

2、),这主要是从应用上定义的。从中可以看出嵌入式系统是软件和硬件的综合体,同时还涵盖了机械等附属装置。 需要指出的是,上述定义并不能充分体现出嵌入式系统的精髓,嵌入式的概念根本上应该从应用角度加以阐述。在多数网站和书籍资料中,对嵌入式系统大都有这样的定义:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。也可以将嵌入式系统理解为:以应用为中心,以计算机技术、微电子技术、控制技术和通信技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。可以从以下三方面来认识嵌入式

3、系统:(1) 硬件应以嵌入式处理器为基础平台;(2) 软件应以嵌入式软件为运行平台;(3) 形式应是嵌入在设备中。各种设备有不同的外形及相应的附属配件,嵌入式系统只不过是其中的一个控制核心部件。概括地说,嵌入式系统集系统的应用软件与硬件于一体,类似于PC中BIOS的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。嵌入式系统具有如下特点: 嵌入式系统功耗低、体积小、专用性强; 为提高系统运行速度和可靠性,嵌入式系统软件一般都固化在存储器芯片中或片内R

4、OM中; 嵌入式系统的软硬件设计力求高效、精简; 嵌入式系统对代码安全性要求高; 嵌入式系统开发需要专门的开发工具及开发环境; 嵌入式系统是面向用户、面向产品、面向应用的; 嵌入式系统是计算机技术、半导体技术和电子技术以及各个行业的具体应用相结合的产物。1.1.2 嵌入式系统的构成嵌入式系统是指嵌入于各种设备及应用产品内部的计算机系统,而非PC系统。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序四个部分组成。它主要完成信号控制功能,体积小,结构紧凑,可作为一个部件埋藏于所控制的装置中。它提供用户接口,管理有关信息的输入/输出,监控设备工作,使设备及应用系统有较高

5、智能和性价比。嵌入式系统可分为硬件和软件两大部分。1. 嵌入式系统的硬件嵌入式系统的硬件部分包括处理器/微处理器、存储器、外设器件和I/O端口、图形控制器等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用EPROM、EEPROM或闪存(Flash Memory)作为存储介质。1) 嵌入式微处理器(Embedded Microprocessor Unit, EMPU)嵌入式微处理器采用“增强型”通用微处理器。由于嵌入式系统通常应用于比较恶劣的环境中,因此嵌入式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。嵌入式微处理器在功能方面与

6、标准的微处理器基本上是一样的。根据实际嵌入式应用的要求,将嵌入式微处理器装配在专门设计的主板上,只保留和嵌入式应用有关的主板功能,这样可以大幅度减小系统的体积和功耗。与工业控制计算机相比,嵌入式微处理器组成的系统具有体积小、重量轻、成本低、可靠性高的优点。嵌入式微处理器及其存储器、总线、外设等安装在一块电路主板上,从而构成了一个通常所说的单板机系统。嵌入式处理器有8位、16位、32位和64位等不同类型,目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM等系列。嵌入式微处理器是嵌入式系统的核心。嵌入式微处理器一般具备4个特点:(1) 对实时和多任

7、务有很强的支持能力。有较短的中断响应时间,从而使实时操作系统的执行时间减少到最低限度。(2) 具有功能很强的存储区保护功能。嵌入式系统的软件结构已模块化,为了避免在软件模块之间出现错误的交叉作用,就需要设计强大的存储区保护功能,同时,这样也有利于软件诊断。(3) 具有可扩展的处理器结构,能迅速地扩展出满足应用的高性能的嵌入式微处理器。(4) 功耗很低,尤其是便携式无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,其功耗达到mW甚至W级。2) 嵌入式微控制器(Microcontroller Unit, MCU)嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。嵌入式微控制器

8、一般以某种微处理器内核为核心,根据某些典型的应用,在芯片内部集成了ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能部件和外设。为适应不同的应用需求,可对功能的设置和外设的配置进行必要的修改和裁减定制,使得一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都相同,只是存储器和外设的配置及功能的设置不同。这样可以使单片机最大限度地和应用需求相匹配,从而减少整个系统的功耗和成本。和嵌入式微处理器相比,微控制器的单片化使应用系统的体积大大减小,从而使功耗和成本大幅度下降,可靠性提高。由

9、于嵌入式微控制器目前在产品的品种和数量上是所有种类嵌入式处理器中最多的,加之有上述诸多优点,因此决定了微控制器是嵌入式系统应用的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。3) 嵌入式DSP处理器(Embedded Digital Signal Processor, EDSP)在数字信号处理应用中,各种数字信号处理算法相当复杂,这些算法的复杂度可能是O(nm),甚至是NP,一般结构的处理器无法实时地完成这些运算。由于DSP处理器对系统结构和指令进行了特殊设计,因此它更适合于实时地进行数字信号处理。在数字滤波、FFT、谱分析等方面,DSP算法正大量进入嵌入式领域,DS

10、P应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。另外,在有关智能方面的应用中,也需要嵌入式DSP处理器,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加/解密算法的键盘,ADSL接入,实时语音压解系统,虚拟现实显示等。这类智能化算法一般运算量都较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的优势所在。嵌入式DSP处理器有两类:(1) DSP处理器经过单片化,EMC改造和增加片上外设,使之成为嵌入式DPS处理器,TI的TMS320C2000/C5000等属于此范畴。(2) 在通用单片机或SOC中增加DSP协处理器,例如Intel的MCS

11、-296和Infineon(Siemens)的TriCore。4) 嵌入式片上系统(System On Chip, SOC) 随着EDI的推广,VLSI设计的普及化,以及半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就产生了SOC技术。各种通用处理器内核将作为SOC设计公司的标准库,和其他许多嵌入式系统外设一样,成为VLSI设计中一种标准的器件,用标准的VHDL、Verlog等硬件语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除某些无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板

12、将变得很简单,对于减小整个应用系统的体积和功耗、提高可靠性非常有利。SOC可分为通用和专用两类,通用SOC如Infineon(Siemens)的TriCore、Motorola的M-Core,以及某些ARM系列器件,如Echelon和Motorola联合研制的Neuron芯片等;专用SOC一般专用于某个或某类系统中,如Philips的Smart XA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可加载Java或C语言的专用SOC,可用于互联网安全方面。2. 嵌入式系统的软件嵌入式系统的软件是嵌入式系统的重要组成部分,它也是计算机软件的一种,同样由程

13、序及其文档组成,可细分成操作系统软件(要求实时和多任务操作)、支撑软件和应用软件三类。操作系统控制着应用程序编程与硬件的交互作用;支撑软件是用于帮助和支持软件开发的软件;应用程序控制着系统的运作和行为。1) 嵌入式操作系统嵌入式操作系统(Embedded Operating System,EOS)是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及

14、应用程序。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。嵌入式操作系统可以分为实时操作系统和分时操作系统两类。实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统。实时操作系统的首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高系统的使用效率。实时操作系统通过任务调度对重要事件在规定时间内作出正确的响应。面向控制、通信等领域的是实时操作系统,如WindRiver公司的VxWorks,ISI公司的pSOS,QNX系统软件公司的QNX,ATI公司的Nucleus等;面向消费电子产品的是分时操作系统,

15、这类产品包括个人数字助理(PDA)、移动电话、机顶盒、电子书、WebPhone等。(1) 分时操作系统。早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中断来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。对于实时性要求特别严格的操作

16、通常由中断来完成,仅在中断服务程序中标记事件发生时,不再做任何工作,退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会因在中断服务程序中处理费时的事件而影响后续和其他中断。实际上,前后台系统的实时性比预计的要差,这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过FIFO队列排队执行的,因而,那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,会使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要RAM/ROM的额外开销,因而

17、在简单的嵌入式应用中被广泛使用。(2) 实时操作系统。实时操作系统是嵌入式系统目前最主要的组成部分。根据操作系统的工作特性,实时是指物理进程的真实时间。实时操作系统是能从硬件方面支持实时控制系统工作的操作系统。实现操作的实时性是第一要求,需要调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。实时系统有软实时系统和硬实时系统两种类型。软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成,如消费类电子产品;在硬实时系统中,不仅要求任务响应要

18、实时,而且要求在规定的时间内完成事件的处理,如工业和军工系统电子产品。通常,大多数实时系统是两者的结合。实时应用软件的设计一般比非实时应用软件的设计困难。实时系统的技术关键是如何保证系统的实时性。实时操作系统具有任务管理(多任务和基于优先级的任务调度)、任务间同步和通信(信号量和邮箱等)、存储器优化管理(含ROM的管理)、实时时钟服务、中断管理服务等功能。实时操作系统具有规模小,中断被屏蔽的时间很短,中断处理时间短,任务切换很快等特点。大多数嵌入式操作系统支持多任务。多任务运行实际是靠CPU在多个任务之间切换、调度来实现的。每个任务都有其优先级,不同的任务优先级可能相同也可能不同。根据任务调度

19、方式的不同,实时操作系统可分为可抢占型和不可抢占型两类。可抢占型实时操作系统是指内核可以抢占正在运行任务的CPU的使用权,并将使用权交给进入就绪态的优先级更高的任务。不可抢占型实时操作系统在使用某种算法并决定让某个任务运行后,就把CPU的控制权完全交给了该任务,直到它主动将CPU控制权还回来。中断由中断服务程序来处理,可以激活一个休眠态的任务,使之进入就绪态,而这个进入就绪态的任务还不能运行,一直要等到当前运行的任务主动交出CPU的控制权。使用不可抢占型实时操作系统的实时性比不使用实时操作系统的系统性能好,其实时性取决于最长任务的执行时间。不可抢占型实时操作系统的缺点也恰恰是这一点,如果最长任

20、务的执行时间不能确定,系统的实时性就不能确定。可抢占型实时操作系统的实时性好,优先级高的任务只要具备了运行的条件,或者说进入了就绪态,就可以立即运行。也就是说,除了优先级最高的任务,其他任务在运行过程中都可能随时被比它优先级高的任务中断,让后者运行。通过这种方式的任务调度保证了系统的实时性,但是,如果任务之间抢占CPU控制权处理不好,会产生系统崩溃、死机等严重后果。可抢占型实时操作系统调度方式灵活,能及时处理紧迫事件,但频繁调度任务和及时计算优先权又会使系统开销增大。不可抢占型实时操作系统调度方式简单,系统开销小,但不能及时处理紧迫事件,不适用于实时任务。在使用中应该综合权衡,以使它们的优势发

21、挥到最大。 使用实时操作系统的必要性。嵌入式实时操作系统在目前的嵌入式应用中越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要,如汽车安全气囊等。首先,嵌入式实时操作系统提高了系统的可靠性。在控制系统中,出于安全方面的考虑,要求系统起码不能崩溃,而且还要有自愈能力。不仅要求在硬件设计方面提高系统的可靠性和抗干扰性,而且也应在软件设计方面提高系统的抗干扰性,尽可能地减少安全漏洞和不可靠的隐患。以往长期使用的前后台系统软件在遇到强干扰时,易使运行的程序产生异常、出错、跑飞,甚至死循环,易造成系统的崩溃。而在实时操作系统管理的系统中,这种干扰可能只是引起若干进程中的一个被破坏,可以通过系统运

22、行的系统监控进程对其进行修复。通常情况下,系统监视进程用来监视各进程的运行状况,遇到异常情况时采取一些利于系统稳定可靠运行的措施,如把有问题的任务清除掉。其次,嵌入式实时操作系统提高了开发效率,缩短了开发周期。在嵌入式实时操作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程中的解耦原则将整个程序分解为多个任务模块。每个任务模块的调试、修改几乎不影响其他模块。商业软件一般都提供了良好的多任务调试环境。再次,嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。32位CPU比8、16位CPU快,另外,它本来是为运行多用户、多任务操作系统而设计的,故特别适于运行多任务实时系统。32位CPU采

23、用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。例如,CPU运行状态分为系统态和用户态。将系统堆栈和用户堆栈分开,以及实时地给出CPU的运行状态等,允许用户在系统设计中从硬件和软件两方面对实时内核的运行实施保护。如果还是采用以前的前后台方式,则无法发挥32位CPU的优势。从某种意义上说,没有操作系统的计算机(裸机)是没有用的。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。 实时操作系统的优缺点。在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块

24、,可使应用程序的设计过程大为简化,而且对实时性要求苛刻的事件都可得到快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到了更好的利用。但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,2%5%的CPU额外负荷,以及内核的费用。2) 嵌入式支撑软件嵌入式支撑软件通常包括数据库和开发工具,其中以数据库最为重要。嵌入式数据库技术已得到广泛的应用,随着移动通信技术的进步,人们对移动数据处理提出了更高的要求,嵌入式数据库技术已经得到了学术、工业、军事、民用部门等各方面的重视。嵌入式移动数据库或简称为移动数据库(EMDBS)是支持移动计算或某种特定计算模式的数据库管理系统,数

25、据库系统与操作系统、具体应用集成在一起,运行在各种智能型嵌入设备或移动设备上。其中,嵌入在移动设备上的数据库系统由于涉及数据库技术、分布式计算技术以及移动通信技术等多个学科领域,目前已经成为一个十分活跃的研究和应用领域。国际上主要的嵌入式移动数据库系统有Sybase、Oracle等。我国嵌入式移动数据库系统以东软集团研究开发的嵌入式数据库系统OpenBASE Mini为代表。3) 嵌入式应用软件嵌入式应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。由于用户任务可能有时间和精度上的要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。嵌入式应用软件和普通

26、应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。目前我国市场上已经出现了各式各样的嵌入式应用软件,包括浏览器、E-mail软件、文字处理软件、通讯软件、多媒体软件、个人信息处理软件、智能人机交互软件、各种行业应用软件等。嵌入式系统中的应用软件是最活跃的力量,每种应用软件均有特定的应用背景,尽管规模较小,但专业性较强,所以嵌入式应用软件不像操作系统和支撑软件那样受制于国外产品的垄断,是我国嵌入式软件的优势领域。4) 嵌入式系统软件的特征嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处

27、理器系统软件和应用软件的要求也和通用计算机有所不同。 (1) 软件要求固态化存储。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。 (2) 软件代码要求高质量、高可靠性。尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度,提高执行速度。 (3) 系统软件(OS)的高实时性是基本要求。在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键,单纯通过提高处理器

28、速度是无法完成和没有效率的。这种任务调度只能由编写优化的系统软件来完成。这里系统软件的高实时性是基本要求。 (4) 多任务操作系统是知识集成的平台和走向工业标准化道路的基础。1.1.3 嵌入式系统的特点嵌入式系统一般指非PC系统,它有计算机功能但又不称之为计算机的设备。嵌入式计算机系统同通用型计算机系统相比具有以下特点: (1) 嵌入式系统通常是面向特定应用的嵌入式CPU,与通用型计算机的最大不同是嵌入式CPU大多工作在为特定用户群设计的系统中。它通常都具有功耗低、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强

29、,跟网络的耦合也越来越紧密。 (2) 嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,是一门综合技术学科。由于空间和各种资源相对不足,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中更具有竞争力。(3) 嵌入式系统是一个软硬件高度结合的产物。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。片上系统、板上系统的实现,使得以PDA等为代表的这类产品拥有更加熟悉的操作界面和操作方式,比传统的电子记事本等功能更加完善、实用。(4) 为

30、适应嵌入式分布处理结构和上网的需求,要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必须配有通信接口,相应地需要TCP/IP协议簇软件支持。由于家用电器相互关联(如防盗报警系统、灯光能源控制系统、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。 (5) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储

31、器芯片或单片机中,而不是存储于磁盘等载体中。软件代码要求高质量和高可靠性。 (6) 因为嵌入式系统往往和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品一旦进入市场就具有较长的生命周期。(7) 嵌入式系统开发需要开发工具和环境。由于其本身不具备自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发,这些工具和环境一般基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。1.1.4 嵌入式系统的应用领

32、域嵌入式系统依靠其功能适用、可靠性高,无病毒,存储介质无机械硬盘,抗干扰能力强,体积和尺寸小,功耗低,无需散热风扇,无噪音,价格低,市场竞争力强,环境适应性强,操作使用人性化、仪表化,有多种类型的软硬件支持平台,无须经常更新换代,可充分发挥设计者的才能,创造出更好的产品等特点,获得了广泛的应用。嵌入式系统的应用前景是非常广泛的,在日常生活中人们无时无处不接触到嵌入式产品,如家里的洗衣机、电冰箱、电视机顶盒、数字电视、掌上PDA、移动计算设备、手机上网、汽车、工业自动化仪表、医疗仪器、远程会议系统等。特别是以蓝牙为代表的小范围无线接入协议的出现,使嵌入式无线电的概念悄然兴起。嵌入式系统可以称为后

33、PC时代和后网络时代的新秀。美国著名未来学家尼格罗在1999年曾预言,4至5年后嵌入式系统将是继PC和Internet之后最伟大的发明。如今,现实的发展已验证了这个预言。嵌入式系统的应用按照市场领域可以分为: 消费类电子产品; 工业控制系统; 机器人领域; 医疗仪器; 汽车; 数据/无线通信。 1.1.5 嵌入式系统的发展趋势随着Internet与网络的迅速普及,并向家庭领域不断扩展,使消费电子、计算机和通信(3C)一体化趋势日趋明显,嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集

34、成系统。目前嵌入式系统技术已经成为最热门的技术之一。信息化社会的建设对嵌入式系统市场提出巨大需求,目前微处理器与微控制器年产量达10亿多片,远远大于个人通用台式计算机,嵌入式计算机必将是信息产业新的经济增长点。嵌入式系统处于高速的发展之中,其中在以下几个方面的发展尤其应该引起重视: 系统结构趋于复杂; 网络互联成为必然趋势; 应用时精简系统内核、算法,降低功耗和软硬件成本; 系统提供友好的人机界面。 1.2 ARM嵌入式系统1.2.1 ARM简介ARM(Advanced RISC Machines)是一个公司名称,也是一种处理器的通称,还可以认为是一种技术名称。1991年ARM公司成立于英国C

35、ambridge,英国ARM 公司是全球领先的16/32 位嵌入式 RISC 微处理器解决方案的供应商,向全球各大领先电子公司提供高性能、低成本和高效率的RISC 处理器、外设和系统芯片技术授权。ARM 还为开发完整系统提供综合技术支持。ARM 的微处理器遍及工业控制、消费类电子产品、通信系统、海量存储、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器75%以上的市场份额。ARM的设计实现了体积小但性能高的结构。ARM是精简指令集计算机,集成了非常典型的RISC结构特性: 采用固定长度的指令格式,指令归整、简单,基本寻址方式有23种; 使用单周期指令,

36、便于流水线操作执行; 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。主要技术有: 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率; 可用加载/存储指令批量传输数据,以提高数据的传输效率; 可在一条数据处理指令中同时完成逻辑处理和移位处理; 在循环处理中使用地址的自动增减来提高运行效率。所有指令的条件执行实现了最快速的代码执行。这些在基本RISC结构上增强的特性使ARM处理器在高性能、低代码规模、低功耗和小硅片尺寸方

37、面取得了良好的平衡。ARM公司开发了很多系列的ARM处理器,目前最新的系列是ARM11。然而应用较多的是ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列和Intel的StrongARM、XScale系列。ARM处理器的选择范围非常宽广,同内核可以选择任意一家厂商的芯片。ARM处理器的优点包括以下几方面: ARM处理器本身是位设计,但也配备16位指令集。 一般来讲存储器比等价位代码节省达3040%,依然保留了32位系统的所有优势。 ARM的Jazelle技术使Java加速,得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降

38、低了80%。 CPU功能上增加DSP指令集,提供增强的16位和32位算术运算能力,提高了性能和灵活性。 ARM内核最初是为手持通信设备设计的,所以它的功耗非常低。1.2.2 ARM处理器的应用领域到目前为止,ARM微处理器及其技术的应用几乎已经深入到了各个领域,成为嵌入式系统微处理器家族中极其重要的一员。其主要应用于: 工业控制领域:作为32位的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 无线通信领域:目前已有超过85%的无线通信设备采用了A

39、RM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。 网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得了广泛支持,也对DSP的应用领域提出了挑战。 消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到了广泛采用。 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。除此以外,ARM微处理器及其技术还应用于许多不同的领域,并会在将来取得更加广泛的应用。1.2.3 ARM处理器的特点ARM处理器具有诸多技术优势,在嵌入式的各领

40、域应用中表现出色,采用RISC架构的ARM微处理器一般具有如下特点: 体积小、功耗低、成本低、性能高; 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件; 大量使用寄存器,指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固定。1.2.4 ARM处理器的分类ARM微处理器目前包括下面几个系列。除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。 ARM7家族; ARM9家族; ARM9E家族; ARM10E家族; ARM11家族; SecurCore家族; OptimoDE数据引擎

41、内核; MPCore多处理器家族; Intel公司的StrongARM/XScale。其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。1.2.5 ARM处理器工作模式简介ARM处理器具有7种工作模式,详情见表1.1。表1.1 ARM处理器模式1.2.6 ARM处理器内部寄存器简介在ARM处理器内部有37个用户可见的寄存器。31个通用32位寄存器,在ARM公司文件中它们的名称分别为R0R15,R13_svc,R14_svc,R13_abt, R14_abt, R

42、13_und, R14_und, R13_irq, R14_irq和R8_fiqR14_fiq。6个状态寄存器,在ARM公司文件中它们的名称分别为CPSR,SPSR_svc,SPSR_abt,SPSR_und, SPSR_irq和SPSR_fiq。这些寄存器并不是全都可以在同一时间被访问的。处理器状态和操作模式决定了程序员可以访问哪些寄存器。具体情况见表1.2。表1.2 ARM各状态模式下的寄存器1.2.7 ARM处理器的异常向量列表通常,将一张异常向量列表至于首地址处,当产生异常响应时,ARM处理器会自动跳转到对应地址执行程序,见表1.3。表1.3 异常向量列表中断处理采用“三级跳”方式。首

43、先跳转到0 x00000018处执行中断跳转指令;继而以0 x00000018处所存地址跳转至中断服务子程序首地址存储处;最后跳转进中断服务子程序执行中断例程。嵌入式系统是基于计算机技术的强调体积、功耗、成本等综合因素的精简计算机系统。ARM处理器是32位嵌入式处理器的一种,它的特点是可移植性强,可以在不同厂家相同内核的芯片中轻松切换,功耗极低,功能强大,低端可以作为高级单片机使用,高端功能可以与PC机媲美。第2章 基于ARM9的开发平台硬件介绍 2.1 开发板概述 2.2 电源 2.3 CPU最小系统 2.4 人机接口 2.5 设备间数据传输和IDE接口 2.6 数据采集和I/O端口控制 2

44、.7 其他 2.1 开发板概述开发板是基于ARM9芯片的EP9315,它带有丰富的外设接口,基本配置如下: ARM9内核工业级处理器EP9315; SDRAM 128 MB; Flash 64 MB可扩展; EEPROM IIC接口; LCD控制器; VGA接口 1个; LVDS接口 1个; 触摸屏接口; RS232 2个(3线); RS485 1个(4线); USB Host 3个; SPI接口(不向外部扩展); EIDE接口 2个; 扩展PS2接口; 88矩阵键盘接口; RTC实时时钟; 10/100M以太网口; 总线方式 CAN接口1个; A/D 8通道,采样10 bit分辨率; D/A

45、 2通道10位(其中一路作脉宽调制输出); I/O口 8路输入,8路输出(TTL或CMOS输出5 V电平); JTAG接口; IIS接口保留;开发板的方案框图如图2.1所示。图2.1 方案框图考虑到工业级与工控中稳定、高效的要求,故选择EP9315处理器。EP9315是高度集成的片上系统处理器,拥有先进的200 MHz的ARM920T处理器。ARM920T 的32位微处理器结构带有一个5阶管线,可以极低的功耗提供优异的性能。16K指令高速缓存和16K数据高速缓存可为现有的程序和数据提供零等待时间,或者也可被锁定,以确保对关键指令和数据的无延迟存取。对于那些具有指令存储器大小限制的产品,ARM9

46、20T的压缩型Thumb指令集有助于空间的充分利用和外部指令存储器使用的最大化。Maverick Crunch协处理器显著地提高了ARM920T 的单/双精度整数及浮点处理能力。在通过以太网处理数据,以及执行其他运算密集型计算和数据处理功能时,该协处理器可为EP9315提供必需的速度和性能。EP9315提供了丰富的外层接口模块,通过激活或中断,设计者能够对单一平台稍加修改后满足不同的产品设计需求,从而使设计方便简洁。该存储系统分为3部分,即:128 MB的SDRAM,64 MB的Flash和可配接EEPROM的IIC接口。SDRAM和Flash存储系统的设计均可按典型电路来实现。EP9315提

47、供了必要的接口。由于可以很容易地存取其内部的每一个字节,其中的Flash 采用NOR_Flash来实现。为防止因断电而丢失数据,我们通过IIC接口来使用EEPROM保存现场数据。显示平台提供了带有触摸屏接口的LCD接口、VGA接口和LVDS接口。EP9315提供了LCD的接口。采用专用D/A芯片ADV7123来实现VGA接口。通过LVDS接口来解决远距离传输的问题。系统还同时实现了两路RS232、1路RS485和3路USB接口。由于EP9315提供了相应的逻辑接口,因此硬件设计中重点要考虑采用相关芯片来满足接口电平的问题。EP9315直接提供了EIDE接口,实现重点在软件的驱动程序。PS2接口

48、用EP9315的GPIO口来形成,88矩阵键盘接口也由EP9315直接提供。EP9315的外层模块已包含了形成以太网接口的MAC控制器。具体功能可通过MII接口和网络接口芯片共同来完成。 为了实现CAN接口需要扩展对应接口和驱动芯片。 系统要求的A/D和D/A接口可通过对应接口芯片实现。 JTAG为调试接口,EP9315自身已提供。 8路输入和8路输出数字端口由EP9315的GPIO口来形成。 EP9315已自带了RTC实时时钟。软件部分包含ADS下所有的测试程序,如AD、DA、LCD、 LED、KEY、NOR_ Flash、IIC、UART、RS485、CAN、WATCHDOG、USB、RT

49、C等。还包括了Linux内核、驱动及文件系统等。Linux内核采用了稳定、流行的2.4.21版本,可以通过驱动及内核配置来实现多种文件系统,如RAMDISK、JFFS2、EXT2、QT等。2.2 电 源在开发板中主要使用的电源是电压为1.8 V、3.3 V、5 V、12 V和12 V的电源。(1) 1.8 V的电源用于给EP9315CPU芯片供电。使用Linear Technology 公司的LT1963A-1.8芯片,能提供1.5 A的工作电流。输入是3.3 V电源,输出是1.8 V。(2) 3.3 V、5 V、12 V和12 V的电源使用ATX标准电源供给。 2.3 CPU最小系统ARM芯

50、片采用Cirrus Logic公司的EP9315,该芯片是目前集成外设接口最全的ARM9芯片。具有200 MHz的ARM920T微处理器,有支持Linux、WindowsCE和其他嵌入式操作系统的存储器管理单元MMU。EP9315的ARM920T内核工作电压为1.8 V,输入/输出(I/O)电压为3.3 V,根据不同的运行速度,功耗在100750 mW之间。EP9315的内部结构如图2.2所示。图2.2 EP9315内部结构图(1) SDRAM芯片采用三星公司的512 MB的K4S511632B-TC,它的最大工作频率是133 MHz,刷新周期为64 ms。可以按照128 MB4、64 MB8

51、或是32 MB16的方式组织。三种组织方式的行地址均是A0A12,列地址分别是A0A9,A11,A12;A0A9,A11和A0A9。(2) Flash存储器采用Intel的28F256J3C125,是256 MB的NOR_Flash。 2.4 人 机 接 口人机接口有PS2接口、88键盘接口、触摸屏和显示接口。(1) PS2接口和EP9315的SPI接口共用相同的管脚。使用相应的功能时通过跳线选择。(2) EP9315有专门的键盘扫描接口,能够提供88键盘输入。(3) EP9315的触摸屏接口具有12 bit A/D转换器,可以提供系统触摸屏的坐标信号和反馈信号。(4) 显示接口提供VGA、L

52、CD和LVDS接口。3种显示方式的显示信号均由EP9315的LCD接口信号提供。通过ADV7123 芯片和SN75LVDS81 芯片分别转换为VGA显示信号和LVDS信号。2.5 设备间数据传输和IDE接口设备间数据的传输接口有2个RS232接口、1个双向RS485接口、3个USB主机接口、1个SPI接口(与PS2接口共用)、1个10/100 M以太网接口和1个CAN接口。(1) EP9315 提供3个串口,分别用于2个RS232和1个RS485接口。只是使用了不同的驱动器,RS232信号使用MAX3223芯片驱动,双向RS485信号使用MAX488芯片驱动。(2) EP9315直接提供3个U

53、SB主机接口。3个USB接口都是兼容USB 2.0规范的全速接口,速率能够达到12 Mb/s。支持Open HCI 1.0规范。(3) EP9315提供以太网MAC层接口,以太网物理层芯片使用Realtek公司的RTL8201芯片。以太网接口支持1/10/100 Mb的传输速率,支持802.3以太网协议。(4) CAN接口使用飞利浦的SJA1000CAN总线控制器,传输速率可到达1 Mb,支持CAN 2.0规范,支持11 bit和29 bit的识别符,支持PeliCAN模式扩展。CAN信号收发器使用飞利浦的PCA82C251芯片,它能全兼容“ISO 1189824 V”标准,能够支持最少110

54、个节点连接。(5) EP9315提供IDE接口,可以挂载一个主设备和一个从设备,支持PIO mode 4、Multiword DMA mode 2和Ultra DMA mode 2操作模式。2.6 数据采集和I/O端口控制数据采集部分有A/D转换和D/A转换两部分。I/O端口控制可提供8路输入、8路输出的TTL 5 V控制电平。(1) A/D转换使用MAXIM公司的MAX1261芯片,该芯片提供8通道12bit的A/D转换器,转换速率可达250 kb/s。MAX1261与CPU的接口采用并行接口,可直接接到CPU的数据总线上。(2) D/A转换使用MAXIM公司的MAX5821芯片,该芯片提供

55、两个10 bit的D/A通道,使用400 kHz的I2C接口与主机连接。(3) I/O端口控制使用8255并口扩展芯片,输入/输出可以编程设置。2.7 其 他除了前面所列的硬件外,基于ARM9的开发平台硬件还包括RTC实时时钟使用的DS1337芯片,它可以提供12/24小时计时,使用两线的I2C接口与主机相连。系统还提供JATG调试接口。第3章 ADS下的硬件电路调试 3.1 概述 3.2 嵌入式系统的开发步骤及方法 3.3 测试内容清单及各部分实现功能 3.1 概 述ADS测试程序部分主要功能是: 在裸板上(未加载操作系统)利用编程手段测试各功能模块的电气连接是否正确; 通过这一工作中的源程

56、序,交代EP9315各片内外设的寄存器设置方式,为后继开发者提供切实有用的参考资料。ADS下的测试程序已在本开发板上实际运行过,其基本思路是:在对系统总体配置后,通过程序控制开发板上各外部硬件资源完成相应动作。同时在监控终端上显示测试过程中的输入、输出信息,以此了解开发平台硬件电路的实际运行情况。3.2 嵌入式系统的开发步骤及方法为向用户全面系统地阐述ADS下的测试程序,本节先概要地介绍嵌入式系统开发的典型过程和所使用的软、硬件工具。运行此测试程序所需要的设备及软件工具如下: PC机(Windows超级终端软件及机身COM口可用); ARM JTAG接口仿真器一台及相对应的控制台驱动程序; E

57、P9315嵌入式开发板一块; 串口线(连接开发板与PC机),并口线(连接仿真器与PC机); ADS 1.2开发套件。以上提及的硬件设备的连接情况见图3.1。图3.1 开发环境的搭建在路径开始 所有程序附件 通信中打开PC机上的超级终端,建立测试监控端。将超级终端配置为波特率为115200,数据位为8,奇偶校验为无,停止位为1,数据流控制为无,见图3.2。图3.2 超级终端的配置打开开发板电源,在仿真器控制台软件中完成开发板与PC机的连接,见图3.3。图3.3 控制台检测处理器内核至此,开发板已与PC主机建立了硬件上的连接。用户此时需要在ADS环境下完成实验工程的建立,以便进行源程序的编写、编译

58、以及链接,继而产生ARM可执行文件。首先建立实验平台,打开ADS开发套件中的CodeWarrior for ARM Developer Suite。平台可将所有的源码文件组织在一起,并能够决定最终生成文件存放的路径及输出的格式等。然后在CodeWarrior中新建一个工程,新建工程的方法有两种,一是在工具栏中单击“New”按钮,是在“File”菜单中选择“New”菜单。这样就会打开一个如图3.4所示的对话框。图3.4 建立工程 在这个对话框中为用户提供了7种可选择的工程类型。 ARM Executable Image:用于由ARM指令的代码生成一个ELF格式的可执行映像文件; ARM Obje

59、ct Library:用于由ARM指令的代码生成一个armar格式的目标文件库; Empty Project:用于创建一个不包含任何库或源文件的工程; Makefile Importer Wizard:用于将Visual C的nmake或GNU make文件转入到CodeWarrior IDE 工程文件; Thumb ARM Interworking Image:用于由ARM指令和Thumb指令的混和代码生成一个可执行的ELF格式的映像文件; Thumb Executable Image:用于由Thumb指令创建一个可执行的ELF格式的映像文件; Thumb Object Library:用于

60、由Thumb指令的代码生成一个armar格式的目标文件库。在对话框中选择ARM Executable Image,在“Project name”中输入工程文件名。点击“Location”文本框的“Set”按钮,浏览选择想要将该工程保存的路径。将这些设置好后,点击“确定”,即可建立一个新的工程。在工程窗口中点击右键添加工程所需的源程序。当选中要添加的文件时,会出现一个对话框,如图3.5所示,询问用户把文件添加到何类目标中。在这里,选择DebugRel目标。图3.5 添加工程文件图3.5所示的3类target解释如下: DebugRel:使用该目标,在生成目标的时候,会为每一个源文件生成调试信息;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论