ARM嵌入式技术原理与应用第一章嵌入式系统介绍1.1嵌入式系统(Embeddedsystem)嵌入式系统有时也称为嵌入式计算机系统,指的是专用计算机系统。个人电脑≠嵌入式系统(通用)(专用,嵌入到对象体中)嵌入式系统的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。以上定义突出了它的“嵌入性”和“专用性”,将其与通用计算机区分开。1.2嵌入式系统的特点①嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与各行业的具体应用相结合的产物。②嵌入式系统通常是面向用户、面向产品、面向特定应用的。嵌入式系统CPU都具有功耗低、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而使整个系统设计趋于小型化,移动能力日益增强,与网络的关系也越来越密切。③嵌入式系统和具体应用有机地结合在一起,其升级换代也是和具体产品同步进行的。因此嵌入式系统产品一旦进入市场,就具有较长的生存周期。④为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机中,而不是存储于磁盘等载体中。⑤嵌入式系统本身并不具备在其上进一步开发的能力。1.3嵌入式系统发展历程嵌入式计算机系统与通用计算机系统目前属于计算机技术的两大分支。嵌入式系统的发展大致经历了4个阶段:第一阶段:单片微型计算机(SCM)阶段,即单片机时代。这一阶段的嵌入式系统硬件是单片机,软件停留在无操作系统阶段,采用汇编语言实现系统的功能。这阶段的主要特点是:系统结构和功能相对单一、处理效率低、存储容量也十分有限,几乎没有用户接口。第二阶段:微控制器(MUC)阶段,主要的技术发展方向是:不断扩展对象系统要求的各种外围电路和接口电路,突显其对象的智能化控制能力。这一阶段主要以嵌入式微处理器为基础、以简单操作系统为核心,主要特点是硬件使用嵌入式微处理器,微处理器的种类繁多,通用性比较弱;系统开销小,效率高;软件采用嵌入式操作系统,这类操作系统有一点的兼容性和扩展性;这个阶段的嵌入式产品的应用软件比较专业化,用户界面不够友好。第三阶段:片上系统(SOC),主要特点是:嵌入式系统能够运行于各种不同类型的微处理器上,兼容性好,操作系统的内核小,效果好。第四阶段:以Internet为标志的嵌入式系统。嵌入式网络化主要表现在两个方面,一方面是嵌入式处理器集成了网络接口,另一方面是嵌入式设备应用于网络环境中。1.4嵌入式系统基本结构嵌入式系统的基本结构一般可分为硬件和软件两部分。1.4.1嵌入式系统的硬件包括嵌入式核心芯片、存储器系统及外部接口。1、嵌入式处理器:是构成系统的核心部件,系统工程中的其他部件均在它的控制和调度下工作。处理器通过专用的接口获取监控对象的数据、状态等各种信息,并对这些信息进行计算、加工、分析和判断并作出相应的控制决策,再通过专用接口将控制信息传送给控制对象。2、嵌入式存储器:存储器的类型将决定整个嵌入式系统的操作和性能,因此存储器的选择非常重要。无论系统是采用电池供电还是由市电供电,应用需求将决定存储器的类型(易失性或非易失性)以及使用目的(存储代码、数据或者两者兼有)。对于较小的系统,微控制器自带的存储器就有可能满足系统要求,而较大的系统可能要求增加外部存储器。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读/写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。3、嵌入式系统的输入/输出接口:一般嵌入式处理器上集成了输入/输出接口,但是外设需要外接。例如,大多数的嵌入式通信控制器集成了以太网接口,但是收发器需要外部电路。1.4.2嵌入式系统的软件嵌入式系统的软件主要包括两大部分:嵌入式操作系统和应用软件。1、BSP在嵌入式操作系统中,BSP以嵌入式操作系统“驱动程序”的身份出现,在系统启动之初,BSP所做的工作类似于通用计算机的BIOS,它也负责系统加电,各种设备初始化、操作系统装入等。但BSP与BIOS是不同的,主要区别有以下几个方面:①BSP是与操作系统相适应的,但是BIOS却是和所在的主板相适应的,也就是说BSP的作用是让硬件支持某种嵌入式操作系统,而BIOS的作用是让所有操作系统都能够在其生产的硬件上正常工作。②开发软件人员可以对BSP做一定的修改,加入自己想加入的一些东西,比如各类驱动程序,但BIOS一般不能修改,开发人员只能对其进行升级或者更改配置。相对来讲,嵌入式开发人员对于BSP的自主性更大。③一个BSP对应一种硬件和一种嵌入式操作系统,即同一个处理器可能有多个BSP,同一个嵌入式操作系统针对不同的处理器也需要不同的BSP。而一个BIOS是对应一种硬件和多个操作系统,也就是说BIOS是根据硬件在一定历史条件下设计的,与操作系统无关。④BSP里可以加入非系统必需的东西,比如一些驱动程序甚至一些应用程序,但通用计算机的主板BIOS一般不会有这些东西。2、嵌入式操作系统嵌入式操作系统是嵌入式系统极为重要的组成部分,是嵌入式系统的灵魂。经历了4个比较明显的阶段:第一阶段:无操作系统的嵌入算法阶段,通过汇编语言编程对系统进行直接控制。第二阶段:以嵌入式CPU为基础、简单操作系统为核心的嵌入式系统。第三阶段:通用的嵌入式实时操作系统阶段,该阶段以嵌入式操作系为核心。第四阶段:以基于Internet为标志的嵌入式系统,这还是一个正在发展的阶段。嵌入式操作系统一般具有体积小、实时性强、可剪裁、可靠性高、功耗低等特点。实时性是嵌入式系统最重要的要求之一。实时操作系统又分为软实时和硬实时两种。常用的嵌入式操作系统有:VxWorks、WindowsCE、嵌入式Linux、嵌入式实时内核uC/os等。3、应用软件嵌入式系统领域的应用软件是为了解决某些特定的应用性问题而设计出来的软件,如浏览器、播放器等。嵌入式系统的应用软件与通用计算机软件相比,由于嵌入式系统的资源有限,致使对应用软件有更多苛求,要求尽量做到高效、低耗。而且嵌入式系统的应用软件还存在着操作系统的依赖性,一般情况下,不同操作系统之间的软件必须进行修改才能移植,甚至需要重新编写。嵌入式系统上的处理器单元称为嵌入式处理器。实际上,处理单元的种类很多,包括嵌入式微处理器、嵌入式微控制器、数字信号处理器、可编程器件及其组合。嵌入式处理器运行嵌入式系统的系统软件和应用软件。嵌入式处理器有如下的共性:1、处理器内核(内部);2、地址总线;3、数据总线;4、控制类总线;5、处理器本身的辅助支持电路,如时钟、复位等;6、片上I/O接口电路。注:有的嵌入式微控制器上集成了存储器和I/O接口电路,不需要扩展,因此没有地址总线、数据总线、控制总线扩展接口。第二章嵌入式处理器2.1嵌入式处理器的分类1、嵌入式微控制器(EMCU)嵌入式微控制器又称单片机,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时、计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、FlashRAM等各种必要功能和外设。目前,比较知名的嵌入式微控制器有Intel公司的MCS-51系列、Freescale公司的68HCXX系列、Microchip的PIC系列等。嵌入式微控制器在小系统应用时,通常是控制应用的一种理想解决方案,因为可以利用它以及很少的附加电路来构建一个嵌入式系统。8位微控制器可用于过程控制应用,比如用在电动玩具、智能卡、仪表中。如果对处理能力和存储器容量的要求很高,就需要选择16位或32位微控制器。嵌入式微控制器处理能力差一些,功能比较全,但是指标较低、价格比较低,适合应用于简单控制系统,如家用电器、工业仪表与简单的自动化装置。2、嵌入式微处理器(EMPU)嵌入式微处理器的基础是通用计算机中的CPU。与嵌入式微控制器相比,嵌入式微处理器的处理能力比较强,字长一般是16位或32位,如ARM、、Atmel、Intel、Freescale、NationalSemiconductors等公司推出了许多可用的嵌入式微处理器。嵌入式微处理器的特点如下:1、需要扩展。要使用嵌入式微处理器来设计开发嵌入式系统,一般需要大量的外围电路,包括存储器和I/O接口电路。2、处理能力一般大于微控制器。由于集成的外部接口比较少,通常嵌入式微处理器的处理能力较强,芯片上集成了处理器内核,通常具有更高的时钟频率和较宽的字长。3、寻址能力大于微控制器。4、一般适用于高端应用。5、型号多。6、通用性强。3、嵌入式DSP处理器(EDSP)DSP是特别为处理信号设计的处理器,而不是为一般应用设计的。对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。DSP体系结构需要具备以下特点:1、能够非常快速地计算出总和的乘加(MAC)模块,而通用处理器可能要花费多个周期才能计算出一个乘积。2、支持通过移位操作完成对位的处理。3、独立的地址生成单元产生存储器单元的地址,这样使访问存储器变得更加快速。4、专门的硬件实现循环。通过硬件可以增加循环计数器,将计数值与最终目标值进行比较,执行循环之后再转到循环顶部等。4、可编程器件现在可编程器件的集成度达到了百万门电路或更多,甚至片上集成了处理器、数字信号处理器等。利用可编程器件实现嵌入式系统的处理器子系统可以提高系统的集成度,复杂的外部电路都可以集成在可编程器件上,甚至包括CPU,这样的系统通常称为SoC。可编程器件的最大优点是提高了嵌入式系统硬件电路板的集成度,同时减小了电路板的面积。传统的嵌入式系统的硬件除了CPU和存储器之外,在电路板上还大面积地安装了I/O逻辑电路、译码器等。通过可编程器件的使用,即可减少外部逻辑电路,从而缩减电路板的面积,增加系统的可靠性。2.2嵌入式处理器的构架标准的嵌入式系统架构有两大体系:精简指令集计算机(reducedinstructionsetcomputer,RISC)处理器复杂指令集计算机(complexinstructionsetcomputer,CISC)处理器.这两种指令集结构的重要区别之一是其指令功能的强弱不同。2.2.1CISC计算机指令集CISC结构追求的目标是强化指令功能,减少程序的指令条数,从而达到提高性能的目的。CISC体系的设计思想就是基于使用大量的指令,包括复杂指令。它的优点是进行程序设计比较容易,因为每一个简单的或者复杂的操作都有相应的指令。如为了适应所处理数据的不同长度,CISC设计有8位、16位甚至32位的指令,还有专门用于浮点数运算的指令。对程序设计者来书,CISC系统可用简单的指令组合解决一个比较复杂的问题。CISC指令系统趋于多用途、强功能化,且面向高级语言发展。但它又把指令系统带向庞大化、复杂化,使得设计处理器的电路非常复杂,设计周期长、难保正确性、维护困难。2.2.2RISC计算机指令集在对各条指令使用频率的统计分析中发现,最常使用的是一些比较简单的指令,而这些指令数占指令总数的20%,但它们在程序中出现的频率却占80%。这个结论后来被称为“20%对80%率”。因此如果从指令系统中去掉一些不常用的指令,特别是那些复杂的指令就可以降低处理器电路的复杂程度,使处理器以更快的速度、更高的频率运行,从而提高整个计算机的执行速度。根据这个设计指导思路设计出来的处理器被称为精简指令集计算机系统即RISC。RISC机的特点:①选取一些使用频率高、很有用但不复杂的简单指令。②指令长度固定,指令格式种类少,寻址方式种类少。③只有取数/存数指令会访问存储器,其余指令的执行都在寄存器之间进行,即限制内存访问。④CPU中通用寄存器数量相当多。⑤大部分指令在一个机器周期内完成。⑥采用流水线组织。⑦以硬布线控制逻辑为主,不用或少用微程序控制。⑧特别重视编译工作,以简单有效的方式支持高级语言,减少程序执行时间。RISC和CISC的差异:①指令系统:RISC设计者把主要精力放在那些经常使用的指令