1、嵌入式系统概论1. 嵌入式系统概述2. 嵌入式系统的基本知识3. 嵌入式系统的设计原则及方法1.1什么是嵌入式系统嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由以下几部分组成:n嵌入式微处理器n外围硬件设备n嵌入式操作系统n特定的应用程序1.2嵌入式系统的特点特点:n应用的特定性和广泛性n技术、知识、资金的密集性n高效性n较长的生命周期n高可靠性n软硬一体,软件为主n无自举开发能力1.3嵌入式系统与PC的不同1. 一般专用于特定的任务,而PC是一个通用计算机。2. 使用多种类型的处理器和处理器体系结
2、构。3. 及其关注成本4. 有实时约束5. 使用实时多任务操作系统6. 软件故障造成的后果比PC系统更严重7. 大多有功耗约束8. 经常在极端的环境下运行9. 系统资源比PC少的多10. 通常所有的目标代码存放在ROM中11. 需要专用工具和方法进行开发设计12. 嵌入式系统的数量远远超过PC1.4嵌入式系统的应用领域1.4嵌入式系统的应用领域1.5嵌入式系统的产品n网络设备:交换机、路由器,MODEMn消费电子:手机、MP3、PDA 、可视电话、电视机顶盒、数字电视、数码照相机、数码摄像机、信息家电n办公设备:打印机、传真机、扫描仪n汽车电子:ABS(防死锁刹车系统)、供油喷射控制系统、车载
3、GPS。n工业控制:各种自动控制设备我们正步入一个崭新的“数字世界”嵌入式应用嵌入式应用1.6嵌入式系统的历史n20 世纪70 年代:单片机出现嵌入式系统最初的应用是基于单片机。汽车,工业机器,通信装置等成千上万种产品通过内嵌电子装置获得更佳的使用性能。n20 世纪80 年代:嵌入式操作系统出现商业嵌入式实时内核包含传统操作系统的特征,使得开发周期缩短,成本降低,效率提高促使嵌入式系统有了更为广阔的应用空间。n20 世纪90 年代:实时多任务操作系统软件规模的不断上升,对实时性要求的提高,使得实时内核逐步发展为实时多任务操作系统,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。1.7巨大的
4、市场n计算机应用的普及、互联网技术的实用以及纳米微电子技术的突破,正有力推动着21 世纪工业生产,商业活动科学试验和家庭生活等领域自动化和信息化进程。n嵌入式产品的巨大商机全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居。n你接触的每一样东西将装有芯片和嵌入式软件。1.8创新的机遇n通用计算机产业是垄断的。n嵌入式系统与技术是一个分散的工业,充满竞争、机遇与创新。n没有哪一个系列的处理器和操作系统能够垄断全部市场即便在体系结构上存在着主流,但各不相同的应用领域决定了不可能有少数公司,少数产品垄断全部市场。因此嵌入式系统领域的产品和技术,必然是高度分散的,留给各个行业
5、的中小规模高技术公司的创新余地很大。2.嵌入式系统的基本结构n嵌入式系统的构架n嵌入式微处理器n嵌入式操作系统n启动程序BootLoader介绍 2.1嵌入式系统的构架API(Application Programming Interface)2.2嵌入式系统的硬件基本结构2.3嵌入式处理器1. 支持实时多任务.2. 较短的中断响应时间3. 存储区保护功能4. 可扩展的处理器结构5. 较低的功耗分类:嵌入式微控制器(Microcontroller Unit)嵌入式DSP处理器EDSP(Embedded Digital Signal Processor)嵌入式微处理器(Embedded Micr
6、oprocessor Unit) 嵌入式片上系统SOC(System On Chip)2.3.1嵌入式微处理器特点:n功能和微处理器基本一样,是具有32位以上的处理器,具有较高的性能.n具有体积小,功耗少,成本低,可靠性高的特点.n有的可提供工业级应用.流行的嵌入式微处理器:nARM/Strong (ARM公司)nPowerPC (MOTOROL公司)n68000 (MOTOROL公司)nMIPS(MIPS公司)MIPSMIPS处理器处理器MIPS技术公司是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商。在RISC处理器方面占有重要地位。MIPS的意思是“无内锁流水段微处理器”(
7、Microprocessor without interlocked piped stages),最早是在80年代初期由美国斯坦福大学Hennessy教授领导的研究小组研制出来的。 1986年推出R2000处理器,1988年推出R3000处理器,1991年推出第一款64位商用微处理器R4000。之后,又陆续推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型号。之后,MIPS公司的战略发生变化MIPSMIPS处理器处理器此外,24K微架构能符合各种新兴的服务趋势,为宽频存取以及还在不断发展的网络基础设施、通讯协议提供软件可编程的弹性。在嵌入式方面,MI
8、PS 系列微处理器是目前仅次于ARM的用得最多的处理器之一(1999年以前MIPS是世界上用得最多的处理器),其应用领域覆盖游戏机、路由器、激光打印机、掌上电脑等各个方面。MIPS的系统结构及设计理念比较先进,在设计理念上MIPS强调软硬件协同提高性能,同时简化硬件设计。 PowerPC PowerPC处理器处理器PowerPC架构的特点是可伸缩性好,方便灵活。PowerPC处理器品种很多,既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备,无所不包。处理器芯片主要型号是PowerPC 750,它于1997年研制成
9、功,最高的工作频率可以达到500MHz,采用先进的铜线技术。该处理器有许多品种,以便适合各种不同的系统。包括IBM小型机、苹果电脑和其他系统。嵌入式的PowerPC 405(主频最高为266MHz)和PowerPC 440(主频最高为550MHz)处理器内核可以用于各种SoC设计上,在电信、金融和其他许多行业具有广泛的应用。2.3.2嵌入式微控制器嵌入式微控制器就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成ROM/EPROM,RAM,总线,总线逻辑,定时/计数器,Watchdog,I/O,串行口等各种必要功能和外设.其特点为:n一个系列的微控制器具有多种衍生产品;n单片化,体积大
10、大减小,功耗和成本降低,可靠性提高;n是目前嵌入式工业的主流,约占嵌入式系统70%的份额;n多是8位和16位处理器n流行的嵌入式微控制器n通用系列:8051,MCS251,MCS-96/196/296n半通用系列:支持I2C,CAN BUS,LCD及众多专用MCU和兼容系列2.3.32.3.3嵌入式嵌入式DSPDSP嵌入式嵌入式DSPDSP处理器有两个发展方向:处理器有两个发展方向:是嵌入式DSP处理器和嵌入式处理器经 过单片化设计,片上增加丰富的外设成为具有高性能DSP功能的SoC; 是在通用微处理器、微控制器或SoC中增加DSP协处理器,例如Intel的MCS-296和Siemens的Tr
11、iCore。2.3.4 嵌入式外围接口电路和设备接口 根据外围设备的功能可分为以下根据外围设备的功能可分为以下5类类 存储器类型通信接口输入输出设备 设备扩展接口 电源及辅助设备 存储器类型:存储器类型:n存储器是嵌入式系统中存储数据和程序的功能部件,目前常见的存储设备按使用的存储器类型分为:n 静态易失型存储器(RAM,SRAM);n 动态存储器(DRAM);n 非易失性存储器ROM(ROMEPROM,EEPROM,FLASH);n 硬盘、软盘、CDROM等。 通信接口通信接口 目前存在的所有计算机通信接口在嵌入式领域中都有其广泛的应用,应用最为广泛的接口设备包括 RS-232接口(串口UA
12、RT) USB接口(通用串行总线接口) IrDA(Infra Red Data Association红外线接口)、 SPI(串行外围设备接口)、 I2C、CAN总线接口、 蓝牙接口(Bluetooth) Ethernet(以太网接口)、 IEEE1394接口和通用可编程接口GPIO。 输入输出设备输入输出设备 CRT、LCD和触摸屏等,构成了嵌入式系 统中重要的信息输入输出设备,应用广泛。 触摸屏可以方便的实现鼠标和键盘功能。 设备扩展接口设备扩展接口 简单的嵌入式系统如具有简单的记事本、备忘录以及日程计划等功能的PDA,它所需要存储的数据量并不需要很大的内存。由于目前的嵌入式系统功能越来越
13、复杂,需要大容量内存,大的内存使得系统成本和体积加大。目前一些高端的嵌入式系统都会预留可扩展存储设备接口,为日后用户有特别需求时,可购买符合扩展接口规格的装置直接接入系统使用。 常用的扩展卡还有各种CF卡、SD卡、Memory Stick等。目前高端的嵌入式系统都留有一定的扩展卡接口。 电源及辅助设备电源及辅助设备 嵌人式系统力求外观小型化、重量轻以及电源使用寿命长,例如移动电话或PDA,体积较大或者过重的机型已经被淘汰。目前发展的目标是体积小、易携带和外观设计新颖等。在便携式嵌入式系统的应用中,必须特别关注电源装置等辅助设备。 2.4嵌入式操作系统嵌入式操作系统是嵌入式应用软件的基础和开发平
14、台.嵌入式系统的出现,解决了嵌入式软件开发标准化的难题.嵌入式系统具有操作系统的最基本的功能:n进程调度n内存管理n设备管理n文件管理n操作系统接口(API调用)嵌入式操作系统具有的特点:n系统可裁减,可配置.n系统具备网络支持功能n系统具有一定的实时性2.4.1嵌入式操作系统的分类n按照对实时系统的定义,嵌入式系统可分为实时嵌入式系统与非实时嵌入式系统:n实时系统的定义:能够对外部事件做出及时响应的系统。响应时间要有保证。n对外部事件的响应包括n事件发生时要识别出来n在给定时间约束内必须输出结果实时操作系统:VxWorks,WinCE,QNX,Nucleus非实时操作系统:嵌入式Linux2
15、.4.2嵌入式实时操作系统的特点n实时系统必须产生正确的结果n实时系统的响应必须在预定的周期内完成n这两点同样重要n实时系统是具有确定性的。在这些实时系统中,响应时间决定事件是有界的。一个确定的实时系统意味着系统的每个部件都必须具有确定的行为,使得整个系统是确定性的。2.5几种主流的嵌入式操作系统nVxworks: 美国WindRiver公司于1983年开发,具有可靠、实时、可裁减特性。nWindows Embedded:支持具有丰富应用程序和服务的32位嵌入式系统。主要系列:Windows CE3.0, Windows NT Embedded 4.0和带有Server Appliance K
16、it的Windows 2000nPalm OS: Com公司产品,在PDA市场占据很大份额,具有开放的操作系统应用程序接口(API),可让用户灵活方便地定制操作系统。n嵌入式Linux:近两年来,Linux在嵌入式领域异军突起,他的独特性,使其作为开发嵌入式产品的操作系统具备巨大的潜力。Linux具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。2.6嵌入式系统软件的层次结构嵌入式系统软件的层次结构n如当设计一个简单的应用程序时,可以不使用操作系统,但是当设计较复杂的程序时,可能就需要一个操作系统(OS)来管理、控制内存、多任务、周边资源等等
17、。依据系统所提供的程序界面来编写应用程序,可以大大的减少应用程序员的负担。n对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含四个层面:设备驱动层、实时操作系统(RTOS)、应用程序接口(API)层、实际应用程序层。有些资料将应用程序接口API归属于OS层,如图1-1的上半部分所示的嵌入式系统的软件结构,是按三层划分的。由于硬件电路的可裁减性和嵌入式系统本身的特点,其软件部分也是可裁减的。n对于功能简单仅包括应用程序的嵌入式系统一般不使用操作系统,仅有应用程序和设备驱动程序。现代高性能嵌入式系统应用越来越广泛,操作系统使用成为必然发展趋势。本节主要讲述的具有操作系统的嵌入式软件层次。
18、嵌入式系统软件的层次结构嵌入式系统软件的层次结构具有操作系统的嵌入式软件层次驱动层程序 实时操作系统(RTOS) 操作系统的应用程序接口(API) 应用程序 2.7启动程序启动程序BootLoader介绍介绍对于PC机,其开机后的初始化处理器配置、硬件初始化等操作是由BIOS(Basic Input /Output System)完成的,但对于嵌入式系统来说,出于经济性、价格方面考虑一般不配置BIOS,因此我们必须自行编写完成这些工作的程序。这就是所需要的开机程序,在嵌入式中称为BootLoader程序。系统加电复位后,几乎所有的 CPU都从由复位地址上取指令。因此在系统加电复位后,处理器将首
19、先执行 Boot Loader 程序。启动程序启动程序BootLoader介绍介绍BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。系统启动代码完成基本软硬件环境初始化后,对于有操作系统的情况下,启动操作系统、启动内存管理、任务调度、加载驱动程序等,最后执行应用程序或等待用户命令;对于没有操作系统的系统直接执行应用程序或等待用户命令启动程序启动
20、程序BootLoader介绍介绍系统的启动通常有两种方式,一种是可以直接从Flash启动,另一种是可以将压缩的内存映像文件从Flash(为节省Flash资源、提高速度)中复制、解压到RAM,再从RAM启动。当电源打开时,一般的系统会去执行ROM(应用较多的是Flash)里面的启动代码。这些代码是用汇编语言编写的,其主要作用在于初始化CPU和板上的必备硬件如内存、中断控制器等。有时候用户必须根据自己板子的硬件资源情况做适当的调整与修改。 主流bootloader介绍nU-bootnPPCbootnARMbootnBlobnRedboot3.嵌入式系统的开发方法1. 嵌入式系统的设计准则2. 嵌入
21、式系统的设计流程3. 嵌入式系统的开发方法4. 嵌入式系统的开发模式5. 嵌入式系统的测试3.1嵌入式系统的设计准则嵌入式系统设计不同于桌面系统,它非常受制于功能和具体的应用环境。所以嵌入式系统的设计具有一些特殊的要求。嵌入式系统的设计要求:n并发处理,及时响应n接口方便,操作容易n稳定可靠,维护简便n功耗管理,降低成本n功能实用,便于升级3.2嵌入式系统的设计流程嵌入式系统开发的最大特点就是需要软硬件综合开发。其原因在于:一方面,任何一个嵌入式产品都是软件和硬件的结合体;另一方面,一旦嵌入式产品研发完成,软件就固化在硬件环境中,嵌入式软件是针对相应的嵌入式硬件开发的,是专用的。嵌入式系统的这
22、一特点决定了嵌入式应用开发方法不同于传统的软件工程方法。3.2.1 嵌入式系统的开发流程3.2.2从生命周期看嵌入式系统的设计流程3.3 嵌入式系统开发方法n设计过程的明确目标是建造一个有用的产品- 产品功能- 产品性能- 制造成本- 功耗特性- 上市时间n嵌入式产品设计需要一个小组的技术人员协作完成n设计过程会受内外因素的影响而变化3.3.1嵌入式系统分层设计模型3.3.2嵌入式系统的软硬件并行设计3.4嵌入式系统的开发模式网线串口线宿主机目标机3.4嵌入式系统的开发模式n嵌入式系统的软件使用交叉开发平台进行开发。n系统软件和应用软件在主机开发平台上开发n系统软件和应用软件在嵌入式硬件平台上运行。n宿主机(Host)是用来开发嵌入式软件的系统。n目标机(Target)是被开发的目的嵌入式系统。n交叉编译器(Cross-compiler)是进行交叉平台开发的主要软件工具。它是运行在一种处理器体系结构上,但是可以生成在另一种不同的处理器体系结构上运行的目标代码的编译器。3.5嵌入式系统的测试n测试目的:n找到软硬件设计中的错误n减少风险n节约成本n提高性能测试什么:n功能调试(黑盒测试)n压力测试,边界测试,异常测试n错误测试,随机测试,性能测试n覆盖测试(白盒测试)n语句测试,判定和分支测试,条件覆盖