1.2 嵌入式系统的硬件基础
嵌入式系统硬件一般包括处理器、存储器、外设器件和电源等。本节首先会对嵌入式处理器进行介绍,并重点介绍ARM处理器的优点。
1.2.1 嵌入式处理器
嵌入式系统的核心部件是各种类型的嵌入式处理器,据不完全统计,到2000年底全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有30多个系列,其中8051体系占有多半。生产8051单片机的半导体的厂家有20多个,共生产350多种衍生产品,仅Philips公司就有近100种。现在几乎每个半导体制造商都生产嵌入式处理器,而且越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般在64KB~16MB之间,处理速度在0.1MIPS~2000MIPS之间,常用封装在8个引脚到144个引脚之间。根据其现状,嵌入式处理器可以分成下面几类。
1.2.2 嵌入式微处理器
嵌入式微处理器(Embedded MicroProcessor Unit,EMPU)的基础是通用计算机中的CPU。在应用中,通常将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的功能,这样可以大幅度减小系统的体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本一样,但在工作温度、抗电磁干扰、可靠性等方面都做了增强。和工业控制计算机相比,嵌入式微处理器虽然具有体积小、重量轻、成本低和可靠性高的优点,但是它在电路板上必须包括ROM、RAM、总线接口和各种外设等器件。嵌入式微处理器及其存储器、总线和外设等安装在一块电路板上,称为单板计算机,如STD-BUS、PC104等。近年来,德国、日本的一些公司又开发出了类似“火柴盒”式名片大小的嵌入式计算机系列OEM产品,台湾研华公司也推出了类似的模组化系统SOM(System On Module)。
嵌入式处理器目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS和ARM系列等。
嵌入式微处理器又可分为CISC和RISC两类。大家熟悉的大多数台式PC都是使用CISC微处理器的,如Intel的x86。RISC结构体系有两大主流:Silicon Graphics公司(硅谷图形公司)的MIPS技术,ARM公司的Advanced RISC Machines技术。此外Hitachi(日立公司)也有自己的一套RISC技术,叫做SuperH。
RISC和CISC是目前设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件、硬件、编译时间和运行时间等诸多因素中做到某种平衡,以求达到高效的目的,但二者采用的方法不同,因此,在很多方面差异很大,主要表现在以下几个方面。
(1)指令系统
RISC设计者把主要精力放在了那些经常使用的指令上,尽量使它们具有简单、高效的特色。对不常用的功能,则通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低,但可以利用流水技术和超标量技术加以改进和弥补。而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能,因此处理特殊任务效率较高。
(2)存储器操作
RISC对存储器操作有限制,能使控制简单化;而CISC机器的存储器操作指令多,操作直接。
(3)程序
RISC汇编语言程序一般需要较大的内存空间,并且实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。
(4)中断
RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后才响应中断。
(5)CPU
RISC CPU包含较少的单元电路,因而面积小、功耗低;而CISC CPU包含丰富的电路单元,因而功能强、面积大、功耗大。
(6)设计周期
RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。
(7)用户使用
RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,容易实现特殊功能。
(8)应用范围
由于RISC指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。
1.2.3 嵌入式微控制器
嵌入式微控制器(MicroController Unit,MCU)又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash、RAM和EEPROM等各种必要功能模块。为满足不同的应用需求,一般一个系列的单片机具有多种衍生产品,并且每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,从而减少功耗和成本。
和嵌入式微处理器相比,微控制器的最大特点是单片化,这样其体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上资源一般比较丰富,适合于控制,因此称微控制器。
嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16和68300等。另外还有许多半通用系列,如支持USB接口的MCU 8XC930/931、C540和C541。目前MCU占嵌入式系统约70%的市场份额。
特别值得注意的是近年来提供X86微处理器的著名厂商AMD公司,将Am186CC/CH/CU等嵌入式处理器称为MicroController。同时Motorola公司把以Power PC为基础的PPC505和PPC555也列入单片机行列,TI公司也将其TMS320C2XXX系列的DSP作为MCU进行推广。
1.2.4 嵌入式DSP处理器
DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,因而编译效率较高,指令执行速度也较高。在数字滤波、FFT和谱分析等方面,DSP算法正在大量进入嵌入式领域,DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器有两个发展来源:一是DSP处理器经过单片化、EMC改造和增加片上外设成为嵌入式DSP处理器,TI的TMS320C2000/C5000等就属于此范畴;二是在通用单片机或片上系统(SOC)中增加DSP协处理器,例如Intel的MCS-296。
推动嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)发展的一个重要因素是嵌入式系统的智能化,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘,ADSL接入、实时语音压解系统,虚拟现实显示等。这类智能化算法运算量一般都较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的长处所在。
嵌入式DSP处理器比较有代表性的产品有Texas Instruments的TMS320系列和Motorola的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列、移动通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000目前则已经发展成为了DSP56100、DSP56200和DSP56300等几个不同系列的处理器。
DSP的设计者们把重点放在了处理连续的数据流上。在嵌入式应用中,如果强调对连续的数据流的处理及高精度复杂运算,则应该选用DSP器件。
1.2.5 嵌入式片上系统
随着VLSI设计的普及化及半导体工艺的迅速发展,已经可以在一块硅片上实现一个更为复杂的系统,这就是System On Chip(SOC)。各种通用处理器内核将作为SOC设计公司的标准库,和其他嵌入式系统外设一样,成为VLSI设计中的一种标准的器件,用标准的VHDL等语言描述,并存储在器件库中。用户只需定义出整个应用系统,并在仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入式系统的大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,这对于减小体积和功耗、提高可靠性非常有利。
SOC可以分为通用和专用两类。通用系列包括Motorola的M-Core、某些ARM系列器件、Echelon和Motorola联合研制的Neuron芯片等。专用SOC一般专用于某个或某类系统中,不为一般用户所知。一个有代表性的产品就是Philips的SmartXA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU制作在一块硅片上,形成一个可加载Java或C语言的专用的SOC,可用于公众互联网(如Internet)的安全方面。
1.2.6 嵌入式处理器的选择
针对各种嵌入式设备的需求,各个半导体芯片厂商都投入了很大的力量去研发和生产适用于这些设备的CPU及协处理器芯片。用于嵌入式设备的处理器必须高度紧凑、低功耗和低成本。但针对每一类应用来说,开发者对处理器的选择都是多种多样的,掌上电脑就是一例,如表1-1所示。
表1-1 部分掌上电脑处理器一览
与全球PC市场不同的是,没有一种微处理器和微处理器公司可以主导嵌入式系统,仅以32位的CPU而言,就有100种以上嵌入式微处理器。由于嵌入式系统设计的差异性极大,因此对其选择也是多样化的。设计者在选择处理器时要考虑的主要因素有以下几点。
1. 调查市场上已有的CPU供应商
有些公司如Motorola、Intel、AMD很有名气,而一些小的公司如QED虽然名气很小,但也能生产很优秀的微处理器。另外一些公司,如ARM、MIPS等,只设计但并不生产CPU,他们把生产权授予世界各地的半导体制造商。ARM是另外一种近年来在嵌入式系统有影响力的微处理器制造商,它的设计非常适合于小的电源供电系统。Apple在Newton手持计算机中就使用了ARM,另外有几款数字无线电话也在使用ARM。
2. 处理器的处理速度
一个处理器的性能取决于多个方面的因素:时钟频率、内部寄存器的大小、指令是否对等处理所有的寄存器等。对于许多需用处理器的嵌入式系统设计来说,目标不是在于挑选速度最快的处理器,而是在于选取能够完成作业的处理器和I/O子系统。如果你的设计是面向高性能的应用,那么建议你考虑某些新的处理器,其价格极为低廉,如IBM和Motorola的Power PC。以前Intel的i960也是销售极好的RISC高性能芯片,但是最近几年却遇到强劲的对手,让位于MIPS、SH及后起之星ARM。
3. 技术指标
当前,许多嵌入式处理器都集成了外围设备的功能,从而减少了芯片的数量,进而降低了整个系统的开发费用。开发人员首先要考虑的是,系统所要求的一些硬件能否无须过多的胶合逻辑(Glue Logic)就可以连接到处理器上。其次是考虑该处理器的一些支持芯片,如DMA控制器、内存管理器、中断控制器、串行设备、时钟等的配套。
4. 处理器的低功耗
嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、PDA、手机、GPS导航器、智能家电等电子产品,这些产品中微处理器的典型的特点是高性能、低功耗。目前,许多CPU生产厂家已经进入了这个领域。
5. 处理器的软件支持工具
仅有一个处理器,没有较好的软件开发工具的支持也是不行的,因此选择合适的软件开发工具对系统的实现会起到很好的作用。
6. 处理器是否内置调试工具
处理器如果内置调试工具可以大大地缩小调试周期,降低调试的难度。
7. 处理器供应商是否提供评估板
许多处理器供应商可以提供评估板来验证你的理论是否正确,决策是否得当。