第1章 嵌入式系统概述
教学目的:
通过对本章的学习,掌握嵌入式系统的定义、性能特点,能够解释嵌入式系统的组成,了解嵌入式处理器的分类与操作系统,以及嵌入式系统的应用和发展。
1.1 嵌入式系统简介
20世纪70年代,以微处理器为核心的微型计算机不仅具有型小、价廉、可靠性高的特点,还具有高速数值计算能力,从而引起了控制专业人士的极大兴趣。为了区别于原有的通用计算机系统,我们把嵌入对象体系中实现对象体系智能化控制的计算机,称作嵌入式计算机系统,简称嵌入式系统。因此,嵌入式系统诞生于微型计算机时代,嵌入性本质是将一个计算机嵌入一个对象体系中。
通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。而嵌入式系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。因此,必须独立地发展通用计算机系统与嵌入式计算机系统,这就形成了现代计算机技术发展的两大分支。
随两大分支的飞速并行发展,通用计算机系统进入尽善尽美阶段,除集中精力发展通用计算机系统的软、硬件技术外,还基于高速海量的数据、文件处理能力改进操作系统。由于嵌入式系统要嵌入对象体系中,实现的是对象的智能化控制,因此,嵌入式系统的单芯片化特性迅速将传统电子系统引领到智能化现代电子系统时代。
1.1.1 嵌入式系统定义
关于嵌入式系统(embedded system)的定义很多,较通俗的定义是嵌入对象体系中的专用计算机系统。此定义强调嵌入式系统的三个基本要素:嵌入性、专用性与计算机系统。
电气电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)对嵌入式系统的定义为“用于控制、监视或者辅助设备、机器和车间运行的装置”(原文为devices used to control,monitor,or assist the operation of equipment,machinery or plants)。此定义强调嵌入式系统的应用目的:一种完成特定功能的“装置”,该装置能够在没有人工干预的情况下独立地进行实时监测和控制。
从技术角度定义,也是国内较权威的定义是“以应用为中心、以计算机技术为基础、软件硬件可剪裁,且适应系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。嵌入式系统是针对具体应用而定制的专用计算机系统,采用“量体裁衣”的方式把所需的功能嵌入各种应用系统中。
1.1.2 嵌入式系统特点
嵌入式系统是将先进的计算机技术、半导体技术、电子技术与各个行业的具体应用相结合后的产物。这决定了嵌入式系统是技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统是针对特定的应用需求而设计的专用计算机系统,这决定了它必然有其自身的特点。嵌入式系统的显著特点主要包括以下几个方面。
1.体积小、功耗低、集成度高
嵌入式系统需嵌入特定的设备中,面向特定系统应用,往往对系统的体积和功耗有严格的要求,特别是对便携式仪器仪表和手机之类的需移动的嵌入式产品,对系统的体积和功耗的要求更为严格。系统通常都具有功耗低、体积小、集成度高等特点,能够把通用计算机系统中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统小型化,移动能力也大大增强,与计算机网络和通信系统的结合也越来越紧密。
2.可靠性高、实时性强
嵌入式系统与通用计算机系统不同,嵌入式系统运行环境差异很大,有些应用场合的环境十分恶劣,系统可能运行在高温、高压下,也可能运行在零下几十度的冰天雪地中,这就要求嵌入式系统必须有更高的可靠性。很多嵌入式系统都需要及时响应各种事件,不断地对所处环境的变化做出反应,而且要实时地得到计算结果,不能产生过多延迟,保证系统的实时性。可以想象,如果汽车的刹车系统不能对刹车信号及时做出反应将会导致什么后果。
3.专用性强、设计效率高
嵌入式系统的硬件、软件均是面向特定应用对象和任务设计的,具有很强的专用性,与通用计算机构造的通用计算和信息处理平台不同,嵌入式系统提供的功能及其面对的应用和过程都是预知的。通过充分考虑嵌入式系统对功能、可靠性、成本、体积和功耗方面的特殊要求,使嵌入式系统满足对象要求的最小硬件和软件配置,满足特殊用途的需求。
嵌入式系统对成本、体积和功耗有严格的要求,由于资源(内存、I/O(输入/输出)端口等)有限,因此对嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在有限的资源上实现更高的性能。嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,应具有较长的生命周期。
4.硬件高性能配置、软件固态化存储
嵌入式硬件力争在同样硅片面积上实现更高的性能,并可根据用户具体要求对芯片配置进行剪裁和添加。嵌入式软件通常都固化在存储器或嵌入式处理器中,而不是存储于磁盘等磁性载体中,以提高执行速度和系统可靠性。由于嵌入式系统一般应用于小型电子装置,并且系统资源相对有限,所以内核较传统的操作系统要小得多,比如μC/OS操作系统,核心内核只有8.3KB,而Windows的内核要比其大得多。所以还要求高质量和高可靠性的软件代码,以满足系统的执行速度与实时性要求。
5.需要宿主机-目标机的开发模式
嵌入式系统一般只能运行应用程序,不具备自主开发程序的能力,所以嵌入式系统常采用宿主机-目标机的开发模式。通常将通用计算机作为宿主机,嵌入式系统作为目标机,宿主机安装开发环境和调试工具,用于程序的开发与修改,目标机执行程序进行验证与测试,此过程需要反复多次。
1.1.3 嵌入式系统组成
嵌入式系统一般由嵌入式系统硬件和嵌入式系统软件两大部分组成,其中硬件包括嵌入式处理器、存储器、外围电路和必要的外部设备接口。软件包括板级支持包(board support package, BSP)、嵌入式操作系统(embedded operating system, EOS)、中间件(middleware)和应用软件。嵌入式系统的组成框图见图1-1。另外,由于被嵌入对象的体系结构、应用环境要求的不同,所以不同嵌入式系统也可以由各种不同的结构组成。
图1-1 嵌入式系统的组成框图
1.嵌入式系统硬件
嵌入式系统硬件包括嵌入式处理器、存储器、外围电路及外部设备接口。嵌入式处理器是系统的核心,负责控制整个系统的各部分有序工作。目前全世界嵌入式处理器的品种已经超过上千种,流行的体系结构多达几十个,其中比较典型的是8051体系和ARM(advanced RISC machine,进阶精简指令集机器)体系结构。嵌入式处理器的寻址空间也从64KB到2GB不等,其处理速度可以从0.1MIPS到2000MIPS(每秒处理的百万级的机器语言指令数,million instructions per second)。一般来说可以把嵌入式处理器分成嵌入式微处理器(microprocessor unit,MPU)、嵌入式微控制器(microcontroller unit,MCU)、嵌入式数字信号处理器(digital signal processor,DSP)、嵌入式单片系统(system on chip,SoC)。与通用计算机的微处理器不同,嵌入式微处理器通常把通用计算机中的一些接口电路和板卡功能集成到芯片内部,使嵌入式系统在小体积、低功耗和高可靠性方面更具优势。操作系统和应用程序都可以固化在只读存储器(read-only memory,ROM)中。外围电路为系统提供时钟及系统复位等功能。外部设备一般包括实现人机交互的键盘、显示器等设备。随着嵌入式处理器高度集成化技术的发展,处理器与外设的接口越来越多,功能也越来越强,在设计系统时,通常只要把处理器和外设进行物理连接就可以实现外围接口的扩展。如ARM处理器内部就包括IIC(inter-integrated circuit,集成电路总线)、SPI(serial peripheral interface,串行外设接口)、UART(universal asynchronous receiver/transmitter,通用异步接收发射设备)和USB(universal serial bus,通用串行总线)等“标准”配置的接口。
2.嵌入式系统的软件
嵌入式系统软件包括BSP、EOS、中间件和应用软件,同硬件一样具有可剪裁性。
BSP介于主板硬件和操作系统驱动层程序之间,主要实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包。BSP主要工作是完成系统初始化和硬件相关设备驱动,具有操作系统相关性、硬件相关性的特点。
EOS负责嵌入式系统的全部软件和硬件资源的分配、调度工作,控制协调并发活动。对于功能简单的嵌入式应用系统完全可以不采用EOS,而对于复杂应用而言,EOS不仅可以进行多任务管理,很好地分配和管理内存,还可以提高软件的开发效率。EOS可以分为实时系统和分时系统。对于分时EOS,软件的执行在时间上的要求并不严格,时间上的延误或者时序上的错误,一般不会造成灾难性的后果。而对于实时EOS,其主要任务是对事件进行实时的处理,虽然事件可能在无法预知的时刻到达,但是软件必须在事件随机发生时,在严格的时限内做出响应(系统的响应时间)。即使是系统处在尖峰负荷下,也应如此,系统时间响应的超时就意味巨大的损失或灾难。比如航天飞机的控制系统,如果出现故障后果不堪想象。
中间件位于EOS与应用软件之间,它屏蔽了各种操作系统提供不同应用程序接口的差异,向应用程序提供统一的接口,从而便于用户开发应用程序,同时也使应用程序具有跨平台性。该层主要包括网络协议、数据库管理系统、Java虚拟机等。
嵌入式系统的应用软件是针对特定的专业领域,基于相应的嵌入式硬件平台,能完成用户预期任务的计算机软件。应用软件是嵌入式系统中的上层软件,它定义了嵌入式设备的主要功能和用途,并负责与用户进行交互。应用软件是嵌入式系统功能的体现,如飞行控制软件、手机软件、MP3播放软件、电子地图软件等,一般面向特定的应用领域。
由于嵌入式应用对成本十分敏感,为了减少系统成本,除了精简每个硬件单元的成本外,应尽可能地减少应用软件的资源消耗,尽可能优化系统。
总体来说嵌入式系统的硬件部分可以说是系统的基石,嵌入式软件部分则是在这个基石上建立起来的不同功能的建筑,对于任何一个需求明确的嵌入式系统来说,两者缺一不可。
1.1.4 嵌入式系统分类
嵌入式系统种类繁多,根据不同的分类标准有不同的分类方法。
1.根据处理器的位宽分类
按处理器的位宽可将嵌入式系统分为8位、16位、32位、64位系统。一般而言,位宽越大,性能越好。
在通用计算机处理器的发展历程中总是高位宽处理器取代低位宽处理器,而嵌入式处理器的应用范围广、功能千差万别,所以不同性能的处理器均有各自的用武之地。
2.根据系统的复杂度分类
根据嵌入式系统的复杂程度不同,可以把嵌入式系统分为简单嵌入式系统和复杂嵌入式系统。
简单嵌入式系统一般无操作系统,也被称为裸机系统,通常以8位微控制器作为系统的核心控制单元,控制软件采用单线程的程序流程,使用循环程序处理外界的请求,实现测量和控制功能。这类系统硬件复杂度低、功能相对简单、成本较低。
在许多智能化产品尤其是高端的嵌入式产品中,比如数字通信、汽车电子、互联网应用等复杂需求的出现,要求系统不仅能实现简单的智能控制,还要实现复杂的数据处理、数据通信等功能。这类嵌入式
展开