嵌入式系统原理及应用信息与控制学院孙伟Email:sunw0125@163.comTel:137391825342为什么要学习嵌入式系统•个人职业发展的需要•人才市场需求大•中国具有世界最大嵌入式市场,手持仪器设备、信息家电、城市建设、工业控制、军事应用等等,嵌入式系统无处不在。•软件开发人员•门槛低,竞争激烈•工作比较辛苦,薪水不高•嵌入式开发人员•门槛高,竞争相对温和•工作相对轻松,薪水较高3课程目标•理论与实践相结合。•以嵌入式系统基础及嵌入式处理器及其体系结构为重点,以应用为目的,全面介绍嵌入式系统的设计。•使大家既能对嵌入式系统及开发有一个全景的把握,又能深入理解嵌入式实时操作系统。4课程特点•利用PC机就可以自己动手搭建嵌入式系统的开发平台,熟悉应用开发,更方便地学习和理解嵌入式系统的基础知识:从纯软件到硬/软件结合从“纸”上谈兵(编程序)到“板”上谈兵从“懂”怎么做到“会”做从讲/听到讲/听/做5实验系统的内容目标平台开发工具嵌入式操作系统实验项目PC虚拟机ARM9开发板•ADS集成开发环境Wince6课程成绩评定•课程成绩=平时成绩+实验成绩+期末成绩•平时成绩10%•实验成绩10%•期末成绩:80%7第1章嵌入式系统概述•嵌入式系统定义•嵌入式系统的发展概述•嵌入式系统的硬件和软件特征•嵌入式系统的分类•嵌入式系统的应用81.1嵌入式系统定义•计算机发展的三大阶段•第一阶段:始于五十年代的由IBM,Burroughs,Honeywell等公司率先研制的大型机。•第二阶段:始于七十年代的个人计算机。•第三阶段:计算机正迈入下一个充满机遇的阶段—“后PC时代”或“无处不在的计算机”阶段。91.1嵌入式系统定义•无处不在的计算机•施乐公司PaloAlto研究中心主任MarkWeiser认为:“从长远来看,PC机和计算机工作站将衰落,因为计算机变得无处不在:例如在墙里、在手腕上、在手写电脑中(象手写纸一样)等等,随用随取、伸手可及”。全世界的计算机科学家正在形成一种共识:计算机不会成为科幻电影中的那种贪婪的怪物,而是将变得小巧玲珑,无处不在.他们藏身在任何地方,又消失在所有地方,功能强大,确又无影无踪.人们将这种思想命名为:“无所不在的计算机”。10嵌入式系统无处不在彼此互连111.1嵌入式系统定义•什么是嵌入式系统嵌入式系统(EmbeddedSystems)是指:“嵌入到对象体系中的、用于执行独立功能的专用计算机系统”。定义为以应用为中心,以微电子技术、控制技术、计算机技术和通讯技术为基础,强调硬件软件的协同性与整合性,软件硬件可剪裁的,适应应用系统对功能、可靠性、成本、体积、功耗和应用环境有等严格要求的专用计算机系统。121.1嵌入式系统定义嵌入式系统的嵌入式本质就是将一个计算机嵌入到一个对象体系中去。131.1嵌入式系统定义•最简单的嵌入式系统仅有执行单一功能的控制能力,在唯一的ROM中仅有实现单一功能的控制程序,无微型操作系统。复杂的嵌入式系统,例如个人数字助理(PDA)、手持电脑(HPC)等,具有与PC几乎一样的功能。•实质上与PC的区别仅仅是将微型操作系统与应用软件嵌入在ROM、RAM或FLASH存储器中,而不是存贮于磁盘等载体中。•很多复杂的嵌入式系统又是由若干个小型嵌入式系统组成的。14马达控制器车灯嵌入式系统示例←汽车控制系统尾灯控制系统后车门控制系统前车门控制系统座椅控制系统发动器控制系统所有的控制系统都是一个完整的嵌入式系统151.1嵌入式系统定义•从广义上讲,凡是带有微处理器的专用硬件系统都可以称为嵌入式系统,如各类单片机和DSP系统。这些系统在完成较为单一的专业功能时具有简洁高效的特点。但他们的软件的能力有限。•因此,推荐使用嵌入式微处理器构成独立系统,具有自己的操作系统,具有特定功能,用于特定场合的嵌入式系统。所以,一个嵌入式系统就是一个硬件和软件的集合体,它包括硬件和软件两部分。其中硬件包括嵌入式处理器、控制器、数字信号处理器(DSP)、存储及外设器件、输入输出(I/O)。由于应用领域不同,应用程序千差万别。161.1嵌入式系统定义•嵌入式系统按形态可分为•设备级(工控机)•板级(单板、模块)•芯片级(MCU、SoC)因此,有些人把嵌入式处理器当作嵌入式系统,但由于嵌入式系统是一个嵌入式计算机系统,因此,只有将嵌入式处理器构成一个计算机系统,并作为嵌入式应用时,这样的计算机系统才可称作嵌入式系统。171.1.2嵌入式系统的特点•嵌入式系统特别强调“量身定做”的原则,开发人员往往需要针对某一种特殊用途开发出一个截然不同的嵌入式系统来,所以我们很难不经过“大量”修改而直接将一个嵌入式系统完全套用到其他的嵌入式产品上去。•“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。•对象系统则是指嵌入式系统所嵌入的宿主系统。嵌入式系统的特点是由三个基本要素衍生出来的。不同的嵌入式系统其特点会有所差异。181.1.2嵌入式系统的特点•与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/环境(可靠)、成本(价廉)等要求。•与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。•与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。191.1.2嵌入式系统的特点与通用的计算机系统相比,嵌入式系统具有以下显著特点。•系统内核小•专用性强•运行环境差异大•可靠性要求高•系统精简和高实时性操作系统•具有固化在非易失性存储器中的代码•需要专门的开发工作和环境201.2嵌入式系统的发展概述•1.2.1嵌入式系统的历史与发展1.始于微型机时代的嵌入式系统(1)单片机开创了嵌入式系统独立发展之路(2)单片机的技术发展史单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。2.现代计算机技术的两大分支•通用计算机系统•嵌入式计算机系统211.2.2嵌入式系统的功能1.提供强大的网络服务针对外部联网要求,嵌入设备配有通信接口,能提供TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息等)及实验现场仪器的协调工作等要求,新一代嵌入式设备还具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口。同时也能提供相应的通信组网协议软件和物理层驱动软件。221.2.2嵌入式系统的功能2.小型化、低成本、低功耗为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片。这就相应提高了对嵌入式软件设计技术要求,如选用最佳的编程模型和不断改进算法,采用Java编程模式,优化编译器性能等。因此,既需要软件人员具有丰富的开发经验,更需要发展先进的嵌入式软件技术,如Java、Web和WAP等。231.2.2嵌入式系统的功能3.人性化的人机界面亿万用户之所以乐于接受嵌入式设备,其重要因素之一是它们与使用者之间的亲和力。它具有自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆。人们与信息终端交互要求以GUI屏幕为中心的多媒体界面。手写文字输入、语音拨号上网、收发电子邮件及彩色图形、图像已取得初步成效。目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但离掌式语言同声翻译还有很大距离。241.2.2嵌入式系统的功能4.完善的开发平台随着Internet技术的成熟、带宽的提高,ICP和ASP在网上提供的信息内容日趋丰富、应用项目多种多样,像移动电话、固定电话及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计者一方面采用更强大的嵌入式处理器,如32位、64位RISC芯片或数字信号处理器(DSP)增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。251.3嵌入式系统的硬/软件特征•嵌入式系统是将嵌入了软件的计算机硬件作为其最重要部分的系统,它是一种专门用于某个应用或生产的特殊产品的计算机系统。由于其软件通常嵌入在ROM(只读存储器)中,因此,不像计算机那样需要辅助存储器,早期嵌入式系统自低向上包含3个部分。如图1-1所示。•嵌入式系统的组成部分是嵌入式系统硬件平台、嵌入式操作系统(RTOS)和嵌入式系统应用。261.3嵌入式系统的硬/软件特征应用程序与操作系统的接口操作系统与硬件的接口嵌入式系统应用嵌入式实时操作系统嵌入式系统硬件平台271.3嵌入式系统的硬/软件特征经过不断地发展,嵌入式系统原有的3层结构逐步演化成为4层结构。这个新增加的中间层称为硬件抽象层(HardwareAbstractionLayer,HAL),有时也称为板级支持包(BoardSupportPackage,BSP)。这个新增加的中间层次位于操作系统和硬件之间,包含了操作系统中与硬件相关的大部分功能。它能够通过特定的上层接口与操作系统进行交互,向操作系统提供底层硬件信息,并根据操作系统的要求完成对硬件的直接操作。281.3嵌入式系统的硬/软件特征由于引入了一个中间层,屏蔽了底层硬件的多样性,操作系统不再面对具体的硬件环境,而是面对由这个中间层次所代表的、逻辑上的硬件环境,因此,把中间层次叫做硬件抽象层(HardwareAbstractionLayer,HAL)。图1-2显示了引用HAL以后的嵌入式系统。HAL的引入大大推动了嵌入式实时系统的通用化,从而为嵌入式系统的广泛应用提供了可能。291.3嵌入式系统的硬/软件特征应用程序与操作系统的接口操作系统与HAL的接口HAL与硬件的接口嵌入式系统硬件平台硬件抽象层嵌入式系统应用嵌入式实时操作系统301.3.1嵌入式系统硬件平台嵌入式系统硬件平台是以嵌入式处理器为核心,由存储器、I/O单元电路、通信模块、外部设备等必要的辅助接口组成的,如图1-3所示。USBLCD触摸屏键盘其他外设电源模块时钟复位外围电路微处理器MPUFlashROMRAM311.3.2硬件抽象层硬件抽象层通过硬件抽象层接口向操作系统以及应用程序提供对硬件进行抽象后的服务。当操作系统或应用程序使用硬件抽象层API进行设计时,只要硬件抽象层API能够在下层硬件平台上实现,那么操作系统和应用程序的代码就可以移植。321.3.2硬件抽象层板级支持包(BoardSupportPackage,BSP)是现有的大多数商用嵌入式操作系统实现可移植性所采用的一种方案,是硬件抽象层的一种实现。BSP隔离了所支持的嵌入式操作系统与底层硬件平台之间的相关性,是嵌入式操作系统能够通用与BPS所支持的硬件平台,从而实现嵌入式操作系统的可移植性和跨平台性,以及嵌入式操作系统的通用性、复用性。331.3.2硬件抽象层BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP。例如,对应同一个CPU来说,要实现同样的功能,VxWorks的BSP和Linux的BSP的写法和接口定义却完全不同。因此,BSP一定要按照具体操作系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改),这样才能与上层操作系统保持正确的接口,良好地支持上层操作系统。341.3.3嵌入式操作系统嵌入式操作系统:完成系统初始化及嵌入式应用的任务调度和控制等核心功能。嵌入式操作系统的主要特点如下:•体积小•实时性(图1-4RTOS实时多任务操作系统)•特殊的开发调试环境(集成图形界面开发平台ADS1.2)351.3.3嵌入式操作系统驱动程序、HAL/BSP驱动层应用程序接口(API)数据库模块网络模块图形驱动OS核内存管理文件管理OS层应用层基本模块扩展模块进程调度应用程序文件系统/图形用户接口硬件层RTOS的体系结构361.4嵌入式系统的分类根据不同的标准,嵌入式系统有不同的分类方法。1.按嵌入式微处理器的位数分类•4