本节首先介绍嵌入式系统的定义与“三要素”,其次介绍嵌入式系统的应用过程和发展趋势,最后介绍嵌入式系统的组成。
嵌入式系统的定义有许多,但它们的真正含义基本相同,以下是具体的定义内容。
根据电气与电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。
目前国内一个普遍被认同的定义是:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
也可以这样定义:嵌入式系统是一种专用的单片计算机系统,作为装置或设备的主控或监测器件,焊接在它们的印制电路板(PCB)中,完成它应具有的功能。
嵌入式系统一般由嵌入式微处理器芯片、外围硬件设备、嵌入式操作系统以及用户应用程序4个部分组成。
嵌入式系统的3个基本要素是指“嵌入性”“专用性”“计算机系统”。嵌入性指它是以芯片的形式嵌入(潜伏)在PCB中;专用性指它是为特定的设备量身定做的软硬件系统;计算机系统是说,它虽然以芯片的形式显现,但是它具有一台计算机的软硬件功能。
目前嵌入式系统的应用无处不在,8位单片机嵌入式系统,例如MCS-51系列,在低端产品中是主流,它占整个嵌入式系统的市场份额约为70%。在中、高端产品中ARM使用占70%的份额,在移动电话、数码照相机、数字电视的机顶盒、微波炉、汽车内部的防抱死制动系统等装置或设备中都使用了ARM嵌入式系统。
MCS-51系列单片机是最早应用的嵌入式系统之一,单片机作为各类工业控制和飞机、导弹等武器装备中的微控制器,用来执行一些单线程的程序,完成监测、伺服和设备指示等多种功能,一般没有操作系统的支持,程序设计采用汇编语言或C51语言。
采用汇编语言编写的程序具有效率高、占用内存少、实时性强且控制时间精准等优点。缺点是对技术人员的要求高,开发周期相对长一些。
现在使用意法半导体(ST)公司基于ARM9的ARM Cortex-M3内核产品——STM32微处理器芯片开发的实时控制设备,大部分都是在无操作系统的情况下使用C语言开发的,它比在有操作系统下开发具有更高的运行效率。目前开发要求具有强实时性的装备也是在“裸机”(无操作系统)情况下开发的。
20世纪80年代,出现了大量具有高可靠性、低功耗的嵌入式CPU。芯片上集成有CPU、I/O接口、串行接口及RAM、ROM等部件,是面向I/O设计的微控制器在嵌入式系统设计中的应用。一些简单的嵌入式操作系统开始出现并得到迅速发展,程序设计人员也开始基于一些简单的“操作系统”开发嵌入式应用软件,如较为常用的μC/OS嵌入式操作系统。此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,大幅缩短了开发周期,提高了开发效率。
20世纪90年代,面对分布式控制、柔性制造、数字化通信和信息家电等巨大的市场需求,嵌入式系统飞速发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,如实时操作系统(Real-Time Operating System,RTOS),从而使应用软件的开发变得更加简单。
进入21世纪,Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式技术与Internet技术的结合正在推动着嵌入式系统的飞速发展。由于Linux是UNIX的PC版本,具有强大的网络功能,且为开源软件,因此嵌入式Linux操作系统得到了广泛的应用。微软公司也看到了嵌入式市场的广阔前景,推出Windows CE嵌入式操作系统,对于熟悉Windows环境的开发人员来讲,也可进行基于Windows平台的嵌入式系统开发。
面对嵌入式技术与Internet技术的结合,嵌入式系统的研究和应用呈现出以下发展趋势。
1)新的微处理器层出不穷,大都朝着精简系统内核、优化关键算法、降低功耗和软硬件成本、提供更加友好的多媒体人机交互界面的方向发展。
2)Linux、Windows CE、Palm OS等嵌入式操作系统迅速发展。嵌入式操作系统自身结构的设计体现出更加便于移植的特性,具有源代码开放、系统内核小、执行效率高、网络结构完整等特点,能够在短时间内支持更多的微处理器。
3)嵌入式系统的开发成为一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。
嵌入式系统的组成包括嵌入式系统硬件组成和软件组成两部分。
嵌入式系统的硬件组成主要包含嵌入式处理器、外围设备接口和执行装置(被控对象)等。
嵌入式系统的软件组成,对于裸机开发来讲主要有以下内容:嵌入式处理器芯片内部三总线频率的设置、配置存储器芯片的设置;7种异常模式堆栈指针的设置;中断指针的传递程序;为C语言的运行创建环境;I/O端口的配置与控制程序、应用程序等。以上5个部分也是引导启动程序(Bootloader)的主要内容。
对于基于操作系统的嵌入式软件开发,主要包括Bootloader的移植、操作系统内核的移植、文件系统的移植、I/O设备驱动程序的编写以及加载、图形用户接口程序设计、应用程序的设计等。
嵌入式计算机系统是整个嵌入式系统的核心,可以分为硬件层、中间层、系统软件层和应用软件层。执行装置接收嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
嵌入式系统从整体上来讲也可以分为硬件层、中间层、系统软件层和应用软件层。