嵌入式系统通常定义为以应用为中心,以计算机技术为基础,软/硬件可剪裁,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统主要由嵌入式处理器、外围硬件设备、嵌入式操作系统及用户应用软件等部分组成,其分层结构如图1-11所示。嵌入式系统因其通常都嵌在主要设备之中而得名。
图1-11 嵌入式系统的分层结构
通常的嵌入式系统的定义中有4个基本特点。
【应用中心的特点】 嵌入式系统是嵌入一个设备或一个过程中的计算机系统,与外部环境密切相关。这些设备或过程对嵌入式系统会有不同的要求。例如,消费电子产品的嵌入式软件与工业控制的嵌入式软件差别非常大,特别是响应时间,它们有些要求时限长,有些要求时限短,有些要求严格,有些要求宽松,这些不同的要求体现了嵌入式系统面向应用的多样化。这个特点可以从用户方和开发方两个方面考虑。
用户方要求:操作简单,用户打开电源即可直接使用其功能,不需要进行二次开发或仅需要进行少量配置操作;专门完成一个或多个任务;对体积、功耗、价格和开发周期有要求;实时与环境进行交互;安全可靠,软/硬件错误不能使系统崩溃。
开发方要求:软件与硬件协同并行开发;多种多样的微处理器(MPU);实时操作系统的多样性;与计算机相比,可利用系统资源很少;应用支持很少;要求特殊的开发工具;调试很容易。
【计算机系统的特点】 嵌入式系统必须是能满足对象系统控制要求的计算机系统,这里的计算机也包括运算器、控制器、存储器和I/O接口。嵌入式系统的最基本支撑技术包括集成电路设计技术、系统结构技术、传感与检测技术、实时操作系统(RTOS)技术、资源受限系统的高可靠软件开发技术、系统形式化规范与验证技术、通信技术、低功耗技术,以及特定应用领域的数据分析、信号处理和控制优化等技术。因此,嵌入式系统本质上也是各种计算机技术的集大成者。
【软/硬件可裁剪的特点】 嵌入式系统针对的应用场景很多,因此设计指标要求(功能、可靠性、成本、体积、功耗等)差异极大,实现上很难有一套方案满足所有的系统要求。因此,根据需求的不同,灵活裁剪软/硬件,组建符合要求的最终系统是嵌入式技术发展的必然趋势。
【专用性的特点】 嵌入式系统的应用场合对可靠性、实时性、低功耗要求较高。例如,它对实时多任务有很强的支持能力,能完成多个任务,并且有较短的中断响应时间,从而使内部的代码和实时内核的可执行时间减少到最低限度;它具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已经模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,有利于软件诊断;嵌入式微控制器的必需功耗很低,无线通信设备中靠电池供电的嵌入式系统更是如此。这些就决定了服务于特定应用的专用系统是嵌入式系统的主流模式。它并不强调系统通用性(20世纪80年代的微型计算机技术的特性之一就是通用性)。这种专用性通常导致嵌入式系统是一个软件与硬件紧密耦合的系统,因为只有这样才能更有效地提高整个系统的可靠性并降低成本。
因此,可以说嵌入式系统是计算机技术、微电子技术与行业技术相结合的产物,是一个技术密集、不断创新的知识集成系统,也是一个面向特定应用的软/硬件综合体。
嵌入式系统的其他定义如下。
(1)IEEE(电气与电子工程师协会)对嵌入式系统的定义:嵌入式系统是“用于控制、监视或辅助操作机器和设备的装置”。
(2)中国计算机学会对嵌入式系统的定义:嵌入式系统是以嵌入式应用为目的的计算机系统,可以分为芯片级、板卡级、系统级。芯片级嵌入的是含程序或算法的微控制器;板卡级嵌入的是系统中的某个核心模块;系统级嵌入的是主计算机系统。
(3)国内有学者认为,将一套计算机控制系统嵌入已具有某种完整的特定功能的(或将会具备完整功能的)系统内(如各种机械设备),以实现对原有系统的计算机控制,这个新系统称为嵌入式系统。它通常由特定功能模块组成,主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户应用软件等部分组成。
上述定义(3)将计算机系统也囊括到嵌入式系统中,因为随着嵌入式微控制器性能的提高,它已可以取代台式计算机实现相应功能,这也是嵌入式系统的发展趋势。曾任施乐公司帕洛阿尔托研究中心主任的马克·维瑟(Mark Weiser)认为:“从长远来看,台式计算机和计算机工作站将衰落,因为计算机变得无处不在,如在墙里、在手腕上、在手写电脑中等,随用随取、触手可及。”无处不在的计算机就是嵌入式系统。但本书嵌入式系统仅指以微控制器芯片为核心的系统。
嵌入式系统的典型实例就是我们常见的智能手机。智能手机是“像计算机一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断地对手机的功能进行扩充,并可以通过移动通信网络实现无线网络接入的一类手机的总称”。如今,智能手机对消费者的主要吸引力已经逐渐从绚丽的显示屏和时尚的外观设计转移到丰富多样的手机应用和服务上。
通用计算机系统(见图1-12)与嵌入式系统(见图1-13)的对比如表1-3所示。
图1-12 通用计算机系统
表1-3 通用计算机系统与嵌入式系统的对比
续表
图1-13 智能手机的组成部件
从表1-3中可以看出,通用计算机系统的技术要求是高速/海量的数值计算,主要用于信息处理,技术发展方向是总线速度的提升、存储容量的扩大。与通用计算机系统不同,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,只有这样才能更具有竞争力。单片机内的处理器要根据用户的具体要求,对芯片配置进行裁剪或添加才能达到理想的性能,但同时受用户订货量的制约,因此不同的处理器面向的用户是不一样的,可能是一般用户、行业用户或特殊单一用户。嵌入式系统与具体用户有机地结合在一起,它的升级换代也是和具体产品同步进行的。嵌入式系统中的软件一般都固化在ROM中,很少以磁盘为载体,因此嵌入式系统的应用软件的生命周期也和嵌入式产品的生命周期一样。此外,应用于各行业的嵌入式软件各有其专用性的特点,与通用计算机系统的软件不同,嵌入式系统的软件更强调可继承性和技术衔接性。
普林斯顿结构也称冯·诺依曼结构,由一个中央处理单元(CPU)和单个存储空间组成,即这个存储空间存储了全部的数据和程序,它们内部使用单一的地址总线和数据总线,如图1-14所示,其中的P C为程序计数器。这种结构的取指令和取数据操作是通过一条总线分时进行的,因此要根据目标地址对其进行读/写操作。
当进行高速运算时,普林斯顿结构的计算机不能同时进行取指令和取数据操作,而且数据传输通道还会出现瓶颈现象,因此其工作速度较慢。常见的ARM7采用的就是普林斯顿结构。
哈佛结构的存储器分为数据存储器和程序存储器两个存储空间,有各自独立的程序总线和数据总线,可以进行独立编址和独立访问,如图1-15所示,其中的P C为程序计数器。独立的程序存储器和数据存储器为数据处理提供了较高的性能,使得哈佛结构的数据吞吐量大约是普林斯顿结构的数据吞吐量的2倍。
目前,大部分DSP、ARM9和Cortex系列微控制器都采用哈佛结构。
图1-14 普林斯顿结构示意图
图1-15 哈佛结构示意图
计算机的指令集分为CISC(复杂指令集系统)和RISC(精简指令集系统)两种。CISC的主要特点是指令系统丰富,程序设计方便,代码量小,执行性能高。RISC只包含使用频率很高的少量常用指令,以及一些必要的支持操作系统和高级语言的指令。CISC和RISC的比较如表1-4所示。
表1-4 CISC和RISC的比较
续表
【例1-1】 CISC指令集程序:
分析:实现将ADDRA和ADDRB中的数据相乘,并将结果存储在ADDRA中的功能。操作依赖CPU中设计的逻辑来实现,增加了CPU的复杂性,但可以使代码更精简。目前,仅Intel及其兼容的CPU采用CISC指令集。
【例1-2】 RISC指令集程序:
分析:本例实现的功能与例1-1相同。操作全部由软件来实现,降低了CPU的复杂性,但对编译器提出了更高的要求。嵌入式处理器大多采用RISC指令集。
CISC技术的复杂性取决于硬件,在于微处理器中控制器部分的设计及实现;RISC技术的复杂性取决于软件,在于编译程序的编写和优化。通常,较简单的消费类电子设备(如微波炉、洗衣机等)可以采用RISC单片机;较复杂的系统(如通信设备、工业控制系统等)应采用CISC的计算机。
随着微处理器技术的进一步发展,CISC与RISC两种体系结构的界限已不再泾渭分明,在很多系统中有融合的趋势。一方面,RISC设计正变得越来越复杂,如超长指令字的提出让一条RISC指令可以包含更多信息,同时完成多条传统指令的功能;早期ARM处理器含有普通ARM指令和Thumb指令两套指令集,以适应嵌入式系统对低功耗、小存储的要求。另一方面,CISC也在吸收RISC的优点,如Pentium II以后的微处理器在内部实现时也采用RISC架构,把复杂的指令在其内部由微码通过执行多条精简指令来实现。
嵌入式微处理器的基础是通用计算机中的微处理器(Microprocess,MPU)。在应用中,将微处理器装配在专门设计的PCB上,只保留与嵌入式应用相关的功能,这样可以大幅度减小系统体积和降低功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面都做了各种增强。与工业控制计算机相比,嵌入式微处理器具有体积小、质量小、成本低、可靠性高的优点,但是在PCB上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。将嵌入式微处理器及其存储器、总线、外设等安装在一个PCB上,就形成了单板机。
单片机一般以某种微处理器内核为核心,芯片内部集成存储器、I/O接口等各种必要功能。它的片上外设资源一般比较丰富,适用于控制场合,因此又称微控制器(MCU)。广义地讲,MCU产品的作用就是通过预先编制的程序,接收特定的环境参数或用户操作,按照一定的规则控制电信号的变化,并通过各种转换机制将电信号转换成诸如机械动作、光信号、声音信号、显示图像等形式,从而达到智能化控制的目的。为适应不同的应用需求,一般一个系列的MCU具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使MCU最大限度地与应用需求相匹配,对不同应用进行量体裁衣,从而降低功耗和成本。与嵌入式微处理器相比,MCU的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高,但没有强大的计算能力,因此只能完成一些相对简单和单一的控制、逻辑运算等任务,多用于设备控制、传感器信号处理等领域。MCU是目前嵌入式系统工业的主流产品。
数字信号处理器(DSP)对系统结构和指令进行了特殊设计,使其更适合执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、谱分析等方面,DSP算法正在大量进入嵌入式领域,DSP应用正在从通用MCU中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。推动嵌入式DSP处理器发展的一个因素是嵌入式系统的智能化,如各种带有智能逻辑的消费类产品、生物信息识别终端、带有加/解密算法的键盘、ADSL接入、实时语音压缩/解压缩系统、虚拟现实显示等。这类智能化算法一般运算量较大,特别是向量运算、指针线性寻址等较多,而这正是DSP处理器的长处所在。嵌入式DSP处理器有两个来源,一是传统DSP处理器经过单片化和电磁兼容改造,增加片上外围接口成为嵌入式DSP处理器,TI的TMS320C2000/C5000等属于此范畴;二是在通用MCU中增加DSP协处理器,如Intel的MCS-296和Infineon(原Siemens)的TriCore等属于此范畴。
微处理器、MCU和DSP的比较如表1-5所示。
表1-5 微处理器、MCU和DSP的比较
随着EDA技术的推广和VLSI设计的普及化,以及半导体工艺的迅速发展,在一个硅片上实现一个复杂系统的时代已经来临,这就是所谓的“系统芯片”(System on Chip,SoC)。SoC技术是一种高度集成化、固件化的系统集成技术。SoC的核心思想就是针对具体应用,把整个电子应用系统全部集成在一个芯片中,如图1-16所示。这些SoC是高度集成且没有冗余的,真正体现了量体裁衣。SoC并不是将各个芯片功能简单叠加起来,而是从整个系统的功能和性能出发,用软硬结合的设计和验证方法,利用IP复用及深亚微米技术,在一个芯片上实现复杂的功能。各种通用处理器内核将作为SoC设计公司的标准库,与许多其他嵌入式系统外设一样,成为VLSI设计中的一种标准器件,用标准的VHDL等语言来描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后,就可以将设计图交给半导体工厂制作样品。这样,除个别无法集成的外部电路或机械部分外,整个嵌入式系统的大部分均可集成到一个或几个芯片中,应用系统电路板将变得很简洁。
图1-16 SoC示意图
SoC具有以下优点。
【降低耗电量】 随着电子产品向小型化、便携化方向发展,对其省电需求将大幅提升。由于SoC产品多采用芯片内部信号传输机制,因此可以大幅度降低功耗。
【减小体积】 数个芯片整合为一个SoC后,可有效缩小它在PCB上占用的面积,质量小、体积小。
【丰富系统功能】 随着微电子技术的发展,在相同的内部空间上,SoC可整合更多的功能元件和组件,丰富了系统功能。
【提高速度】 随着芯片内部信号传递距离的缩短,信号的传输效率得到提升,使产品性能有所提高。
【节省成本】 理论上,IP模块的出现可以减少研发成本,缩短研发时间。不过,在实际应用中,由于芯片结构的复杂性提升,因此也有可能导致测试成本的增加,以及生产成品率的下降。
SoC可以分为通用和专用两类。通用SoC包括Infineon的TriCore、Motorola的M-Core、某些ARM系列器件,以及Echelon和Motorola联合研制的Neuron芯片等。专用SoC一般专用于某个或某类系统中,不为一般用户所知,其代表性产品是Philips的Smart XA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU制作在一块硅片上,形成一个可加载Java或C语言的专用SoC,可用于公众互联网(如Internet)的安全方面。
SoC使应用电子系统的设计技术从选择厂家提供的定制产品时代进入用户自行开发设计器件的时代。目前,SoC的发展重点包括总线结构及互连技术、软/硬件的协同设计技术、IP可重用技术、低功耗设计技术、可测性设计方法学、超深亚微米实现技术等。
专用集成电路(ASIC)是指专门为某一应用领域或特定用户需求而设计、制造的集成电路。当今最知名的ASIC当属AI芯片,如谷歌的TPU、寒武纪的DianNao等,可以将AI芯片理解为一个快速计算乘法和加法的计算器。目前,在图像识别、语音识别、自然语言处理等领域,精度最高的算法就是基于深度学习的算法,因此通常会针对计算量特别大的深度学习来讨论AI芯片。
计算机应用领域的划分如图1-17所示。嵌入式系统多属于小型专用型领域。
嵌入式系统的发展主要经历了如下3个阶段。
【20世纪70年代】 以嵌入式微处理器为基础的初级嵌入式系统。嵌入式系统最初的应用是基于单片机的。汽车、工业机器、通信装置等成千上万种产品通过内嵌电子装置获得更好的性能。
【20世纪80年代】 以嵌入式操作系统为标志的中级嵌入式系统。商业嵌入式实时内核包含传统操作系统的特征,开发周期缩短、成本降低、效率提高,促使嵌入式系统有了更为广阔的应用空间。
【20世纪90年代】 以Internet和实时多任务操作系统为标志的高级嵌入式系统。软件规模的不断增大,对实时性要求的提高,使得实时内核逐步发展为实时多任务操作系统,并作为一种软件平台逐步成为国际嵌入式系统的主流。
图1-17 计算机应用领域的划分