1嵌入式系统软件设计浙江科技学院自动化教研室孙勇智2008.82主要参考资料1.任哲,潘树林,房红征。嵌入式操作系统基础uC/OS-II和Linux。北京:北京航空航天大学出版社,2006.8。2.王田苗。嵌入式系统设计及实例开发——ARM与uC/OS-Ⅱ。北京:清华大学出版社,2002.9。3.(美)JeanJ.Labrosse,邵贝贝译。uC/OS-Ⅱ——源码公开的实时嵌入式操作系统。北京:中国电力出版社,2001.8。简介:是目前学习嵌入式操作系统最好的入门教材,书中对一个完整的嵌入式实时内核——uC/OS-Ⅱ进行了剖析,详细讲述了实时内核的设计和创建方法,以及多任务实时系统的原理和编程思想。4.ARM嵌入式系统基础教程。周立功。北京:北京航空航天大学出版社,2005.1。5.实时系统软件基础。郑宗汉。北京:清华大学出版社,2003.1。3第一章嵌入式系统的基本概念第一节嵌入式系统综述4一、嵌入式系统的定义IEEE定义根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置(原文为devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants)”。可以看出此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。一般定义以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。5嵌入式产品一览6嵌入式系统应用领域嵌入式应用信息家电智能玩具军事电子通信设备移动存贮工控设备智能仪表汽车电子网络设备工业消费电子军事国防电子商务网络7二、嵌入式系统的发展历史嵌入式系统的发展历史嵌入式系统已经有了近30年的发展历史,它是硬件和软件交替发展的双螺旋式发展。第一款微处理器是Intel的4004,它出现在1971年,然后是是Intel公司的8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4个8位并口、1个全双工串行口、两个16位定时器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051。嵌入式系统本身是一个相对模糊的定义。一个手持的MP3和一个PC104的微型工业控制计算机都可以认为是嵌入式系统。81981年ReadySystem发展了世界上第1个商业嵌入式实时内核(VTRX32)包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。随后,出现了如IntegratedSystemIncorporation(ISI)的PSOS、IMG的VxWorks、QNX公司的QNX等,PalmOS,WinCE,嵌入式Linux,Lynx,uCOS、Nucleus,以及国内的Hopen、DeltaOS等嵌入式操作系统。今天RTOS已经在全球形成了1个产业,根据美国EMF(电子市场分析)报告,1999年全球RTOS市场产值达3.6亿美元,而相关的整个嵌入式开发工具(包括仿真器、逻辑分析仪、软件编译器和调试器)则高达9亿美元。9据国外某研究机构的统计,1999年,嵌入式操作系统全球产值3.62亿美元,2004年全球嵌入式软件的销售规模已经达到了395亿美元,而嵌入式系统产品的产值已达到2000亿美元,预计全球嵌入式系统产品潜在的市场将超过10000亿美元。再从手持设备市场来看,2000年的全球产销量为1290万部,而到2004年时6340万部。2001年中国信息家电市场将达到500亿~700亿元,2004年达到3500亿~5000亿元。目前,嵌入式操作系统的品种较多,一年前的统计显示,仅用于信息家电的嵌入式操作系统就有40种左右。嵌入式操作系统产品中,3Com公司的PalmOS和微软的WindowsCE,分别占据着手持设备市场份额的70%和20%。三、嵌入式系统市场分析10四、嵌入式系统的几个重要特征(1)系统内核小由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如ENEA公司的OSE分布式系统,内核只有5K,而Windows的内核则要大得多。(2)专用性强嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。11(3)系统精简嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。(4)高实时性OS这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。软件代码要求高质量和高可靠性、实时性。(5)嵌入式软件开发走向标准化嵌入式系统的应用程序可以没有操作系统直接在芯片上运行。为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-TimeOperatingSystem)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。12(6)嵌入式系统开发需要开发工具和环境由于其本身不具备自主开发能力,用户通常也不能对其中的程序功能进行修改,必须有开发工具和环境才能进行开发。这些工具和环境一般是基于通用计算机上的软硬件设备。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。13嵌入式系统与PC之间的区别嵌入式系统一般是专用系统,而PC是通用计算平台嵌入式系统的资源比PC少得多嵌入式系统软件故障带来的后果比PC机大得多嵌入式系统一般采用实时操作系统嵌入式系统大都有成本、功耗的要求嵌入式系统得到多种微处理体系的支持嵌入式系统需要专用的开发工具14嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。五、典型嵌入式系统基本组成15MPU微处理器电源模块时钟复位FlashRAMROMUSBLCDKeyboard外围电路Other外设(1)硬件16处理器存储器输入输出操作系统应用程序软件结构硬件结构(2)软件17第一章嵌入式系统的基本概念第二节嵌入式系统硬件基础18嵌入式处理器的特点1)对实时多任务有很强的支持能力。能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。3)可扩展的处理器结构。以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。4)很低的功耗。尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的系统,需要功耗只有mW甚至μW级。一、嵌入式处理器(嵌入式系统的核心)19嵌入式微控制器(MCU)嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、FlashRAM、EEPROM等各种必要功能和外设。和嵌入式微处理器相比,微控制器的最大特点是单片化,外设资源丰富,体积小,功耗和成本低、可靠性高。种类繁多,如8051、P51XA、MCS-251、MCS-96/196/296、C166/167。20嵌入式微处理器(EMPU)以通用CPU为基础,在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。功能与和标准微处理器基本类似,在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。与工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。与单片机相比,功能更为强大。主流芯片X86、SC-400、PowerPC、68000、MIPS、ARM系列等。21嵌入式DSP处理器(EDSP)是DSP处理器经过单片化、EMC改造、增加片上外设成为嵌入式DSP处理器,TI的TMS320C2000/C5000等属于此范畴。在通用单片机或SOC中增加DSP协处理器,例如Intel的MCS-296和Siemens的TriCore。DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。22嵌入式片上系统(SOC)SystemOnChip(SOC),在一个硅片上实现一个更为复杂的系统。以各种通用处理器为内核,将需要为外围器件设计在一个芯片上,用标准的VHDL等语言描述,存储在器件库中。通用SOC系列包括Siemens的TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和Motorola联合研制的Neuron芯片。专用SOC一般专用于某个或某类系统中,不为一般用户所知。一个有代表性的产品是Philips的SmartXA。23普林斯顿结构(又称VonNeumann结构)指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据21)数据与指令都存储在存储器中2)被大多数计算机所采用3)典型处理器:ARM7、8XC196二、嵌入式处理器体系结构24指令的执行周期T1)取指令(InstructionFetch):TF2)指令译码(InstructionDecode):TD3)执行指令(InstructionExecute):TE4)存储(Storage):TS每条指令的执行周期:T=TF+TD+TE+TS25嵌入式处理器体系结构——哈佛结构指令寄存器控制器数据通道输入输出中央处理器程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据1)程序存储器与数据存储器分开,提供了较大的数存储器带宽2)适合于数字信号处理,大多数DSP都是哈佛结构3)典型处理器:ARM9、8XC5126三、CISC和RISCCISC:复杂指令集(ComplexInstructionSetComputer)•具有大量的指令和寻址方式•8/2原则:80%的程序只使用20%的指令•大多数程序只使用少量的指令就能够运行。RISC:精简指令集(ReducedInstructionSetComputer)•在通道中只包含最有用的指令•确保数据通道快速执行每一条指令•使CPU硬件结构设计变得更为简单27CISC与RISC的数据通道IFIDREGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道28影响CPU性能的因素:流水线、超标量和缓存流水线技术:几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp29超标量执行超标量执行:超标量CPU采用多条流水线结构执行1预取指令CACHE译码2译码1执行2执行1预取译码2译码1执行2流水线1流水线2数据30高速缓存(CACHE)微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。CPU高速缓存控制器CACHE主存数据数据地址31四、总线和总线桥CPU低速设备桥数据高速总线存储器高速设备低