1.2 嵌入式系统的定义与特点
1.2.1 嵌入式系统的定义
按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。嵌入性、专用性与计算机系统是嵌入式系统的3个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。
IEEE(美国电气和电子工程师协会)的定义是:嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control,monitor,or assist the operation of equipment,machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
而目前在国内最常见、最通用的一个定义是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。这个定义是从技术角度来进行定义的,更加全面。它不仅指明了嵌入式系统是一种专用计算机系统(非PC的智能计算机系统),而且还说明了嵌入式系统的几个基本要素。嵌入式系统中的“嵌入”一词,即指其软硬件可裁剪性,也表示该系统通常是更大系统中的一个完整的部分。嵌入的系统中可以共存多个嵌入式系统。
另外,在理解嵌入式系统的定义时,不要与嵌入式设备相混淆。嵌入式设备是指内部有嵌入式系统的产品、设备和装置等,是指嵌入式系统所嵌入的宿主系统。例如,内含单片机系统的家用电器、仪器仪表、工控单元、机器人、手机、PDA、MP3/MP4、PLC等。
1.2.2 嵌入式系统组成
嵌入式系统是专用计算机应用系统,它具有一般计算机组成的共性,也是由硬件和软件组成的。图1.1完整地描述了嵌入式系统的软硬件各部分的组成结构。输入系统获取外界信息,传输给嵌入式处理器进行处理,处理后发出指令,输出系统接收到指令后进行动作。输入系统和输出系统可以很简单,如温控系统在感知温度变化后需要使用继电器动作;也可能很复杂,如机器人的手臂,输入系统有几十个传感器,输出系统则有近十个伺服电机,可以执行复杂的动作。
嵌入式系统硬件的组成可以简单地分为嵌入式处理器、存储器和输入/输出系统。实际上,由于超大规模集成电路的迅速发展,很多单片的嵌入式处理器中都含有丰富的资源。目前,一片嵌入式处理器加上电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。软件中的系统程序和应用程序都可以存放在存储器中。
图1.1 嵌入式系统组成
1.2.3 嵌入式系统中的有关概念
1.嵌入式处理器
嵌入式处理器是嵌入式系统的核心部件,是控制、辅助系统运行的硬件单元,其范围极其广阔,从最初的4位处理器,目前仍在大规模应用的8位处理器,到最新的受到广泛青睐的32位、64位嵌入式处理器。
2.实时操作系统
实时操作系统(Real Time Operating System,RTOS)是嵌入式系统中最主要的组成部分。根据操作系统的工作特性,实时是指物理进程的真实时间。实时操作系统具有实时性,是能从硬件方面支持实时控制系统工作的操作系统。其中实时性是第一要求,需要调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。
3.分时操作系统
对于分时操作系统,软件的执行在时间上的要求并不严格,时间上的错误一般不会造成灾难性的后果。目前分时系统的强项在于多任务的管理,而实时操作系统的重要特点是具有系统的可确定性,即系统能对运行情况的最好和最坏等情况做出精确的估计。
4.多任务操作系统
系统支持多任务管理和任务间的同步和通信,传统的单片机系统和DOS系统等对多任务支持的功能很弱,而目前的Windows是典型的多任务操作系统。在嵌入式应用领域中,多任务是一个普遍的要求。
5.实时操作系统中的重要概念
系统响应时间(System response time):系统发出处理要求到系统给出应答信号的时间。
任务换道时间(Context-switching time):任务之间切换所使用的时间。
中断延迟(Interrupt latency):计算机接收到中断信号到操作系统做出响应,并转入中断服务程序的时间。
6.实时操作系统的工作状态
实时操作系统中的任务有4种状态:运行(Executing)、就绪(Ready)、挂起(Suspended)、休眠(Dormant)。
运行:获得CPU控制权。
就绪:进入任务等待队列,通过调度转为运行状态。
挂起:任务发生阻塞,移出任务等待队列,等待系统实时事件的发生而唤醒,从而转为就绪或运行。
休眠:任务完成或错误等原因被清除的任务,也可以认为是系统中不存在的任务。
任何时刻系统中只能有一个任务处于运行状态,各任务按级别通过时间片分别获得对CPU的访问权。
1.2.4 嵌入式系统的特点
嵌入式系统包括嵌入式硬件系统与嵌入式软件系统,是软硬件两者的综合体。
嵌入式系统的特点与定义不同,它是由定义中的3个基本要素衍生出来的。不同的嵌入式系统其特点会有所差异。
与“嵌入性”相关的特点:由于是嵌入到对象系统中的,因此必须满足对象系统的环境要求,如物理环境(小型)、电气环境(可靠)、成本(价廉)等要求。
与“专用性”相关的特点:软硬件的裁剪性;满足对象要求的最小软硬件配置等。
与“计算机系统”相关的特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上面两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。
嵌入式系统是嵌入式硬件与嵌入式软件两者的综合体,其主要特点具体描述如下。
1.嵌入式系统通常极其关注成本
嵌入式系统必须能根据特定应用的需求对软硬件进行裁剪,以满足应用系统对功能、可靠性、成本、体积等的要求。
在大多数情况下,需要注意的成本是系统成本。处理器成本固然是一个因素,但是如果采用高度集成的微控制器(Microcontroller Unit,MCU),而不是微处理器(Microprocessing Unit,MPU)和独立外设器件的组合,就能减小印制电路板的面积,减少所使用器件的个数,降低对电源输出功率的要求,这些都可降低器件的总成本、生产管理和装配成本、产品调试成本。同时也可提高产品的可靠性,降低产品的维护成本。
2.嵌入式系统通常对实时性有要求
嵌入式系统一般对程序执行时间的要求都较高,故称之为实时系统。实时系统一般分为两类:软实时系统和硬实时系统。硬实时系统要求相关任务(时间关键性的任务)必须在某个时间间隔内完成,一旦响应时间不能满足,就可能会引起系统崩溃或致命的错误;而软实时系统的任务为时间敏感性任务,若响应时间不能满足,一般不会引起非常严重的后果。
3.嵌入式系统一般采用EOS或RTOS
为使程序能满足系统功能的要求,在必须保证程序逻辑正确性的同时,响应时间也必须达到系统的要求。对于功能较为复杂的嵌入式系统而言,控制响应时间是程序设计的关键。而这对程序员来说,往往很难驾驭或实现起来相当困难。因此,此类系统一般采用嵌入式操作系统(Embedded Operation System,EOS)来管理系统的硬件资源和时间资源。对于实时系统,应采用具有实时特性的嵌入式操作系统——实时操作系统(Real Time Operation System,RTOS)。另外,使用操作系统也可缩短产品的开发周期。
对于功能较简单的小型电子装置,可以不采用操作系统,而由应用软件来直接管理系统的硬件资源和时间资源。
4.嵌入式系统软件故障造成的后果较通用计算机更为严重
嵌入式系统必须尽量减少软件的瞬时故障(软故障),嵌入式系统一般都采用一些保障机制,例如看门狗定时器(Watch Dog Timer,WDT),来提高系统的可靠性。
5.嵌入式系统多为低功耗系统
许多嵌入式系统没有充足的电能供应(如采用电池供电),而且功耗越小,散热越容易、系统温升越低,系统的稳定性和可靠性越高。
6.嵌入式系统经常在极端恶劣的环境下运行
极端恶劣的环境一般意味着严酷的温度与很高的湿度,特殊场合下使用的嵌入式系统必须还要考虑防震、防尘、防水、防电磁干扰等问题。集成电路芯片分为商业级、工业级和军品级,嵌入式系统一般应选工业级或军品级嵌入式处理器和外围电路。
7.嵌入式系统的系统资源与通用计算机相比是非常少的
嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂。这样一方面利于控制系统成本,另一方面也利于实现系统安全。
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行操作系统的移植,即使在同一品牌、同一系列的产品中,也需要根据系统硬件的变化和增减不断进行修改。
针对不同的任务,往往需要对系统进行较大的更改,程序的编译、下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。
8.嵌入式系统通常在ROM中存放所有程序的目标代码
几乎所有的计算机系统都要在ROM中存放部分代码(如PC中的BIOS是存放在FLASH ROM中的),而多数嵌入式系统必须把所有的代码都存放在ROM中。这意味着对存放在ROM中的代码长度有极严格的限制。除此之外,由于ROM的读取速度比RAM的要低,有时为提高系统性能,将程序从ROM移至RAM运行。在设计系统硬件和软件时应考虑此问题。
9.嵌入式系统可采用多种类型的处理器和处理器体系结构
系统所采用的处理器确定了系统的体系结构(包括系统硬件的组成和指令系统),可选择的处理器有微处理器、微控制器、数字信号处理器(Digital Signal Processor,DSP)等,还可选择片上系统(System on Chip,SoC)。
10.嵌入式系统需要专用开发工具和方法进行设计
嵌入式系统的开发工具通常由软件和硬件组成。软件包括交叉编译器、模拟器、调试器、集成开发环境(Integrated Development Environment,IDE)等;硬件包括ROM仿真器、在线仿真器(In-Circuit Emulator,ICE)、在线调试器(In-Circuit Debugger,ICD)、片上调试器(On-Chip Debugger,OCD)等。
11.嵌入式处理器包含专用调试电路
当今,嵌入式处理器较过去的嵌入式处理器,其最大区别是在处理器中包含有专用调试电路,具有片上调试电路的嵌入式处理器很好地解决了嵌入式系统的调试问题。
1.2.5 嵌入式系统的种类与发展
按照上述嵌入式系统的定义,只要满足定义中三要素(嵌入性、专用性与计算机系统)的计算机系统,都可称为嵌入式系统。
嵌入式系统的种类按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。
嵌入式系统的种类按应用可分为工业应用和消费电子。
需要注意的是,嵌入式处理器不是嵌入式系统,嵌入式处理器只是嵌入式硬件系统中的CPU芯片,类似于PC主板上的CPU。只有在将嵌入式处理器和外围硬件接口电路构成一个嵌入式硬件系统,并写入软件作为嵌入式应用时,这样的计算机系统才可称为嵌入式系统。
嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展。因此,可以把嵌入式系统定义中的专用计算机系统引伸到满足对象系统要求的计算机应用系统。