嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。1
定义嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等灵活裁剪软硬件模块的专用计算机系统。2
要点概括:
以应用为中心:强调嵌人式系统的目标是满足用户的特定需求。就绝大多数完整的嵌入式系统而言,用户打开电源即可直接享用其功能,无需二次开发或仅需少量配置操作。2
专用性:嵌人式系统的应用场合大多对可靠性、实时性有较高要求,这就决定了服务于特定应用的专用系统是嵌入式系统的主流模式,它并不强调系统的通用性和可扩展。这种专用性通常也导致嵌人式系统是一个软硬件紧密集成的最终系统,因为这样才能更有效地提高整个系统的可靠性并降低成本,并使之具有更好的用户体验。2
以现代计算机技术为核心:嵌人式系统的最基本支撑技术,大致上包括集成电路设计技术、系统结构技术、传感与检测技术、嵌入式操作系统和实时操作系统技术、资源受限系统的高可靠软件开发技术、系统形式化规范与验证技术、通信技术、低功耗技术、特定应用领域的数据分析、信号处理和控制优化技术等,它们围绕计算机基本原理,集成进特定的专用设备就形成了一个嵌人式系统。2
软硬件可裁剪:嵌人式系统针对的应用场景如此之多,并带来差异性极大的设计指标要求(功能性能、可靠性、成本、功耗),以至于现实上很难有一套方案满足所有的系统要求,因此根据需求的不同,灵活裁剪软硬件、组建符合要求的最终系统是嵌人式技术发展的必然技术路线。2
发展过程嵌入式计算机的真正发展是在微处理器问世之后。1971年11月,算术运算器和控制器电路成功的被集成在一起,推出了第一款微处理器,其后各厂家陆续推出了8位、16位微处理器。以这些微处理器为核心所构成的系统广泛地应用于仪器仪表、医疗设备、机器人、家用电器等领域。微处理器的广泛应用形成了一个广阔的嵌人式应用市场,计算机厂家开始大量地以插件方式向用户提供OEM产品,再由用户根据自己的需要选择一套适合的CPU板、存储器板及各式I/O插件板,从而构成专用的嵌入式计算机系统,并将其嵌人自己的系统设备中。3
20世纪80年代,随着微电子工艺水平的提高,集成电路制造商开始把嵌人式计算机应用中所需要的微处理器、I/O接口、A/D转换器、D/A转换器、串行接口,以及RAM、ROM等部件全部集成到一个VLSI中,从而制造出面向I/O设计的微控制器,即俗称的单片机。单片机成为嵌人式计算机中异军突起的一支新秀。20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步快速发展。面向实时信号处理算法的DSP产品向着高速、高精度、低功耗的方向发展。21世纪是一个网络盛行的时代,将嵌人式系统应用到各类网络中是其发展的重要方向。3
90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。4
嵌入式系统的发展大致经历了以下三个阶段:
第一阶段:嵌人技术的早期阶段。嵌入式系统以功能简单的专用计算机或单片机为核心的可编程控制器形式存在,具有监测、伺服、设备指示等功能。这种系统大部分应用于各类工业控制和飞机、导弹等武器装备中。3
第二阶段:以高端嵌入式CPU和嵌人式操作系统为标志。这--阶段系统的主要特点是计算机硬件出现了高可靠、低功耗的嵌入式CPU,如ARM、PowerPC等,且支持操作系统,支持复杂应用程序的开发和运行。3
第三阶段:以芯片技术和Internet技术为标志。微电子技术发展迅速,SOC(片上系统)使嵌入式系统越来越小,功能却越来越强。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展及Internet技术与信息家电、工业控制技术等结合日益密切,嵌人式技术正在进入快速发展和广泛应用的时期。3
特点嵌入式系统的硬件和软件必须根据具体的应用任务,以功耗、成本、体积、可靠性、处理能力等为指标来进行选择。嵌人式系统的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑、可靠,且对实时性有严格要求。3
从构成上看,嵌人式系统是集软硬件于一体的、可独立工作的计算机系统;从外观上看,嵌入式系统像是一个“可编程”的电子“器件”;从功能上看,它是对目标系统(宿主对象)进行控制,使其智能化的控制器。从用户和开发人员的不同角度来看,与普通计算机相比较,嵌人式系统具有如下特点。3
(1)专用性强。由于嵌人式系统通常是面向某个特定应用的,所以嵌人式系统的硬件和软件,尤其是软件,都是为特定用户群设计的,通常具有某种专用性的特点。3
(2)体积小型化。嵌入式计算机把通用计算机系统中许多由板卡完成的任务集成在芯片内部,从而有利于实现小型化,方便将嵌人式系统嵌入目标系统中。3
(3)实时性好。嵌人式系统广泛应用于生产过程控制、数据采集、传输通信等场合,主要用来对宿主对象进行控制,所以对嵌入式系统有或多或少的实时性要求。例如,对武器中的嵌人式系统,某些工业控制装置中的控制系统等的实时性要求就极高。有些系统对实时性要求也并不是很高,例如,近年来发展速度比较快的掌上电脑等。但总体来说,实时性是对嵌人式系统的普遍要求,是设计者和用户应重点考虑的一个重要指标。3
(4)可裁剪性好。从嵌入式系统专用性的特点来看,嵌人式系统的供应者理应提供各式各样的硬件和软件以备选用,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中更具竞争力。3
(5)可靠性高。由于有些嵌人式系统所承担的计算任务涉及被控产品的关键质量、人身设备安全,甚至国家机密等重大事务,且有些嵌人式系统的宿主对象工作在无人值守的场合,如在危险性高的工业环境和恶劣的野外环境中的监控装置。所以,与普通系统相比较,嵌入式系统对可靠性的要求极高。3
(6)功耗低。有许多嵌入式系统的宿主对象是一些小型应用系统,如移动电话、MP3、数码相机等,这些设备不可能配置交流电源或容量较大的电源,因此低功耗一直是嵌人式系统追求的目标。3
(7)嵌入式系统本身不具备自我开发能力,必须借助通用计算机平台来开发。嵌人式系统设计完成以后,普通用户通常没有办法对其中的程序或硬件结构进行修改,必须有一套开发工具和环境才能进行。3
(8)嵌入式系统通常采用“软硬件协同设计”的方法实现。早期的嵌入式系统设计方法经常采用的是“硬件优先”原则,即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现,然后在此硬件平台之上进行软件设计。如果采用传统的设计方法,则一旦在测试中发现问题,需要对设计进行修改时,整个设计流程将重新进行,对成本和设计周期的影响很大。系统的设计在很大程度上依赖于设计者的经验。20世纪90年代以来,随着电子和芯片等相关技术的发展,嵌入式系统的设计和实现出现了软硬件协同设计方法,即使用统一的方法和工具对软件和硬件进行描述、综合和验证。在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资源,协同设计软硬件体系结构,以最大限度地挖掘系统软硬件能力,避免由于独立设计软硬件体系结构而带来的种种弊病,得到高性能、低代价的优化设计方案。3
系统组成从外部特征上看,一个嵌入式系统,通常是一个功能完备、几乎不依赖其他外部装置即可独立运行的软硬件集成的系统。如果对这样一个系统进行剖分的话,可以发现它大致可能包括这样几个层次,如下图所示。2
嵌人式系统最核心的层次是中央处理单元部分,它包含运算器和控制器模块,在cpu的基础上进一步配上存储器模块、电源模块、复位模块等就构成了通常所说的最小系统。由于技术的进步,集成电路生产商通常会把许多外设做进同一个集成电路中,这样在使用上更加方便,这样一个芯片通常称之为微控制器。在微控制器的基础上进一步扩展电源传感与检测、执行器模块以及配套软件并构成一个具有特定功能的完整单元,就称之为一个嵌人式系统或嵌人式应用。2
硬件结构尽管各种具体的嵌人式系统的功能、外观界面、操作等各不相同,甚至千差万别,但是基本的硬件结构却是大同小异的,而且和通用计算机的硬件系统有着高度的相似性。嵌人式系统的硬件部分看起来与通用计算机系统的没有什么区别,也由处理器、存储器、外部设备、I/O接口、图形控制器等部分组成。但是嵌人式系统应用上的特点致使嵌人式系统在软硬件的组成和实现形式上与通用计算机系统有较大区别。为满足嵌人式系统在速度、体积和功耗上的要求,操作系统、应用软件、特殊数据等需要长期保存的数据,通常不使用磁盘这类具有大容量且速度较慢的存储介质,而大多使用EPROM、E2PROM或闪存(Flash Memory)。在嵌入式系统中,A/D或D/A模块主要用于测控方面,这在通用计算机中用得很少。根据实际应用和规模的不同,有些嵌入式系统要采用外部总线。随着嵌入式系统应用领域的迅速扩张,嵌人式系统越来越趋于个性化,根据自身特点采用总线的种类也越来越多。另外,为了对嵌人式处理器内部电路进行测试,处理器芯片普遍采用了边界扫描测试技术(JTAG)。3
软件体系嵌人式系统的软件体系是面向嵌人式系统特定的硬件体系和用户要求而设计的,是嵌人式系统的重要组成部分,是实现嵌人式系统功能的关键。嵌入式系统软件体系和通用计算机软件体系类似,分成驱动层、操作系统层、中间件层和应用层等四层,各有其特点。3
驱动层
驱动层是直接与硬件打交道的一层,它为操作系统和应用提供硬件驱动或底层核心支持。在嵌人式系统中,驱动程序有时也称为板级支持包(BSP)。BSP具有在嵌入式系统上电后初始化系统的基本硬件环境的功能,基本硬件包括微处理器、存储器、中断控制器、DMA、定时器等。驱动层--般可以有三种类型的程序,即板级初始化程序、标准驱动程序和应用驱动程序。3
操作系统层
嵌人式系统中的操作系统具有一般操作系统的核心功能,负责嵌人式系统的全部软硬件资源的分配、调度工作控制、协调并发活动。它仍具有嵌人式的特点,属于嵌人式操作系统(Embedded Operating System,EOS)。主流的嵌入式操作系统有Windows CE、Palm:OS、Linux、VxWorks.pSOS.QNX.LynxOS等。有了嵌人式操作系统,编写应用程序就更加快速、高效、稳定。3
中间件层
中间件是用于帮助和支持应用软件开发的软件,通常包括数据库、网络协议、图形支持及相应开发工具等,例如:MySQL、TCP/IP、GU1等都属于这一类软件。3
应用层
嵌人式应用软件是针对特定应用领域,用来实现用户预期目标的软件。嵌人式应用软件和普通应用软件有一定的区别,它不仅要求在准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。嵌人式系统中的应用软件是最活跃的力量,每种应用软件均有特定的应用背景。尽管规模较小,但专业性较强,所以嵌人式应用软件不像操作系统和支撑软件那样受制于国外产品,是我国嵌人式软件的优势领域。3
嵌入方式嵌入式系统是通过把CPU嵌人目标系统或被控系统中起作用的。但是在不同的嵌入式系统中,嵌入的形式和程度是各不相同的。根据嵌人式系统和通用计算机连接关系的密切程度,嵌人形式可以分为全嵌入方式、半嵌入方式。3
全嵌入方式如果采用全嵌人方式,则嵌人式系统(或其核心功能)可以不依赖于通用计算机系统,即可单独工作,典型实例有手机、MP4、车载GPS导航系统等。采用全嵌人方式的嵌人式系统有如下特点。3
(1)具有独立的处理器系统,且具有完整的输入/输出系统,能独立完成系统的功能。3
(2)高端CPU支持嵌入式操作系统,可以开发功能复杂的应用程序。3
(3)一般为便携式手持式设备,其工作环境一般是无人值守、移动空间、高空或其他条件恶劣的环境。3
(4)供电方式一般采用电池供电,有些情况下也可以直接采用市电220V供电,由系统自行设计转换和稳压电路。较高端的设备往往会把两种供电方式结合起来,让用户使用起来更加灵活。3
(5)全嵌入方式适合任何不宜采用通用计算机的场合,如消费电子、家用电器、通信网络设备、工业控制、智能仪器、战场电子对抗、航天航空武器等,其应用范围十分广泛。3
半嵌入方式如果采用半嵌人方式,则嵌人式系统(或其核心功能)需要和通用计算机系统结合起来才能正常工作,典型实例有医用B超系统、基于PCI卡的数据采集系统等。采用半嵌入方式的嵌人式系统有如下特点。3
(1)一般没有独立的处理器,而是借用通用计算机系统的CPU完成计算和/或控制功能;有时即使具有自己的独立处理器,但是处理器也只是完成一些有限的特定功能,而不具备控制全部系统的功能。3
(2)嵌入式系统只是整个系统的--部分,只能完成整个系统的一部分功能,而其他功能需要在通用计算机上完成。通用计算机利用自己丰富的软件和硬件资源,提供友好的人机操作界面和强大的数据处理能力。
(3)嵌入式系统的功能体现在对前端数据的采集和执行对被控对象的控制,其中的数据分析、处理和存储等功能由通用计算机系统完成。3
(4)嵌入式系统一般采用各种规范的总线形式和通用计算机相连接。典型的实例有PCI总线、USB总线等,简单的嵌人式系统还可以通过串口来连接。3
(5)嵌入式系统是作为外设连接在通用计算机上的,因此在通用计算机中一般需要提供嵌人式系统的标准驱动程序。3
相关介绍嵌入式微处理器微处理器是整个系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器。5
嵌入式操作系统嵌入式操作系统EOS(Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入式系统的全部软、硬件资源的分配、调度,控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一-些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。5
应用嵌人式系统的应用十分广泛,涉及工业生产、日常生活、工业控制、航空航天等多个领域,而且随着电子技术和计算机软件技术的发展,不仅在这些领域中的应用越来越深入,而且在其他传统的非信息类设备中也逐渐显现出其用武之地。3
工业控制基于嵌人式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8位、16位、32位嵌人式微控制器在应用中。网络化是提高生产效率和产品质量、减少人力资源的主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端产品往往采用的是8位单片机。随着计算机技术的发展,32位、64位的处理器已逐渐成为工业控制设备的核心。3
交通管理在车辆导航、流量控制、信息监测与汽车服务方面,嵌人式技术已经获得了广泛的应用,内嵌GPS模块、GSM模块的移动定位终端已经在各种运输行业获得了成功。目前,GPS设备已经从尖端的科技产品进入了普通百姓的家庭。3
信息家电家电将成为嵌人式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步人一个崭新的空间。即使不在家,也可以通过电话、网络对家电进行远程控制。在这些设备中,嵌入式系统将大有用武之地。3
家庭智能管理系统水表、电表、煤气表的远程自动抄表系统,安全防火、防盗系统,嵌有专用控制芯片,这种专用控制芯片将代替传统的人工操作,完成检查功能,并实现更高、更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌人式系统的优势。3
POS网络及电子商务公共交通无接触智能卡(Contactless Smart Card,CSC)发行系统、公共电话卡发行系统、自动售货机等智能ATM终端已全面走进人们的生活,在不远的将来手持一张卡就可以行遍天下。3
环境工程与自然在很多环境恶劣、地况复杂的地区需要进行水文资料实时监测、防洪体系及水土质量监测堤坝安全与地震监测、实时气象信息和空气污染监测等时,嵌人式系统将实现无人监测。3
机器人嵌人式芯片的发展将使机器人在微型化、高智能方面的优势更加明显,同时,会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。3
开发流程以Linux操作系统为例,论述嵌入式系统的开发流程。
建立开发环境
安装操作系统与交叉编译器,操作系统一般使用RedhatLinux,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(比如,armn-1inux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的相关交叉编译器。5
配置开发主机的参数
配置MNICOM参数,MNICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。一般情况下的参数为波特率115200 Baud/s,数据位8位,停止位为1,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样。配置网络主要是配置NFS网络文件系统,需要关闭防火墙以简化嵌入式网络调试环境设置过程。5
建立引导装载程序BOOTLOADER
从网络上下载一些公开源代码的BOOTL0ADER,如U-BOOT、BLOB、VIVI、LILO、ARM-Boot、RED-Boot等,根据具体芯片进行移植修改。有些芯片没有内置引导装载程序,这样就需要编写开发板上FLASH的烧写程序,也可以在网上下载相应的烧写程序。果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。5
下载已经移植好的Linux操作系统内核
如MCLiunx、ARM_Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过,下载后再添加特定硬件的驱动程序,然后进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,而对于MCLiunx这样的系统只能编译内核进行调试。5
建立根文件系统
下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。由于默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.drc.S、/etc/profile、/etc/.profile及自动挂装文件系统的配置文件/etc/fstab等,具体情况会随系统不同而不同。根文件系统在嵌入式系统中-般设为只读,需要使用mkcramfs genromfs等工具产生烧写映像文件。5
建立应用程序的FLASH磁盘分区
一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动。有的系统使用一个线性FLASHNOR型)512KB~32MB,有的系统使用非线性FLASHNAND型)8MB~512MB,有的系统两种同时使用,需要根据应用规划FLASH的分区方案。5
开发应用程序
根据需要开发应用程序,把开发成功的应用程序可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于uC/OS-II的方式。5
烧写内核、根文件系统和应用程序,发布产品
软硬件协同设计介绍系统描述对嵌入式系统的描述主要是从两方面出发的,一是性能方面,另一种是功能方面。在系统描述过程中,不仅可以采用一种语言,也可以采用多种语言。同时,这一描述过程也是对软件模型和系统硬件模型的建立过程。在进行嵌入式系统描述时,为了减少软硬件协同设计初期中问题的出现,需要做好系统内行为的测试工作。一方面,可以在第一时间发设计中不合理的地方;另一方为系统安全、可靠运行提供了保证。系统描述需要以系统模型为支撑,为了进行正确的描述,应该确保该模型包括四个元素。一是功能特点,也就是指嵌入式系统的各项功能,同时应该重点明确功能和系统的输入和输出关系。第二是性能描述,在系统模型中,融入这一因素,能够比较全面的反映系统的整体结构,并且需要说明系统输入与输出的联系。第三是约束条件,该要素不仅对嵌入式系统性能缺陷进行了说明,而且还合理的对系统工作环境中的要求进行了规定。第四是技术指标,其能够对系统存在的问题、质量好坏进行说明,为设计工作开展奠定良好基础。6
软硬件综合技术在嵌入式系统的软硬件协同设计中,软硬综合技术是重要的技术之一,在软硬件系统的大体设计方面发挥着重要作用。在对其设计结果进行系统检测评价的基础上,可以根据设计要求,有针对性的开展细致的系统制作工作,并且进行软硬件的设计,确保其协调一致,进而可提升设计的科学性,对整个系统运行效率提高具有重要意义。6
软硬件功能划分在进行软硬件功能划分工作中,主要是科学合理的划分软硬件和嵌入式系统功能,并对二者的关系进行明确。其中,成本函数是软硬件功能划分的主要依据之一。在运用成本函数方面时,需要考虑多方面因素。例如,模块之间的并发性、软件执行时间等。6
协同仿真和系统测试验证在协调仿真和系统测试验证方面,需要借助硬件描述语言进行嵌入式系统硬件系统的描述工作。为了有效完成设计工作,满足设计要求,需要对软件搭配硬件的方法进行合理的应用,以便为接下来的设计工作创造良好的环境,不仅能够在整体上提高设计效率与质量,而且还能减少设计成本,确保良好的经济效益。6
发展前景如今嵌入式系统发展更加的趋于提供更加生动的人机交互界面;对于更多小型电子产品具备更好的移植性,从而实现其自动化,低功耗,智能化。7
嵌入式系统在WEB服务器中的实例
在工业设计中,软硬件的精简性对于服务器有较高的要求,而传统网络服务器并不具有简洁性,且支持网络异构中实现对于计算机的远程操控。而采用将网络设备嵌入到嵌入式设备中,将大大减少用户的访问时间,以及能够精准的控制外部I/O。而嵌入式WEB服务器不采用传统的TCP/IP协议连入互联网,而是选择了由TCP/IP简化的UIP协议栈实现嵌入式WEB服务器。这样的嵌入式WEB服务器不仅具有简洁性,而且使MCU具有更多的空间去控制外部I/O。7
基于嵌入式系统的传感技术
物联网领域从2009年温家宝总理提出建立中国传感信息中心开始便逐渐成为众多学者企业关注的重点,而传感技术作为物联网领域的重要一环自然是必不可少。作为承担着信息收集角色的传感器,必然要与嵌入式系统进行有机的结合。智能传感技术具有优秀的信息传递能力,智能传感器具备物与物之间的信息交换、物与计算机之间的信息传递能力,将广泛应用与计算机、通信等方面的信息交流和数据传递。嵌入式智能传感器在物联网领域具有重要作用。7
本词条内容贡献者为:
孙锐 - 教授 - 合肥工业大学