




已阅读5页,还剩154页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统设计与实例开发第二章嵌入式系统设计基本概念,主要内容,2.1嵌入式硬件系统2.2嵌入式软件系统2.3嵌入式系统的基本设计过程2.4选择的软硬件平台,RISC和CISC冯诺依曼体系结构和哈佛体系结构流水线嵌入式微处理器体系结构总线,嵌入式系统硬件基础,CISC和RISC,CISC:复杂指令集(ComplexInstructionSetComputer)具有大量的指令和寻址方式,指令长度可变8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。,RISC:精简指令集(ReducedInstructionSetComputer)只包含最有用的指令,指令长度固定确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单,CISC工作方式,RISC工作方式,CISC的背景和特点,背景:存储资源紧缺,强调编译优化增强指令功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的(微程序)指令系统来实现为节省存储空间,强调高代码密度,指令格式不固定,指令可长可短,操作数可多可少寻址方式复杂多样,操作数可来自寄存器,也可来自存储器采用微程序控制,执行每条指令均需完成一个微指令序列CPI,指令越复杂,CPI越大。,CISC的主要缺点,指令使用频度不均衡。高频度使用的指令占据了绝大部分的执行时间,扩充的复杂指令往往是低频度指令。大量复杂指令的控制逻辑不规整,不适于VLSI工艺VLSI的出现,使单芯片处理机希望采用规整的硬联逻辑实现,而不希望用微程序,因为微程序的使用反而制约了速度提高。(微码的存控速度比CPU慢5-10倍)。软硬功能分配复杂指令增加硬件的复杂度,使指令执行周期大大加长,直接访存次数增多,数据重复利用率低。不利于先进指令级并行技术的采用流水线技术,RISC基本设计思想,减小CPI:CPUtime=Instr_Count*CPI*Clock_cycle精简指令集:保留最基本的,去掉复杂、使用频度不高的指令采用Load/Store结构,有助于减少指令格式,统一存储器访问方式采用硬接线控制代替微程序控制,RISC的提出与发展,Load/Store结构提出:CDC6600(1963)-CRAY1(1976)RISC思想最早在IBM公司提出,但不叫RISC,IBM801处理器是公认体现RISC思想的机器。1980年,Berkeley的Patterson和Dizel提出RISC名词,并研制了RISC-,实验样机。1981年Stenford的Hennessy研制MIPS芯片。85年后推出商品化RISC:MIPS1(1986)和SPARCV1(1987),典型的高性能RISC处理器,SUN公司的SPARC(1987)MIPS公司的SGI:MIPS(1986)HP公司的PA-RISC,IBM,Motorola公司的PowerPCDEC、Compac公司的AlphaAXPIBM的RS6000(1990)第一台SuperscalarRISC机,CISC与RISC的对比,冯诺依曼体系结构,冯诺依曼体系结构,指令寄存器,控制器,数据通道,输入,输出,中央处理器,存储器,程序,指令0,指令1,指令2,指令3,指令4,数据,数据0,数据1,数据2,哈佛体系结构,指令寄存器,控制器,数据通道,输入,输出,CPU,程序存储器,指令0,指令1,指令2,数据存储器,数据0,数据1,数据2,地址,指令,地址,数据,流水线技术,流水线(Pipeline)技术:几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动,译码,取指,执行add,译码,取指,执行sub,译码,取指,执行cmp,时间,Add,Sub,Cmp,指令流水线以ARM为例,为增加处理器指令流的速度,ARM7系列使用3级流水线.允许多个操作同时处理,比逐条指令执行要快。PC指向正被取指的指令,而非正在执行的指令,Fetch,Decode,Execute,从存储器中读取指令,解码指令,寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank),PCPC,PC-4PC-2,PC-8PC-4,ARMThumb,最佳流水线,该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数(CPI)=1,操作,周期,123456,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Decode,Execute,Fetch,Decode,Fetch,Fetch,LDR流水线举例,该例中,用6周期执行了4条指令指令周期数(CPI)=1.5,周期,操作,123456,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Data,Writeback,Fetch,Decode,Execute,Fetch,Decode,Fetch,分支流水线举例,流水线被阻断注意:内核运行在ARM状态,周期,12345,地址操作,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Fetch,Fetch,Decode,Execute,Linkret,Adjust,Fetch,Decode,Fetch,超标量执行,超标量(Superscalar)执行:超标量CPU采用多条流水线结构,执行1,取指,指令,译码2,译码1,执行2,执行1,取指,译码2,译码1,执行2,流水线1,流水线2,数据回写,嵌入式处理器体系结构,按体系结构的不同可分为五大类ARMMIPSPOWERPCX86SH系列,ARM公司的ARMRISC处理器ARM7Thumb家族ARM9Thumb家族ARM10Thumb家族ARM11Thumb家族,IntelStrongARM,StrongARM110StrongARM1100StrongARM1110StrongARM1111,INTEL的Xscale架构处理器,基于ARMV5TE体系结构兼容ARMV5TEISA指令集(不支持浮点指令集)在处理器内核周围提供了指令和数据存储器管理单元指令、数据和微小数据缓存写缓冲、挂起缓冲和分支目标缓冲器电源管理性能监控调试JTAG单元以及协处理器接口MAC协处理器内核存储总线,MIPS,从1986年推出R2000处理器以来,MIPS陆续推出R3000、R4000、R8000等。之后,MIPS公司的战略发生变化,把重点放在嵌入式系统。1999年,MIPS公司发布了MIPS32和MIPS64体系结构标准,集成了原来所有的MIPS指令集,并且增加了许多更强大的功能。此后MIPS公司又陆续开发了高性能、低功耗的32位和64位处理器内核。,MIPSRISC,MIPS,在MIPS的32位内核中4K系列对应于SOC应用设计;M4K系列内核是为在下一代消费电子、网络、宽带应用中越来越受欢迎的多CPUSOC所设计;4KE系列具有目前32位通用嵌入式处理器中最高的DMIPS/MHz性能指标;4KS系列由于采用了特殊的SmartMIPS体系结构,特别适用于需要安全数据传输的领域,比如网络、智能卡等;5K和20Kc系列属于MIPS的64位内核5K能提供1.4DMIPS/MHz的性能以及最低350MHz的运行速率。20Kc是当今最快的可授权嵌入式处理器内核。一般运行在600MHz,具有7段流水线的20Kc内核,能提供1.2GFLOPS的峰值浮点运算能力。,MIPS,在嵌入式处理器市场中,基于MIPS内核的处理器占据了相当大的数量2002年,一共付运了8700万片采用MIPS内核的嵌入式处理器,份额仅次于ARM位居全球第二。在目前快速增长的比如CableModem、DSLModem、DVD录像机等领域内,MIPS的市场份额位居第一。MIPS的合作伙伴包括了AMD,IDT,NEC,TI,SONY等众多厂商,PowerPC体系结构,Motorola半导体(现Freescale半导体)联合IBM以及苹果电脑IBMPowerPC750PowerPCG3MotorolaMPCMC,X86体系结构,IntelX86体系结构AMD最新的X86体系结构嵌入式处理器产品为Geode系列处理器CISC指令集,SH体系结构,SH(SuperH)系列是由前日立半导体公司(现Renesas公司)推出的嵌入式处理器SH系列的CPU指令格式是固定的,只有一个字长,绝大多数指令是单周期完成的,即使是复杂的乘加指令也仅需2个时钟周期为了克服内存访问的瓶颈,SH的CPU简化寻址方式,采用Load/Store(装载/存储)结构,并且在片内设置高速缓存,以减少访问内存的时间,1999年底,SH系列累计生产达1.18亿片。SH系列投入市场后,用量最多的是工业,占总量的36%,第二位是办公自动化,占总量的26%;第三位是消费领域;再其次的是通信领域。此外,汽车导航、定位、控制系统,也是SH系列不小的一个市场。在美国,SH系列占有较大的市场份额型号SH1-4(32位)SH5(64位),2.1.1嵌入式处理器,嵌入式微处理器一般具备四个特点:对实时和多任务有很强的支持能力;具有功能很强的存储区保护功能;可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微处理器;嵌入式处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为mW甚至W级。,2.1.1嵌入式处理器,嵌入式系统中的处理器通常分为四大类:微处理器(Micro-ProcessorUnit,MPU)微控制器(Micro-ControllerUnit,MCU)数字信号处理器(DigitalSignalProcessor,DSP)嵌入式片上系统(SystemOnChip,SoC),2.1.1嵌入式处理器,1.嵌入式微处理器嵌入式微处理器的基础是通用计算机中的CPU。嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。,2.1.1嵌入式处理器,2.嵌入式微控制器嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成存储器(少量ROM/EPROM、RAM或两者都有)、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口等各种必要功能模块。,2.1.1嵌入式处理器,2.嵌入式微控制器和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。,2.1.1嵌入式处理器,3.嵌入式数字信号处理器嵌入式数字信号处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面DSP算法正在大量进入嵌入式领域,DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP。,2.1.1嵌入式处理器,4.嵌入式片上系统一般认为SoC具有以下特点:SoC应由可设计重用的IP核组成,IP核是具有复杂系统功能的能够独立出售的VLSI块;IP核应采用深亚微米以上工艺技术;SoC中可以有多个MPU、DSP、MCU或其复合的IP核。,2.1.2存储器,存储器的物理实质是一组或多组具备数据输入输出和数据存储功能的集成电路,用于存放计算机工作所必须的数据和程序。嵌入式处理器在运行时,大部分总线周期都是用于对存储器的读/写操作,因此,存储器子系统性能的好坏将在很大程度上影响嵌入式系统的整体性能。,2.1.2存储器,在嵌入式系统中最常用的存储器类型分为三类:随机存取的RAM;只读的ROM;介于两者之间的混合存储器。,2.1.2存储器,嵌入式系统中常用的存储器类型,2.1.2存储器,1.随机存储器(RandomAccessMemory,RAM)RAM能够随时在任一地址读出或写入内容。RAM的优点是读/写方便、使用灵活;RAM的缺点是不能长期保存信息,一旦停电,所存信息就会丢失。RAM用于二进制信息的临时存储或缓冲存储。,2.1.2存储器,RAM主要有两大类存储设备,即静态RAM(SRAM)和动态RAM(DRAM)。两者都是易失性存储器,它们之间的最大差别是存储于其中的数据的寿命。SRAM的存储单元电路是以双稳态电路为基础的,因此状态稳定,只要不掉电,信息就不会丢失。DRAM的存储单元是以电容为基础的,电路简单,集成度高,功耗小,但DRAM即使不掉电也会因电容放电而丢失信息,需要定时刷新。,2.1.2存储器,2.只读存储器(Read-OnlyMemory,ROM)ROM中存储的数据可以被任意读取,断电后,ROM中的数据仍保持不变,但不可以写入数据。ROM在嵌入式系统中非常有用,常常用来存放系统软件(如ROMBIOS)、应用程序等不随时间改变的代码或数据。ROM存储器按发展顺序可分为:掩膜ROM、可编程ROM(PROM)和可擦写可编程ROM(EPROM)。,2.1.2存储器,3.混合存储器混合存储器既可以随意读写,又可以在断电后保持设备中的数据不变。混合存储设备可分为三种:EEPROMNVRAMFLASH,2.1.2存储器,(1)EEPROMEEPROM是电可擦写可编程存储设备,与EPROM不同的是EEPROM是用电来实现数据的清除,而不是通过紫外线照射实现的。EEPROM允许用户以字节为单位多次用电擦除和改写内容,而且可以直接在机内进行,不需要专用设备,方便灵活,常用作对数据、参数等经常修改又有掉电保护要求的数据存储器。,2.1.2存储器,(2)NVRAM(非易失性随即访问存储器)NVRAM通常就是带有后备电池的SRAM。当电源接通的时候,NVRAM就像任何其他SRAM一样,但是当电源切断的时候,NVRAM从电池中获取足够的电力以保持其中现存的内容。NVRAM在嵌入式系统中使用十分普遍,它最大的缺点是价格昂贵,因此,它的应用被限制于存储仅仅几百字节的系统关键信息。,2.1.2存储器,(3)FlashFlash(闪速存储器,简称闪存)是不需要Vpp电压信号的EEPROM,一个扇区的字节可以在瞬间(与单时钟周期比较是一个非常短的时间)擦除。Flash比EEPROM优越的方面是,可以同时擦除许多字节,节省了每次写数据前擦除的时间,但一旦一个扇区被擦除,必须逐个字节地写进去,其写入时间很长。,各种存储器特性的比较,2.1.2存储器,5.嵌入式系统存储子系统的结构在实际的嵌入式系统中,常常采用分级的方法来设计整个存储器子系统。把全部存储系统分为四级,它们在存取速度上依次递减,而在存储容量上逐级递增。寄存器组高速缓存内存外存,分级存储器系统,分级存储器系统,2.1.2存储器,6.嵌入式系统中存储器的选择当软件设计者编写好程序,并且ROM映像已经准备好以后,系统的硬件设计者就需要决定使用哪些类型的存储器设备,每一种设备的大小为多少。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本等。,2.1.3外围设备,除了处理器和存储器,嵌入式系统硬件中还包含一些相关的硬件设备,称为外围设备。外设可分为两种类型,即内部外设和外部外设。内部外设与处理器集成在同一块芯片上;外部外设与处理器不在同一块芯片上。根据外围设备的功能可分为:通信接口、I/O设备、设备扩展接口、电源及辅助设备等。,2.1.3外围设备,1.通信接口嵌入式系统的通信接口可以分为有线传输和无线传输两种。有线传输接口包括传统的RS-232接口(串行UART接口)、通用串行总线(USB)接口、快速数据传输接口IEEE1394、CAN总线、以太网接口等;无线传输接口包括红外线(IrDA)、GSM、GPRS与蓝牙接口等。,通信接口,(1)UARTUART提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其他使用RS-232C接口的串行设备进行通信。在嵌入式系统软件开发调试时,常常通过UART来进行各种输入/输出操作。,通信接口,(2)USB接口通用串行总线(UniversalSerialBus,USB)是1995年Microsoft、Compaq、IBM等公司联合制定的一种新的计算机串行通信协议。USB是一种快速的、双向的、低价的并且可以进行热插拔的新型串行接口技术,支持各种PC与外设之间的连接。,通信接口,(3)以太网接口嵌入式系统中实现以太网接口有两种方法:一是采用嵌入式处理器与网卡芯片的组合。该方法通用性强,不受处理器的限制,但是,处理器和网络数据交换通过外部总线实现,速度慢、可靠性不高,并且电路板布线复杂。另一种方法是直接采用带有以太网接口的嵌入式处理器。这种方法要求嵌入式处理器有通用的网络接口,如MII。处理器和网络数据交换通过内部总线实现,因此速度快,实现简单。,通信接口,(4)红外线红外线收发模块主要由三部分组成,包括一个红外线发光二极管、一个硅晶PIN光电二极管和一个控制电路。其中的红外线发光二极管就是发射红外线波的单元,发射的红外线波长在0.85到0.9微米之间,硅晶PIN光检二极管用于接收红外线信号,所接收到的信号会传送到控制电路中,再传送到嵌入式系统微处理器进行数据处理或数据存储。,通信接口,(5)蓝牙接口(Bluetooth)蓝牙是一种低带宽、低功耗、近距离的传输协议。蓝牙的工作在2.4022.480GHz频段,它采用了跳频扩频FHSS,在79个信道上每秒钟1600次跳频,查寻状态时,跳变速率为每秒3200跳,有效地降低了干扰。蓝牙模块主要由三部分组成:无线传输收发单元、基频处理单元以及数据传输接口。,通信接口,蓝牙模块架构图,2.1.3外围设备,2.输入/输出设备嵌入式系统通常还包括输入/输出设备,用于系统与用户的交互。嵌入式系统中输入设备一般包括触摸屏、语音识别、按键、键盘和虚拟键盘等,输出设备主要有LCD显示和语音输出。,输入/输出设备,(1)触摸屏触摸屏按其技术原理可分为5类:矢量压力传感器式、电阻式、电容式、红外线式和表面声波式。,输入/输出设备,电阻触摸屏的工作部分由三部分组成:两层透明的阻性导体层、两层导体之间的隔离层、电极。,输入/输出设备,电容式触摸屏是一块四层复合玻璃屏,玻璃屏的内表面和夹层各涂一层ITO,最外层是只有0.0015mm厚的矽土玻璃保护层,夹层ITO涂层作工作面,四个角引出四个电极,内层ITO为屏层以保证工作环境。当用户触摸电容屏时,手指会吸收一个很小的电流,这个电流分别从屏的四个角上的电极中流出,且理论上流经四个电极的电流与手指头到四角的距离成比例,控制器通过对四个电流比例的精密计算,得出位置。,输入/输出设备,电感式触摸屏的工作原理是在触摸笔中安装LC谐振线圈,通过改变与安装有激励线圈及感应线圈的触摸屏之间的空间距离,使电磁场发生变化从而计算出触点的位置。这种触摸屏是安装在液晶显示屏的后面,而普通的电阻式和电容式触摸屏需要安装在液晶显示屏的前面,因此使用电感式触摸屏,输入笔不必接触屏幕,可以减少对屏幕的磨损,提高输入的灵敏度。,三种触摸屏技术的比较,输入/输出设备,(2)LCD接口嵌入式系统中多数采用液晶显示器(LCD,LiquidCrystalDisplay),LCD是一种低成本、低功率的器件,既可显示文字,又可显示图像。LCD显示器根据其工作原理可分为反射式、吸收式(又称透视式)LCD显示器。,输入/输出设备,反射式LCD的基本原理是:首先入射光线通过一个偏极化板,接着偏极化的光遇到液晶材料,如果激活液晶材料的部分区域,则LCD材料的分子整齐排列,使偏极化光能穿过LCD材料,否则光线无法通过,最后通过液晶材料的光线碰到一面镜子而反射回来,因此,激活的部分区域亮起来。,输入/输出设备,吸收式LCD的工作原理类似,但使用黑色表面而不使用镜子,该黑色表面在激活区域下面,可以吸收光线,因而显得比其他区域暗。,2.1.3外围设备,3.设备扩展接口扩展设备很多,但所采用的扩展接口却大同小异。PC机内存卡国际联合会(PCMCIA)建立一个省电、小体积的整合性电子卡片的标准,提高移动计算机的互换性。根据该标准生产的外形如信用卡大小的产品叫做PCMCIA卡(也称PC卡)。其他常用的扩展卡还有各种CF卡、SD卡、MemoryStick等。,2.1.3外围设备,4.电源及辅助设备电源是电子产品中一个组成部分,为了使电路性能稳定,往往还需要稳定电源。设计者要根据产品的要求来选择合适的电源。嵌入式系统力求外观小型化、质量轻以及电源使用寿命长,因此,目前电源及辅助设备发展的目标是体积小、易携带和外观设计新颖等,尤其是在便携式嵌入式系统的应用中。,主要内容,2.1嵌入式硬件系统2.2嵌入式软件系统2.3嵌入式系统的基本设计过程2.4本教程选择的软硬件平台,2.2嵌入式操作系统,2.2.1嵌入式操作系统的发展嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点,与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。,2.2.1嵌入式操作系统的发展阶段,嵌入式操作系统伴随着嵌入式系统的发展,大致经历了四个阶段:第一阶段:无操作系统的嵌入算法阶段,以单芯片为核心的可编程控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。应用于一些专业性极强的工业控制系统中,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。,2.2.1嵌入式操作系统的发展阶段,第二阶段:以嵌人式CPU为基础、简单操作系统为核心的嵌入式系统。由于CPU种类繁多,因此通用性比较差;系统开销小,效率高;一般配备系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。,2.2.1嵌入式操作系统的发展阶段,第三阶段:通用的嵌入式实时操作系统阶段。以嵌入式操作系统为核心的嵌入式系统,能运行于各种类型的微处理器上,兼容性好;内核精小、效率高,具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API);嵌入式应用软件丰富。,2.2.1嵌入式操作系统的发展阶段,第四阶段:以基于Internet为标志的嵌入式系统。这是一个正在迅速发展的阶段。随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。,2.2嵌入式操作系统,2.2.2嵌入式实时操作系统的分类嵌入式实时操作系统最主要的特征是性能上的实时性,也就是说,系统的正确性不仅依赖于计算的逻辑结果,也依赖于结果产生的时间。常用的嵌入式RTOS分三大类:商用系统、专用系统和开放系统。,2.2.2嵌入式实时操作系统的分类,1.商用系统商品化的嵌入式实时操作系统,主要有WindRiver的Vxworks和pSOS+,3Com的PalmOS以及Microsoft的WindowsCE等。它们的优点是功能可靠、稳定,技术支持和售后服务比较完善,辅助工具比较齐全,而且提供了高端嵌入式系统要求的许多功能。缺点是价格昂贵,而且源代码封闭,影响了开发者学习和使用的积极性。,2.2.2嵌入式实时操作系统的分类,2.专用系统一些专业厂家为本公司产品特制的嵌入式操作系统,仅供应用开发者使用。这些操作系统功能相对较弱,但针对性强,其安全可靠性大都超过普通商用系统。例如,由摩托罗拉、西门子和诺基亚等几家大型移动通讯设备商合作研制的应用于手机的嵌入式操作系统SymbianOS。,2.2.2嵌入式实时操作系统的分类,3.开放系统这是近年来发展迅速的一类操作系统,其典型代表是嵌入式Linux和C/OS-。由于应用系统开发者可以免费获得这些系统的源代码,因而降低了开发难度。但其缺点也非常明显,功能简单,技术支持差,系统稳定性也相对较差。因此,它们对开发者的要求较高。,2.2嵌入式操作系统,2.2.3嵌入式实时操作系统的可裁剪性及其实现所谓操作系统的可裁剪性(可配置性),就是一个规模大且功能齐全的操作系统,在结构上保证了用户可在其中有选择地保留某些模块,而删减掉一些模块的性能。所谓的配置方法有两种:一种是在系统进行编译连接时进行配置;另一种是在系统运行时进行配置。,2.2嵌入式操作系统,2.2.4常用的实时操作系统1.VxWorksVxWorks操作系统是美国WindRiver公司为分布式环境设计的具备网络功能的实时操作系统。VxWorks拥有良好的持续发展能力、高性能的内核以及良好的用户开发环境,在实时操作系统领域内占据一席之地。它以良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。,2.2.4常用的实时操作系统,2.QNXQNX是一个实时的、可扩充的操作系统;它部分遵循POSIX相关标准,如POSIX.1b实时扩展;它提供了一个很小的微内核以及一些可选的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间中运行。所有其他操作系统服务都实现为协作的用户进程,因此QNX内核非常小巧(QNX4x大约为12KB),而且运行速度极快。,2.2.4常用的实时操作系统,3.PalmOSPalmOS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口,利用它可以方便地与其它外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。PalmOS具有以下特点:操作系统的节能功能;合理的内存管理PalmOS的数据是以数据库(database)的格式来存储的,2.2.4常用的实时操作系统,4.WindowsCEWindowsCE是微软开发的一个从整体上为有限资源的平台而设计的多线程、完整优先权、多任务的32位嵌入式操作系统。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。WindowsCE的设计目标是:模块化及可伸缩性、实时性能好,通信能力强大,支持多种CPU。,2.2.4常用的实时操作系统,4.WindowsCEWindowsCE的特点有:灵活的电源管理功能,包括休眠/唤醒模式;使用了对象存储(objectstore)技术,包括文件系统、注册表及数据库;拥有良好的通信能力;支持嵌套中断;更好的线程响应能力;256个优先级别;WindowsCE的API是Win32API的一个子集,支持近1500个Win32API。,2.2.4常用的实时操作系统,5.C/OS-C/OS-是一个可裁剪、源码开放、结构小巧、抢先式的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能优良和可扩展性强等特点。C/OS-最多可支持64个任务,分别对应优先级063,其中0为最高优先级。实时内核在任何时候都是运行就绪了的最高优先级的任务,是真正的实时操作系统。C/OS-最大程度地使用ANSIC语言开发,现已成功移植到近40多种处理器体系上。,2.2.4常用的实时操作系统,6.嵌入式LinuxLinux类似于UNIX,是一种免费的、源代码完全开放的、符合POSIX标准规范的操作系统。随着Linux的迅速发展,嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux)和一般的嵌入式Linux版本(如uClinux和PocketLinux等)。,多道程序技术,为了提高计算机系统中各种资源的利用率,现代操作系统广泛采用多道程序技术(multi-programming),使多个程序同时在系统中存在并运行。,CPU,I/O,单道程序:,多道程序:,CPU,I/O,作业甲(红黄),作业乙(蓝绿),进程、线程和任务,在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,这样的话,要想描述这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了进程的概念。,什么是进程?,Aprocessaprograminexecution,一个进程应该包括:程序的代码;程序的数据;PC中的值,用来指示下一条将运行的指令;一组通用的寄存器的当前值,堆、栈;一组系统资源(如打开的文件)总之,进程包含了正在运行的一个程序的所有状态信息。,main().A().PROCESS,AprogramisCstatementsorcommands静态的;Aprocessisprogram+runningcontext动态的.,main().A().PROGRAM,heap,StackAMain,Registers,PC,ProcessProgram,进程的特性,动态性:程序的运行状态在变,PC、寄存器、堆和栈等;独立性:是一个独立的实体,是计算机系统资源的使用单位。每个进程都有“自己”的PC和内部状态,运行时独立于其他的进程(逻辑PC和物理PC);并发性:从宏观上看各进程是同时独立运行的,四个进程在并发地运行,(本图摘自AndrewS.Tanenbaum:“ModernOperatingSystems”),什么是线程?,自从60年代提出进程概念以来,在操作系统中一直都是以进程作为独立运行的基本单位,直到80年代中期,人们又提出了更小的能独立运行的基本单位线程。,Why线程?,【案例】编写一个MP3播放软件。核心功能模块有三个:(1)从MP3音频文件当中读取数据;(2)对数据进行解压缩;(3)把解压缩后的音频数据播放出来。,单进程的实现方法,main()while(TRUE)Read();Decompress();Play();Read()Decompress()Play(),问题:播放出来的声音能否连贯?各个函数之间不是并发执行,影响资源的使用效率;,多进程的实现方法,程序1main()while(TRUE)Read();Read(),问题:进程之间如何通信,共享数据?,程序3main()while(TRUE)Play();Play(),程序2main()while(TRUE)Decompress();Decompress(),怎么办?,需要提出一种新的实体,满足以下特性:(1)实体之间可以并发地执行;(2)实体之间共享相同的地址空间;,这种实体就是:线程(Thread),什么是线程?,Thread:Asequentialexecutionstreamwithinaprocess;Athreadofexecution;进程当中的一条执行流程。,从两个方面来理解进程:从资源组合的角度:进程把一组相关的资源组合起来,构成了一个资源平台(环境),包括地址空间(代码段、数据段)、打开的文件等各种资源;从运行的角度:代码在这个资源平台上的一条执行流程(线程)。,进程线程资源平台,优点:一个进程中可以同时存在多个线程;各个线程之间可以并发地执行;各个线程之间可以共享地址空间。,什么是任务?,在许多嵌入式操作系统当中,一般把能够独立运行的实体称为“任务”(Task)。,任务的实现,在多道程序(多任务)的嵌入式操作系统中,任务之间的结构为层状结构,存在着父子关系;当嵌入式内核刚刚启动时,只有一个任务存在,然后由该任务派生出所有其他的任务。,任务的层次结构,OS初始任务,任务,任务,任务,任务,任务,任务,任务,任务的创建,在嵌入式操作系统当中,任务的创建主要有两种模型:fork/exec和spawn;fork/exec:符合IEEE/ISOPOSIX1003.1标准,先用fork系统调用创建与父任务完全相同的一份内存空间,然后再用exec系统调用来移除父任务的内容,并调入子任务的程序代码。优点:允许继承;spawn:直接为子任务创建一个全新的地址空间,并装入其程序代码。,任务的描述,问题:如果让你来设计OS当中的任务机制,那么你将如何来描述一个任务?,描述任务的数据结构:任务控制块(TaskControlBlock,TCB)。系统为每个任务都维护了一个TCB,用来保存与该任务有关的所有信息。,任务控制块的内容,任务ID、任务的状态、任务的优先级;CPU上下文信息:通用寄存器的值、PC寄存器的值、程序状态字、栈指针的值;如果在该OS中,任务描述的是进程,则还应包括其他的一些内容,如段表地址、页表地址等存储管理方面的信息;根目录、文件描述字等文件管理方面的信息。,任务的创建:为该任务生成一个TCB;任务的终止:回收它的TCB;任务的组织管理:通过对TCB的组织管理来实现。,系统用TCB来描述任务的基本情况以及运行变化的过程,TCB是任务存在的唯一标志。,任务的状态,任务的三种基本状态:任务在生命结束前处于且仅处于三种基本状态之一不同系统设置的任务状态数目不同。,运行状态(Running):任务占有CPU,并在CPU上运行。处于此状态的任务数目小于等于CPU的数目;就绪状态(Ready):任务已经具备运行条件,但由于CPU忙暂时不能运行,只要分得CPU即可执行;阻塞/等待状态(Blocked/Waiting):任务因等待某种事件的发生而暂时不能运行(如I/O操作或任务同步),此时即使CPU空闲,该任务也不能运行。,任务的状态及其转换,Running,Blocked,Ready,132,4,任务由于I/O操作被阻塞;调度器选择了另一个任务;调度器选中该任务任务的I/O操作完成了。,两个任务的状态转换过程,状态队列,由操作系统来维护一组队列,用来表示系统当中所有任务的当前状态;不同的状态分别用不同的队列来表示(运行队列、就绪队列、各种类型的阻塞队列);每个任务的TCB都根据它的状态加入到相应的队列当中,当一个任务的状态发生变化时,它的TCB从一个状态队列中脱离出来,加入到另外一个队列。,就绪队列和各种I/O队列,任务的调度,在操作系统中,负责去做这个选择的那部分程序,称为调度程序或调度器(scheduler);调度程序在决策过程中所采用的算法,称为是调度算法;调度程序是CPU资源的管理者。,何时进行调度?,当一个新的任务被创建时,是执行新任务还是继续执行父任务?当一个任务运行完毕时;当一个任务由于I/O、信号量或其他的某个原因被阻塞时;当一个I/O中断发生时,表明某个I/O操作已经完成,而等待该I/O操作的任务转入就绪状态;在分时系统中,当一个时钟中断发生时。,两种调度方式,不可抢占(non-preemptive)调度方式:一个进程若被选中就一直运行下去,直到它被阻塞(I/O,或正在等待其他进程),或主动地交出CPU。以上的情形13均可发生调度;可抢占(preemptive)调度方式:当一个进程在运行时,调度程序可以打断它。以上的情形15均可发生调度,另外,在其他一些情形下,如就绪队列中有新进程的优先级高于当前正运行的进程,也可能立即进行调度。,嵌入式调度算法的评价指标,响应时间(responsetime):调度器为一个就绪任务进行上下文切换的时间,以及任务在就绪队列中等待的时间;周转时间(turnaroundtime):一个任务从提交到完成所经历的时间;调度开销(overhead):调度算法在执行时所需要的时间和空间开销;公平(fairness):大致相当的两个进程所得到的CPU时间也应是大致相同的,防止饥饿(starvation);均衡:尽可能使整个系统的各部分(CPU、I/O)都忙起来,提高系统资源的使用效率;吞吐量(Throughput):单位时间内完成的任务数。,先来先服务调度算法,先来先服务(FirstComeFirstServed,FCFS;FirstInFirstOut,FIFO):按照任务到达就绪队列的先后次序进行调度;不可抢占方式:当前任务占用CPU,直到执行完或被阻塞,才让出CPU给另外一个任务;在任务被唤醒后(如I/O完成),并不立即恢复执行,而是放在就绪队列的末尾;优点:简单、公平,易于理解也易于实现。现实生活中应用广泛:排队。,FCFS算法的问题,平均周转时间取决于各任务到达的顺序,若短任务位于长任务之后,将增大平均周转时间。,例如,三个任务A、B、C的运行时间为24、3、3,短作业优先调度算法,短作业优先(ShortestJobFirst,SJF),设计目标是改进FCFS算法,减少平均周转时间;SJF算法要求任务在开始执行时预计执行时间,对预计执行时间短的任务优先分派处理器;两种实现方案:不可抢占方式:当前任务在运行时不会被打断,只有运行完毕或阻塞时,才让出CPU;可抢占方式:如果一个新的短任务到来,其运行时间小于当前正在运行任务的剩余时间,则抢占CPU运行,称为SRTF(ShortestRemainingTimeFirst)。,可以证明:对于一组同时到达的任务,采用SJF算法将得到一个最小的平均周转时间。,D,时间,A,C,aa+ba+b+ca+b+c+d,例如,考察4个任务A、B、C、D,其运行时间分别为a、b、c、d,B,A、B、C、D的周转时间分别为a、a+b、a+b+c和a+b+c+d,因此平均周转时间为:(4a+3b+2c+d)/4显然,当abcd时,平均周转时间最小。,时间片轮转调度算法,在时间片轮转算法(Round-Robin,RR)中,将所有的就绪任务按照FCFS原则,排成一个队列;每次调度时将处理器分派给队首任务,让其执行一小段CPU时间(时间片,timeslice);在一个时间片结束时,如果任务还没有执行完的话,将发生时钟中断,在时钟中断中,调度程序将暂停当前任务的执行,并将其送到就绪队列的末尾,然后执行当前的队首任务;如果一个任务在它的时间片用完之前就已结束或被阻塞,那么立即让出CPU。,开始时,任务B位于队列之首,因此被调度执行。当它的时间片用完后,就把它送到就绪队列的末尾。同时,任务F成为新的队首,被调度运行。,时间片轮转法的特点,优点:公平性:各个就绪任务平均地分配CPU的使用时间。假设有n个就绪任务,时间片大小为q,那么每个任务将得到1/n的CPU时间;活动性:每个任务最多等待(n-1)q时间就能够再次得到CPU去运行;缺点:q的大小难以确定(一般在2050ms)。q太大:退化为FCFS算法,进程在一个时间片内都执行完,响应时间长。如q=100ms;q太小:每个任务都需要更多的时间片才能处理完,任务切换次数增加,增大系统开销。如q=4ms,优先级调度算法,轮转法有一个缺省的前提,即各任务同等重要;“人人生而平等”?恐怕不太现实!同样,并不是每个任务都同等重要,怎么办?分等级!优先级算法(PriorityScheduling):给每个任务设置一个优先级,然后在所有就绪任务中选择优先级最高的那个任务去运行;SJF就是一个优先级算法,每个任务的优先级是它的CPU运行时间(时间越短,优先级越高);分为可抢占和不可抢占两种方式;各任务优先级的确定方式可分为静态和动态两种。,可抢占方式,任务1,优先级,高低,时间,静态优先级方式:指在创建任务时即确定任务的优先级,并保持不变到任务运行结束。缺点:如果一直有高优先级的任务出现,则它们一直占用着CPU,而低优先级的任务“饥饿”。动态优先级方式:指在创建任务时赋予给进程的优先级,在任务运行过程中可以动态改变,以便获得更好的调度性能。为防“饥饿”,根据任务的等待时间调整优先级。在就绪队列中,等待时间延长则优先级提高,从而使优先级较低的任务在等待足够的时间后,其优先级提高到可被调度执行。,优先级类别,(本图摘自AndrewS.Tanenbaum:“ModernOperatingSystems”),可以把进程按照不同的优先级别分组,然后在不同级别之间使用优先级算法,而在同一级别的各个进程之间使用时间片轮转法。,实时系统调度,对于RTOS调度器来说,公平性并不重要。例如:如果老师给你布置了五个家庭作业,其中有一个作业必须在一个小时内完成,显然先做那个作业;RTOS调度器的主要目标就是要使得每个任务都必须在其最终时间期限(deadline)之前完成。,大多数RTOS调度器都采用基于优先级的可抢占调度算法;但在具体实现上:如何设定各个任务的优先级?优先级是静态设置的还是动态可变的?算法的性能如何,能否满足实时要求?,主要内容,2.1嵌入式硬件系统2.2嵌入式软件系统2.3嵌入式系统的基本设计过程2.4本教程选择的软硬件平台,2.3嵌入式系统的基本设计过程,良好的设计方法在嵌入式系统的开发过程中是必不可少的。首先,好的方法有助于规划一个清晰的工作进度,避免遗漏重要的工作,例如性能的优化和可靠性测试对于一个合格的嵌入式产品而言是不可或缺的。其次,采用有效的方法可以将整个复杂的开发过程分解成若干可以控制的步骤,通过一些先进的计算机辅助设计工具,按部就班、有条不紊地完成整个项目。最后,通过定义全面的设计过程,可以使整个团队的各个成员更好地理解自身的工作,方便成员之间相互交流与协作。,嵌入式系统设计主要步骤,2.3嵌入式系统的基本设计过程,2.3.1需求分析显然,在设计一个系统之前,必须清楚要设计什么。在设计的最初阶段,通过与客户进行交流,了解用户的意图,明确客户到底需要开发什么样的产品,包括产品的功能、性能、价格、开发时间等一系列问题。,2.3.1需求分析,1.需求与规格说明通常,描述产品需求的文档是由嵌入式系统的总体设计者从用户的视角来写的,由一系列的用户需求组成。然后,对这些需求进行提炼,从中获取一组一致性的需求,整理成正式的规格说明,这些规格说明里包含了进行系统体系结构设计所需要的足够信息。,2.3.1需求分析,2.确认需求确认需求不仅要理解什么是用户需要的,而且需要理解他们如何表达这些需求。精炼系统需求的方法是建立一个模型,这个模型可以使用已存数据来模拟功能,并且可以在个人电脑或工作站上运行。它应该让用户了解系统是如何使用的,以及用户如何和它进行交互。通常,设备的非功能模型可以让用户了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺织服饰品牌文化传播规划
- 2025浙江温州龙港市市属国有企业面向社会招聘工作人员21人笔试备考题库及答案解析
- 企业管理中的领导力发挥
- 印刷品质量管理细则
- 2025云南丽江市古城区司法局招聘司法行政辅助人员1人考试备考试题及答案解析
- 2025信息安全工程师招聘题库及答案
- 员工职业道德修养课程
- 2025年碳资产管理师考试题库(附答案和详细解析)
- 2025年天津上半年房地产估价师制度与政策商品房销售中禁止的行为试题
- 2025年流行病学流行病调查与预防控制计划模拟卷答案及解析
- 托管班合伙人合同协议书
- 9《犟龟》公开课一等奖创新教学设计
- 2025劳动合同补充协议
- 社区节水节电知识培训课件
- 防火墙行业知识培训课件
- 2025版全新升级二手房买卖合同模板下载
- 乡镇执法证考试题及答案
- 2025年监理工程师继续教育试卷及答案
- 2025滨海投资(天津)有限公司校园招聘考试备考题库及答案解析
- 2024-2025学年度江西建设职业技术学院单招《职业适应性测试》题库试题【名师系列】附答案详解
- 2020-2025年注册土木工程师(水利水电)之专业基础知识通关考试题库带答案解析
评论
0/150
提交评论