(1)嵌入式微处理器(embedded microprocessor unit, empu)
嵌入式微处理器采用“增强型”通用微处理器。由于嵌入式系统通常应用于环境比较恶劣的环境中,因而嵌入式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。但是,嵌入式微处理器在功能方面与标准的微处理器基本上是一样的。根据实际嵌入式应用要求,将嵌入式微处理器装配在专门设计的主板上,只保留和嵌入式应用有关的主板功能,这样可以大幅度减小系统的体积和功耗。和工业控制计算机相比,嵌入式微处理器组成的系统具有体积小、重量轻、成本低、可靠性高的优点,但在其电路板上必须包括rom、ram、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。由嵌入式微处理器及其存储器、总线、外设等安装在一块电路主板上构成一个通常所说的单板机系统。嵌入式处理器目前主要有am186/88、386ex、sc-400、power pc、68000、mips、arm系列等。
(2)嵌入式微控制器(microcontroller unit, mcu)
嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某种微处理器内核为核心,根据某些典型的应用,在芯片内部集成了rom/eprom、ram、总线、总线逻辑、定时/计数器、看门狗、i/o、串行口、脉宽调制输出、a/d、d/a、flash ram、eeprom等各种必要功能部件和外设。为适应不同的应用需求,对功能的设置和外设的配置进行必要的修改和裁减定制,使得一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都相同,不同的是存储器和外设的配置及功能的设置。这样可以使单片机最大限度地和应用需求相匹配,从而减少整个系统的功耗和成本。和嵌入式微处理器相比,微控制器的单片化使应用系统的体积大大减小,从而使功耗和成本大幅度下降、可靠性提高。由于嵌入式微控制器目前在产品的品种和数量上是所有种类嵌入式处理器中最多的,而且上述诸多优点决定了微控制器是嵌入式系统应用的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。通常,嵌入式微处理器可分为通用和半通用两类,比较有代表性的通用系列包括8051、p51xa、mcs-251、mcs-96/196/296、c166/167、68300等。而比较有代表性的半通用系列,如支持usb接口的mcu 8xc930/931、c540、c541;支持i2c、can总线、lcd等的众多专用mcu和兼容系列。目前mcu约占嵌入式系统市场份额的70%。
(3)嵌入式dsp处理器(embedded digital signal processor, edsp)
在数字信号处理应用中,各种数字信号处理算法相当复杂,这些算法的复杂度可能是o(nm)的,甚至是np的,一般结构的处理器无法实时的完成这些运算。由于dsp处理器对系统结构和指令进行了特殊设计,使其适合于实时地进行数字信号处理。在数字滤波、fft、谱分析等方面,dsp算法正大量进入嵌入式领域,dsp应用正从在通用单片机中以普通指令实现dsp功能,过渡到采用嵌入式dsp处理器。嵌入式dsp处理器有两类:(1)dsp处理器经过单片化、emc改造、增加片上外设成为嵌入式dsp处理器,ti的tms320c2000/c5000等属于此范畴;(2)在通用单片机或soc中增加dsp协处理器,例如intel的mcs-296和infineon(siemens)的tricore。另外,在有关智能方面的应用中,也需要嵌入式dps处理器,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘,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结构和双乘/累加单元,应用目标是大批量消费类产品。
(4)嵌入式片上系统(system on chip, soc)
随着edi的推广和vlsi设计的普及化,以及半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就产生了soc技术。各种通用处理器内核将作为soc设计公司的标准库,和其他许多嵌入式系统外设一样,成为vlsi设计中一种标准的器件,用标准的vhdl、verlog等硬件语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除某些无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简单,对于减小整个应用系统体积和功耗、提高可靠性非常有利。soc可分为通用和专用两类,通用soc如infineon(siemens)的tricore、motorola的m-core,以及某些arm系列器件,如echelon和motorola联合研制的neuron芯片等;专用soc一般专用于某个或某类系统中,如philips的smart xa,它将xa单片机内核和支持超过2048位复杂rsa算法的ccu单元制作在一块硅片上,形成一个可加载java或c语言的专用soc,可用于互联网安全方面。
a. 非实时操作系统
早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中段来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其他中断。
实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过fifo队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要ram/rom的额外开销,因而在简单的嵌入式应用被广泛使用。
b. 实时操作系统
实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。“在确定的时间内”是该定义的核心。也就是说,实时系统是对响应时间有严格要求的。
实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。实时系统有两种类型:软实时系统和硬实时系统。软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。通常,大多数实时系统是两者的结合。实时应用软件的设计一般比非实时应用软件的设计困难。实时系统的技术关键是如何保证系统的实时性。
实时多任务操作系统是指具有实时性、能支持实时控制系统工作的操作系统。其首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。实时操作系统具有如下功能:任务管理(多任务和基于优先级的任务调度)、任务间同步和通信(信号量和邮箱等)、存储器优化管理(含rom的管理)、实时时钟服务、中断管理服务。实时操作系统具有如下特点:规模小,中断被屏蔽的时间很短,中断处理时间短,任务切换很快。