近几年,嵌入式系统得到迅猛发展,广泛进入到工业,军事,通信,运输,金融,医疗,气象,农业等众多领域。什么是嵌入式系统?嵌入式系统本身是一个相对模糊的定义,随着范围的扩大,使得“嵌入式系统”更加难于明确定义。一个手持的mp3可以叫做嵌入式系统,工业机器人,医疗设备,卫星,飞行系统等领域也有嵌入式系统的存在。那到底什么是嵌入式系统?本文从嵌入式系统的定义出发,逐步解析什么是嵌入式系统。
嵌入式系统的定义
根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants).这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置.
不过上述定义并不能充分体现出嵌入式系统的精髓,目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统.
这个定义上,可从几方面来理解什么是嵌入式系统:
◆嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势.因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用.
◆嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统.所以,介入嵌入式系统行业,必须有一个正确的定位.例如Palm之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的Vxworks之所以在火星车上得以应用,则是因为其高实时性和高可靠性.
◆嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求.所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式.目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行.
实际上,嵌入式系统本身是一个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫嵌入式系统,而且有时很难以给它下一个准确的定义.现在人们讲嵌入式系统时,某种程度上指近些年比较热的具有操作系统的嵌入式系统(嵌入式操作系统),本文在进行分析和展望时,也沿用这一观点.
一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件(由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里我们对其不加区分,这也是嵌入式系统和Windows系统的最大区别)。
嵌入式系统的特点
这些年来掀起了嵌入式系统应用热潮的原因只要有几个方面:一是芯片技术的发展,使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能,众多芯片生产厂商已经将注意力集中在这方面.另一方面的原因就是应用的需要,由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。
从上面的定义,我们可以看出嵌入式系统的几个重要特征:
1.系统内核小.由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多.比如Enea公司的OSE分布式系统,内核只有5K,而Windows的内核?简直没有可比性.
2.专用性强.嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改.同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念.
3.系统精简.嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全.
4.高实时性的系统软件(OS)是嵌入式软件的基本要求.而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性.
5.嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统.嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量.
6.嵌入式系统开发需要开发工具和环境.由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等.开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
通过以上的介绍,我想大家对什么是嵌入式系统有了一定的了解,嵌入式系统无所不在,正是"看不见"和"无所不在"这样的特性使得嵌入式计算机系统有别于传统的计算机系统。