1.嵌入式系统的定义
嵌入式系统已经深入到我们生活的每一个角落,手机、游戏机、电磁炉、洗衣机、电动自行车、电视机、汽车电子、水下机器人……,它所涉及的领域达到甚至超过我们个人所能想象的范围。嵌入式系统(Embedded system)的定义说法很多,认可度较高的定义是:以应用为中心,以
计算机
技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的
专用计算机
系统。它一般由
嵌入式微处理器
、外围硬件设备、
嵌入式操作系统
以及用户的
应用程序
等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
表1.1 嵌入式系统与通用计算机的对比
嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统
需求
进行合理的裁减利用,如微波炉、电视机、汽车电子等都使用嵌入式系统实在系统的控制、监视或管理,而非使用通用计算机,嵌入式系统与通用计算机的对比如表1.1。
嵌入式系统是将先进的
计算机技术
、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如
Palm
之所以在
PDA
领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多
任务管理
;而风河的Vxworks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。
嵌入式系统必须根据应用
需求
对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几k到几十k
微内核
,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。
2. 嵌入式系统的特点
从上面的定义,可以看出嵌入式系统的几个重要特征:
1.系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。一般常用的面向ARM的linux内核在数MB范畴,而通用计算机的内核往往都要几百MB甚至更多。
2.专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。
3.系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
4.高实时性的系统软件是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。
5.嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
6.嵌入式系统开发需要开发工具和环境。目前,由于其本身不具备开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
7.嵌入式系统与具体应用有机结合在一起,升级换代也是同步进行。因此,嵌入式系统产品一旦进入市场,具有较长的生命周期。
8.为了提高运行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中。
3. 嵌入式系统的发展历程
从20世纪七十年代单片机的出现到各式各样的嵌入式微
处理器
,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。
嵌入式系统的出现最初是基于
单片机
的。70年代单片机的出现,使得汽车、家电、
工业机器
、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些
单线程
的
程序
,还谈不上“系统”的概念。
最早的单片机是Intel公司的8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4个8位并口、1个全双工
串行口
、两个16位定时器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在
单片机
的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。
从80年代早期开始,嵌入式系统的
程序员
开始用商业级的“
操作系统
”编写嵌入式
应用软件
,这使得可以获取更短的开发周期,更低的开发资金和更高的开发
效率
,“嵌入式系统”真正出现了。确切点说,这个时候的
操作系统
是一个实时核,这个实时核包含了许多传统操作系统的特征,包括
任务管理
、任务间通讯、同步与相互排斥、中断支持、
内存管理
等功能。
其中比较著名的有Ready System公司的VRTX、Integrated System Incorporation (ISI)的PSOS和IMG的VxWorks、QNX公司的QNX等。这些
嵌入式操作系统
都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统
内核
很小,具有可裁剪,可扩充和可移植性,可以移植到各种
处理器
上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式
实时多任务操作系统
的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。
上个世纪90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为
实时多任务操作系统
(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的
嵌入式操作系统
。除了上面的几家老牌公司以外,还出现了Palm OS,WinCE,嵌入式
Linux
,Lynx,Nucleux,以及国内的Hopen,Delta Os等
嵌入式操作系统
。随着
嵌入式技术
的发展前景日益广阔,相信会有更多的
嵌入式操作系统
软件出现。
信息时代、数字时代使得
嵌入式产品
获得了巨大的发展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,从中可以看出未来嵌入式系统的几大发展趋势:
1.
嵌入式开发
是一项
系统工程
,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和
软件包
支持。
目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广ARM芯片的同时还提供
开发板
和板级支持包(BSP),而WindowCE在主推系统时也提供Embedded VC++作为开发工具,还有Vxworks的Tonado开发环境等等,都是这一趋势的典型体现。当然,这也是市场竞争的结果。
2.
网络化
、信息化的要求。随着因特网技术的成熟、
带宽
的日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。
这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,
设计师
们一方面采用更强大的
嵌入式处理器
如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对
多媒体
、图形等的处理,逐步实施
片上系统
(SOC)的概念。软件方面采用实时多任务
编程技术
和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。
3.
网络互联
成为必然趋势。未来的
嵌入式设备
为了适应
网络发展
的要求,必然要求硬件上提供各种
网络通信
接口。传统的
单片机
对于网络支持不足,而新一代的
嵌入式处理器
已经开始内嵌网络接口,除了支持
TCP/IP协议
,还有的支持IEEE1394、USB、CAN、Bluetooth
通信接口
中的一种或者几种,同时也需要提供相应的通信组网协议软件和
物理层
驱动软件。软件方面系统系统
内核
支持网络模块,甚至可以在设备上嵌入
Web浏览器
,真正实现随时随地用各种设备上网。
4.精简系统
内核
、算法,降低功耗和软硬件成本。未来的
嵌入式产品
是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统
内核
,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化
编译器
性能。因此,既要软件人员有丰富的硬件知识,又需要发展先进嵌入式
软件技术
。
5.提供友好的多媒体人机界面。
嵌入式设备
能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界面。图像界面,灵活的控制方式,使得人们感觉
嵌入式设备
就像是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在图形界面,多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但一般的
嵌入式设备
距离这个要求还有很长的路要走。