摘要:阐述并总结嵌入式系统微处理器的特点、分类、开发技术。给出相关定义,并和通用处理器进行比较。归纳出嵌入式微处理器的基本情况及发展趋势。嵌入式微处理器技术是一项很难被垄断的技术,也是一项在未来信息技术应用中非常有潜力的技术,在此领域中应尽早形成自己的技术及产业标准。
嵌入式系统是将应用程序和操作系统与计算机硬件集成在一起的系统。这种系统具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时的和多任务的体系。嵌入式设备是指应用了嵌入式系统的计算机设备。从某种意义上来讲确实是大型计算设备的微缩。这肯定多少会带来相对性能上的减弱,但正是体积的微缩带给人们无法比拟的方便。
1 嵌入式处理器技术
嵌入式系统的核心是嵌入式微处理器。嵌入式处理器是用于在计算机之外的设备中提供添加的功能性的计算机芯片,它经常用于控制和监控领域。
一些嵌入式处理器是桌面市场传下来的东西,对于今天的PC已经过时,但对于处理功能要求较低的任务却绰绰有余。过去驱动TRS-80、AppleII和Commodore64这类早期PC的Z80和6502处理器现在仍是非常畅销的产品。老式的处理器没有淡出江湖,它们只是变为嵌入式了。因此,嵌入式微处理器市场异乎寻常地广阔。在PC市场的任何时刻,最快和最慢的微处理器之间性能比最多只有约3:1。与此相比,仅就32位嵌入式微处理器来说,这个比例为500:1。如果在4位和8位嵌入式处理器中进行比较的话,则为几千比1。随着这类处理器体积越来越小,价格越来越便宜,功能越来越强大,它们将进入到更多的设备和产品中。
嵌入式系统的广泛应用正是由于嵌入式微处理器具备以下4个特点:
①对实时多任务有很强的支持能力,能完成多任务并且中断响应时间较短,从而使内部的代码和实时内核的执行时间减少到最低限度。
②具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能。同时,这也有利于软件诊断。
③可扩展的处理器结构,能迅速地开发出满足应用的高性能嵌入式微处理器。
④嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如要求功耗为mW甚至μW级。
1.1 嵌入式处理器的种类
1.1.1 嵌入式微处理器(EMPU)
嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都作了各种增强。
和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在1块电路板上,称为单板计算机,如STD-BUS、PC104等。近年来,德国、日本的一些公司又开发出了“火柴盒”式名片大小的嵌入式计算机系列OEM产品。
嵌入式微处理器目前主要有Am186/88、386EX、SC400、POWERPC、68000、MIPS、ARM系列等。
1.1.2 嵌入式微控制器(MCU)
嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到1块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时器/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、FLASH、EEPR-OM等各种必要功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。
和嵌入式微处理器相比,微控制器的最大特点是单片化——体积大大减小,从而使功耗和成本下降,可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。
嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC 05/11/12/16、68300等。另外还有许多半通用系列,如支持USB接口的MCU8XC930/931、C54O、C541;支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。目前MCU占嵌入式系统约70%的市场份额。特别值得注意的是,近年来提供X86微处理器的著名厂商AMD公司将Aml86CC/CH /CU等嵌入式处理器称为Microcontroller,Motorola公司把以POWERPC为基础的PPC505和PPC555亦列入单片机行列,TI公司亦将其TMS320C-2XXX系列DSP作为MCU进行推广。
1.1.3 嵌入式DSP处理器(EDSP)
DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式领域。DSP应用正在从通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器有2个发展来源:一是DSP处理器经过单片化、EMC改造、增加片上外设,成为嵌入式DSP处理器,TI公司的TMS320C2000/C5000等属于此范畴;二是在通用单片机或SoC中增加I)SP协处理器,例如Intel公司的MCS-296和Siemens公司的TriCore。推动嵌入式DSP处理器发展的另一个因素是嵌入式系统的智能化,例如各种带有智能逻辑的消费类产品、生物信息识别终端、带有加解密算法的键盘、ADSL接入、实时语音压解系统、虚拟现实显示等。这类智能化算法一般都运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的长处所在。
嵌入式DSP处理器比较有代表性的产品是TI公司的TMS320系列和Motorola公司的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列、移动通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000目前已经发展成为DSP56000、DSP56100、DSP56200和DSP56300等几个不同系列的处理器。另外Philips公司也推出了基于可重构嵌入式DSP结构低成本、低功耗技术制造的R.E.A.L DSP处理器,特点是具备双Harvard结构和双乘/累加单元,应用目标是消费类产品。
1.1.4 嵌入式片上系统(SoC)
随着EDI的推广和VLSI设计的普及化,及半导体工艺的迅速发展,在1个硅片上实现更为复杂系统的时代已来临,这就是SoC。各种通用处理器内核将作为SoC设计公司的标准库,和许多其他嵌入式系统外设一样,成为VLSI设计中的标准器件,用标准的VHDL等语言描述,存储在器件库中。用户只需定义整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入式系统大部分可集成到1块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。
SoC可以分为通用和专用2类。通用系列包括Siemens公司的TriCore、Motorola公司的M-Core、某些ARM系列器件、Echelon公司和Motoro-la公司联合研制的Neuron芯片等。专用SoC一般专用于某个或某类系统中,不为一般用户所知。
1. 2 嵌入式处理器分类的变迁
国际上公认的通用嵌入式处理器有3大类:MCU、DSP和MPU(Micro-Processor Unit)。TI公司曾把处理器比作汽车:DSP是跑车,追求的是速度;MPU是轿车,追求的是经济性与速度的折中;MCU是满足特殊用途的车。
现在,随着对处理速度的要求越来越高,同时处理的数据更加复杂,出现了双核与多核处理器,通常为DSP+RISC芯核,如Infineon公司的TriCore(CISC+RISC+DSP)、Philips公司的Trimedia。随着一些大量应用市场的崛起,又出现了一些新名词,例如用于网络、通信设备的通信处理器(2000年左右兴起),数码相机、数码录像机等视频、音频流所需的媒体处理器(2003年兴起),智能手机上的应用处理器(2004年兴起)。
由于一些处理器不仅要有速度,还要有控制功能,又出现了DSP与MCU的结合品,主攻电机控制市场。如Freescale公司的DSP利用了其在MCU控制方面的技术;Microehip公司2004年2月也推出了这种产品,称为DSC(Digital Signal Controller)。
为了满足多芯核与SoC设计的需要,还有一些厂家专门供应处理器芯核的IP,芯核主要有16位、32位、64位,有软核与硬核。多芯核市场发展空间广阔,在美国Electronic Summit 2004上,做64位RISC IP的Tensilica公司总裁Chris Rowen博士说,未来10年,1块芯片中需要上千个处理器芯核,每秒要完成1012次运算。
2 嵌入式处理器芯片的开发
2.1 一般开发过程
尽管有几千种现成的芯片可供选择,但是许多设计者需要与众不同的特性。因此,他们开发自己的嵌入式芯片,即所谓的专用集成电路。
设计人员开始时需要从一家公司取得嵌入式微处理器的内核的授权,然后添加他自已应用特有的特性。例如,对于数字照相机处理器来说,他可能为这种电荷耦合设备的芯片添加1个控制器。又比如,对于具有Internet功能的家电处理器来说,可以添加1个Ethernet接口。设计者然后将他的设计交给“铸造厂”,即一家拥有“工厂”(芯片制造厂)的公司,并将部分制造量出售给其他公司。主要的制造厂有United Microelectronics公司、TSMC公司和IBM Microelectronics公司。
对于一些设计者来说,甚至这种灵活性还不够用。他们可以找到某些公司,这些公司拥有可高度定制嵌入式微处理器内核的许可证。利用这类内核,可以开发出用于特殊目的的新机器级指令。对于数字相机处理器而言,1条提高JPEG图像压缩率的指令具有很高的价值。对于MP3音乐播放器来说,1条加速音频解压缩率的指令具有同样的用处。然后,定制的设计交给“铸造厂”进行生产。
和通用计算机不同,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用对处理器的选择面前更具有竞争力。嵌入式处理器要针对用户的具体需求,对芯片配置进行裁剪和添加才能达到理想的性能;但同时还受用户订货量的制约。因此不同的处理器面向的用户是不一样的,可能是一般用户、行业用户或单一用户。
嵌入式处理器的发展也体现出稳定性,1个体系一般要存在8~lO年的时间。1个体系结构及其相关的片上外设、开发工具、库函数、嵌入式应用产品是一套复杂的知识系统,用户和半导体厂商都不会轻易地放弃1种处理器。
2.2 嵌入式系统的开发工具
嵌入式处理器是一个复杂的高技术系统,要在短时间内掌握并开发出所有功能是很不容易的,而市场竞争要求产品能够快速上市,这一矛盾要求嵌入式处理器能够有容易掌握和使用的开发工具平台,提高用户和程序员的时间一投入回报率。面对成百上千种处理器,选择是一个问题,学习掌握处理器结构及其应用更需要时间,因此以开发工具和技术咨询为基础的整体解决方案是迫切需要的。好的开发工具除能够开发出处理器的全部功能以外,还应当对用户是友好的。
嵌入式系统开发工具平台主要包括以下几类。
2.2.1 实时在线仿真系统
在计算机辅助设计非常发达的今天,实时在线仿真系统(InCircuit Emulator,ICE)仍是进行嵌入式应用系统调试最有效的开发工具。 ICE首先可以通过实际执行,对应用程序进行原理性检验,排除人难以发现的设计逻辑错误。ICE的另一个主要功能是在应用系统中仿真微控制器的实时执行,发现和排除由于硬件干扰等引起的异常执行行为。此外,高级的ICE带有完善的跟踪功能,可以将应用系统的实际状态变化、微控制器对状态变化的反应、以及应用系统对控制的响应等以一种录像的方式连续记录下来,以供分析,在分析中优化控制过程。很多机电系统难以建立精确有效的数字模型,或是建立模型需要大量人力,这时采用ICE的跟踪功能对系统进行记录和分析是一个快而有效的方法。
ICE不仅是软硬件排错工具,同时也是提高和优化系统性能指标的工具。高档ICE工具(如美国Nohau公司的产品)可根据用户投资裁减功能,亦可根据需要选择配置各种档次的实时逻辑跟踪器(Trace)、实时映像存储器(Shadow RAM)及程序效率实时分析功能(PPA)。
2.2.2 高级语言编译器
C语言作为一种通用的高级语言,大幅度提高了嵌入式系统工程的工作效率,充分发挥出嵌入式处理器日益提高的性能,缩短产品进入市场时间。另外,C语言便于移植和修改,使产品的升级和继承更迅速。更重要的是,采用C语言编写的程序易于在不同的开发者之间进行交流,从而促进了嵌入式系统开发的产业化。
区别于一般计算机中的C语言编译器,嵌入式系统中的C语言编译器要专门进行优化,以提高编译效率。优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程序长5%~20%。编译效率的不同,是区别嵌入式系统C编译器性能差别的重要根据之一。而C编译器残余的5%~10%效率差别,完全可以由现代微控制器的高速度、大存储器空间以及产品提前进入市场来弥补。
新型的微控制器指令速度不断提高,存储器空间也相应加大,已经达到甚至超过了目前的通用计算机中的微处理器,为嵌入式系统工程采用过去一直不敢问津的C++语言创造了条件。C++语言强大的类、继承等功能更便于实现复杂的程序功能。但是C++语言为了支持复杂的语法,在代码生成效率方面不免有所下降。为此,1995年初在日本成立的Embedded C++技术委员会经过几年的研究,针对嵌入式应用制订了减小代码尺寸的EC++标准。EC++保留了C++的主要优点,提供对C++的向上兼容性,并满足嵌入式系统设计的一些特殊要求。在嵌入式高级语言编译器方面处于领先地位的Tasking公司,是EC++技术委员会成员之一,也是最先推出EC++产品的公司。
C/C++/EC++引入嵌入式系统,使得嵌入式开发和个人计算机、小型机等在开发上的差别正在逐渐消除,软件工程中的很多经验、方法乃至库函数可以移植到嵌入式系统。在嵌入式开发中采用高级语言,还使得硬件开发和软件开发可以分工,从事嵌入式软件开发不再必须精通系统硬件和相应的指令集汇编。
另一种高级语言Java的发展则具有戏剧性。Java本来是为设备独立的嵌入式系统设计、为了提高程序继承性的语言,但是目前基于Java的嵌入式开发工具代码生成长度要比嵌入式C编译工具长10倍以上。因此EC++很可能在未来的一段时间内仍是嵌入式系统的主流。
2.2.3 源程序模拟器
源程序模拟器是在广泛使用的、人机接口完备的工作平台上,如小型机和PC,通过软件手段模拟执行某种嵌入式处理器内核编写的源程序的测试工具。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,供程序员检查;高级的模拟器可以利用计算机的外部接口模拟出处理器的I/O电气信号。不同档次和功能模拟器工具价格差距巨大。模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和测试工具。但值得注意的是,模拟器毕竟是以一种处理器模拟另一种处理器的运行,在指令执行时间、中断响应、定时器等方面很可能与实际处理器有较大差别。另外,它无法和ICE一样,仿真嵌入式系统在应用系统中的实际执行情况。
结语
嵌入式系统是将计算机直接嵌入到应用系统中,是信息技术的最终产品。嵌入式系统的核心就是嵌入式处理器。嵌入式系统是信息产业走向21世纪知识经济时代的最重要的经济增长点之一,是一个不可垄断的工业,对中国的信息产业来说充满了机遇和挑战。世界是多样化的,尤其是已经进入后PC时代——无所不在的计算(nomadic computing)将使嵌入式处理器遍及人们能够想象得到的各个角落,因此,每种处理器都有存在的理由,都有可伸展的方向。这一点应特别引起中国信息产业界的关注。