1、嵌入式系统概述 Embedded Systems,2018/8/19,2,几个问题?,为什么要开设这门课程? 主要内容?考核方式?,2018/8/19,3,自动控制领域: 数控机床、电网安全、电网设备监测、发电站和电力传输、污水处理、自动化工厂、石油提炼和贮运设施、建筑设备、计算机辅助制造、能源控制、核电站、机器人 传感器-控制器-执行单元,家电领域 机顶盒、PDA、DVD、MP3播放器、数码相机、数字电视、网络冰箱、网络空调、家庭网关,交通领域 汽车导航系统、不停车收费系统、移动电子警察、智能交通路口机、汽车Telematics系统、各种汽车ECU,医疗领域 心脏除颤器、心脏起搏器、病员监视
2、系统、X光设备、理疗控制系统、电磁成像系统,通信网络领域 手机、交换机、路由器、Hub等,后PC时代-丰富的嵌入式产品市场,2018/8/19,4,何为嵌入式产品?,与PC相对应 包含处理器、拥有计算能力、面向具体应用、对功耗/体积/价格等具有严格要求的产品,2018/8/19,5,嵌入式课程设置,2018/8/19,6,课程内容(基本理论),嵌入式系统概述 嵌入式处理器简介 嵌入式操作系统 嵌入式软件设计与开发,为嵌入式系统操作系统编程和高级应用程序编程打下坚实的基础,2018/8/19,7,教学方式,课堂教学 课后作业 实验课,灵活自由的开放式教学,2018/8/19,8,考试安排,平时作
3、业(资料调查,实验编程),70% 大作业(一个题目,2个礼拜完成) 30%,Take it Easy!Eveyone can get 100 cents!,2018/8/19,9,教材,嵌入式系统基础及应用,机械工业出版社,2009,2018/8/19,10,参考资料(1),陈文智,嵌入式系统开发原理与实践,清华大学出版社,2005。 陈章龙,嵌入式技术与系统-Intel XScale结构与开发,北京航空航天出版社,2004。 王田苗,嵌入式系统设计与实例开发,清华大学出版社,2003年,2018/8/19,11,参考资料(2),Arm公司电子手册 ARM Architecture Refer
4、ence Manual ARM Program Tecgniques ARM SDT随带各种手册 ARM ADS随带各种手册 http:/ 课堂给出的各种电子资料以及网址,嵌入式系统概论 Embedded Systems,2018/8/19,13,嵌入式系统概述,嵌入式系统的定义 嵌入式系统的特点 嵌入式系统的发展历史 嵌入式系统的组成 嵌入式系统的设计过程 嵌入式技术的发展趋势,Chap.1,2018/8/19,14,嵌入式系统的定义,1.定义,2018/8/19,15,嵌入式系统定义,嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、
5、功耗有严格要求的专用计算机系统。,1.定义,2018/8/19,16,嵌入式系统的特点,嵌入式系统是嵌入式到对象体系中的专用计算机系统。 嵌入性:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气环境(可靠)、成本(价廉)、功耗(低功耗设计)等要求。 专用性:嵌入式系统特别强调“量身定做”的特性,通过对软、硬件的裁剪,使其满足对象要求的最小软、硬件配置,满足某一种特殊用途的需求,针对这项用途开发出与其他产品截然不同的系统。 计算机系统:嵌入式系统必须是能满足对象系统控制要求的计算机系统。,2.特点,2018/8/19,17,嵌入式系统的诞生,现代计算机技术的两大分支
6、通用计算机系统 嵌入式计算机系统 1946年诞生了电子数字计算机 供养在特殊机房中、实现数值计算的大型昂贵设备 1970s, 第一片微处理器(Intel 4004)诞生 微处理器为核心的微型计算机以其小型、价廉和高可靠性特点,迅速走出了机房,表现出了高度的智能化水平 控制专业人士将微型机嵌入到一个对象体系中,并配置各种外围接口电路,安装到大型舰船中构成自动驾驶仪或轮机状态监测系统,3.发展历史,不同的技术发展要求和发展方向,2018/8/19,18,不同的技术发展要求与发展方向,通用计算机系统 技术要求是高速、海量的数值计算; 技术发展方向是总线速度的无限提升,存储容量的无限扩大。 嵌入式计算
7、机系统的 技术要求则是对象的智能化控制能力; 技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。,3.发展历史,2018/8/19,19,两代分支的形成,早期,人们勉为其难地将通用计算机系统进行改装,在大型设备中实现嵌入式应用。 众多的对象系统(如家用电器、仪器仪表、工控单元)无法嵌入通用计算机系统 必须独立地发展通用计算机系统与嵌入式计算机系统,3.发展历史,形成了现代计算机技术发展的两大分支,2018/8/19,20,嵌入式系统发展历程,无操作系统阶段 简单操作系统阶段 实时操作系统阶段 面向Internet阶段,3.发展历史,2018/8/19,21,嵌入式系统实例分析
8、,4、组成实例分析,2018/8/19,22,典型例子 PDA,4、组成实例分析,2018/8/19,23,硬件组成,4.组成,嵌入式处理器,存储器,输入设备,输出设备,外围接口,软件,硬件单元,中央处理器是嵌入式系统的核心,它负责控制整个系统的执行。 括微处理器、微控制器、DSP处理器、专用处理器、SOC(System on Chip),存储器按存储信息的功能可分为只读存储器ROM(Read Only Memory)和随机存储器RAM(Random Access Memory),嵌入式系统中的输入形式一般包括触摸屏、语音输入、按键和虚拟键盘,输出设备则主要有LCD 显示和语音输出,外围接口主
9、要有GPIO、串口、I2C总线、USB总线和IEEE 1394总线等等,2018/8/19,24,嵌入式处理器选择,ARM PowerPC MIPS Xscale DSP X86,4.组成,2018/8/19,25,嵌入式处理器使用调查,What CPUs were used in your embedded projects during the past two years? Which will be used during the next two?,4.组成,2018/8/19,26,多处理器- TI OMAP,DSP加RISC的多处理器,针对通讯、多媒体,C55x DSP,OMAP
10、 5910/161x/171x/24xx:,ARM9,MMU,Memory ctrl,MPU interface,System DMA control,bridge,I/O,4.组成,2018/8/19,27,软件组成,4.组成,有时也叫板级支持包,是一个介于硬件与软件之间的中间层次。硬件抽象层通过特定的上层接口与操作系统进行交互,向操作系统提供底层的硬件信息,并根据操作系统的要求完成对硬件的直接操作,支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器Browser等
11、,中间件位于操作系统和应用软件之间,屏蔽了各种操作系统提供不同应用程序接口的事实,向应用程序提供统一的接口,从而便于用户开发应用程序,同时也使应用程序具有跨平台的特性。,嵌入式应用程序运行于操作系统之上,利用操作系统提供的机制完成特定功能的嵌入式应用,不同的系统需要设计不同的嵌入式应用程序。它是整个系统功能的体现,系统的能力总是通过应用程序表现出来。一个嵌入式系统可简单的没有支撑软件,甚至没有操作系统,但却不能没有应用软件,否则它就不能成为一个系统。,2018/8/19,28,嵌入式系统组成(软件),4.组成,2018/8/19,29,引导程序:bootloader,4.组成,2018/8/1
12、9,30,内核(kernel)以嵌入式Linux为例,2018/8/19,31,文件系统(rootfs),root根文件系统唯一性 包括启动时第一个运行/sbin/init服务 内核挂载root文件系统,运行所有的应用和后台服务,例如: sh, telnet, ftp, web server 等,其他有共享库、数据、设备节点等 包含:可执行程序、数据文件、共享库等,2018/8/19,32,嵌入式操作系统选择,Linux uC/OS Windows CE VxWorks Palm OS QNX Symbian,4.组成,2018/8/19,33,嵌入式操作系统使用调查(1),Which OSe
13、s have been in your embedded systems during the past 2 years? Which will be used during the next two?,4.组成,2018/8/19,34,嵌入式操作系统使用调查(2),Actual and projected Linux use, over the last five years,4.组成,2018/8/19,35,嵌入式系统与PC硬件,4.组成,2018/8/19,36,嵌入式系统与PC软件,4.组成,2018/8/19,37,嵌入式系统设计方法,由上而下与由下而上 由上而下(Top dow
14、n Approach)是一个正统的设计方案,也就是说,所有的设计皆是遵循系统工程的流程来进行,确定需求、制定系统规格、设计、实现、测试都是一步一步、按部就班地进行。 相对应的是由下而上(Button up Approach)。由下而上的意思是:一个系统是由已经有的基础(或组件)为起点,开始往上延伸,最后将系统完成。 其实大部分的项目都是这两种方式的混合体,很少有整个项目都是从上而下的,同样也很少有整个项目都是由下而上的。,5.设计,2018/8/19,38,嵌入式系统设计方法,UML系统建模 统一建模语言UML(Unified Modeling Language)采用一种简单而直观的图形化方式
15、描述系统设计中的各个问题和细节,不仅可以使系统分析设计实现标准化,而且完全可以实现系统分析、设计和制作、测试分别由不同的项目成员在统一、一贯的方式下完成,也使得系统分析和设计模型在相似系统中重用成为可能。目前UML已经广泛应用于嵌入式系统建模中,它采用规范化的验证、综合系统以及自动生成系统为嵌入式系统提供了有保障的可靠性和安全性的设计方法。,5.设计,2018/8/19,39,嵌入式系统设计方法,面向对象设计 面向对象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)和面向对象的编程(Object-Oriented Pro
16、gramming) 面向对象的分析是所有软件分析活动的第一步,仔细的划分系统的各个部分,然后将各个部分作为一个对象进行功能或行为的分析和定义。 面向对象的设计是将面向对象分析所建立的分析模型转变为软件构造蓝图的设计模型,即在预定义的基本类框架上构建一个系统,在这个阶段中,只要进一步确定各个对象的功能以及各个对象之间的关系即可。 面向对象的编程是指使用面向对象的设计语言(如JAVA、C+、Ada等)把面向对象设计的系统模型程序化,亦即是完成具体实现。编码是软件开发过程中最基本、最底层的需求,它强调的是一种分析及解决问题的思路,而不在乎所使用的语言工具。,5.设计,2018/8/19,40,嵌入式
17、系统开发流程,需求分析 功能、非功能部分 名称、目的、输入、输出、 功能、性能、成本、功耗、 物理尺寸性能 规格说明(做什么) 需求细化 详细的规格说明 设计阶段 开发实现,5.设计,2018/8/19,41,系统开发基础流程(1),第一步:功能与需求分析 系统功能部分 这个系统可能会有哪些输入;输入量是什么;以什么方式进行输入;是否需要进行前期处理;物理量的范围是否确定;有没有特别的需求,比如采样频率、信号放大等。 系统需要哪些输出;是否需要进行类比数字转换;可能需要驱动哪些外设;输出范围是什么;有没有特殊需求,比如输出频率、输出信号种类等。 通过输入端取得的数据是否需要经过处理;数据需不需
18、要进行存储;要不要进行特殊的数据处理后,再送到输出端等。,5.设计,2018/8/19,42,系统非功能部分 嵌入式系统可能被应用在各种环境中。温度、湿度、震动、电磁干扰、电源供应、工业安全标准以及是否要在特定的时间内完成某项任务等都是嵌入式系统可能会遇到的工业环境限制。由于这些和系统所处的环境有关,所以要和专业人员做进一步的确认。 价格的限制会影响到系统的设计与组成组件。在价格成本的限制下,开发团队需要寻找适当的方案来应付。,系统开发基础流程(1),5.设计,2018/8/19,43,系统开发基础流程(2),第二步:设计阶段 系统架构设计 硬件软件协同设计,5.设计,2018/8/19,44
19、,硬件软件协同设计 硬件构件:硬件平台主要包括处理器及相关外设的选择。 处理器的选择:处理性能 、技术指标、功耗、软件支持工具、是否内置调试工具、供应商是否提供评估版 软件构件 操作系统选择:开发工具、操作系统向硬件接口移植的难度、操作系统的内存要求、开发人员是否熟悉此操作系统及其提供的API、操作系统是否提供硬件的驱动程序、操作系统的可裁剪性 、操作系统的实时性能。 编程语言:通用性 、可移植性程度 、执行效率 、可维护性 集成开发环境,系统开发基础流程(2),5.设计,2018/8/19,45,集成开发环境 开发平台(host),编译器(compiler),连接器(linker),或是由软
20、件厂商提供的整合开发环境 (IDE) 其他问题如: 主机(host)与目标系统(target)连接通讯(一般是RS232) 镜像文件(image)下载,系统开发基础流程(2),5.设计,2018/8/19,46,编译器:跨平台编译器(Cross Compiler),2018/8/19,47,宿主机目标机模式,2018/8/19,48,系统开发基础流程(3),第三步:开发实现 嵌入式开发环境的搭建 嵌入式操作系统的选择 BootLoader的编写 操作系统的移植 文件系统的移植 驱动程序编写 应用程序编写,5.设计,2018/8/19,49,系统开发基础流程(4),第四步:调试,除错(debug
21、) 嵌入式系统的调试较复杂 目的平台通常没有很好的显示或输出能力,不是直接在目的平台上写程序 一般来说还要由除错硬件(逻辑分析仪,ICE)来进行,硬件昂贵 如果没有很好的除错环境,只能依靠人力和经验来作测试,5.设计,2018/8/19,50,系统开发基础流程(5),第五步 烧写程序,5.设计,2018/8/19,51,嵌入式软件开发与PC机软件开发的差异,程序编译和执行处于不同的两个平台 可利用的资源有限 经常与硬件打交道,5.设计,2018/8/19,52,嵌入式处理器的多核化趋势,随着嵌入式应用的深入,特别是在数字监控、数字通信和网络中的应用,对处理器提出了更高的要求。为适应这种情况,现
22、在已出现多核结构的处理器,并在嵌入式系统中得到了广泛应用,6.发展趋势,C55x DSP,OMAP 5910/161x/171x/24xx:,ARM9,MMU,Memory ctrl,MPU interface,System DMA control,bridge,I/O,2018/8/19,53,面向应用特定的操作系统,嵌入式操作系统三个比较明显的阶段 无操作系统的嵌入式算法阶段 简单监控式的操作系统阶段 实时嵌入式操作系统阶段 发展趋势 ASOS Application Specific Operating Systems例子 vASOS, vehicular ASOS OSEK 汽车专用A
23、PI接口,6.发展趋势,2018/8/19,54,嵌入式系统的网络化与智能化,电器时代 电器的连接 网络互联时代 “网器”的概念 在一个真正互联的世界里,人们和各种各样的电器装置无缝和透明地连通在一起。 网络家电,或称网器,将是这个连通世界的重要组成部分 嵌入式系统与Internet相结合已经成为一种必然的趋势 嵌入式系统与人工智能、模式识别技术的结合,导致了各种更具人性化、智能化的嵌入式系统,6.发展趋势,2018/8/19,55,嵌入式系统技术发展,Motorola,Siemens,BMW,Apple,2018/8/19,56,车载嵌入式系统,高端汽车有100多个microprocesso
24、rs: 4-bit microcontroller安全带检查 Microcontrollers仪表盘 16/32-bit microprocessor引擎控制 32-bit高端microprocessor多媒体信息服务 例如:Anti-lock brake system (ABS),Automatic stability control (ASC+T),2018/8/19,57,嵌入式系统技术发展,2018/8/19,58,2018/8/19,59,嵌入式系统技术发展,2018/8/19,60,嵌入式系统技术发展,2018/8/19,61,嵌入式系统技术发展,2018/8/19,62,2018/8/19,63,思考题,嵌入式系统的核心技术思想是什么? 试从功能、可靠性、功耗、成本、体积等指标各举一例说明通用PC和嵌入式系统的区别 试从软件构成上说明通用计算机系统和嵌入式系统的区别,2018/8/19,64,你觉得一个基本的嵌入式系统应该由哪些部分组成? 以一个你熟悉的嵌入式系统为例,试分析与想象该领域嵌入式系统的发展?,