




已阅读5页,还剩383页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,嵌入式系统导论,embedded system,2,嵌人式系统应用无处不在,3,什么是嵌入式系统,第一章 嵌入式系统概述,1.1,以往我们按照计算机的体系结构、运算速度、结构规模、适用领域,将其分为大型计算机、中型机、小型机和微计算机,并以此来组织学科和产业分工,这种分类沿袭了约40年。,随着计算机技术和产品对其它行业的广泛渗透,以应用为中心的分类方法变得更为切合实际,也就是按计算机的嵌入式应用和非嵌入式应用将其分为嵌入式计算机和通用计算机。,4,通用计算机具有计算机的标准形态,通过装配不同的应用软件,以类同面目出现并应用在社会的各个方面,其典型产品为PC;,嵌入式计算机则是以嵌入式系统的形式隐藏在各种装置、产品和系统中。,嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。,嵌入式系统是将先进的计算机技术、半导体技术、微电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。,5,嵌入式系统工业的特点和要求 :,1.嵌入式系统工业是不可垄断的高度分散的工业 嵌入式系统工业的基础是以应用为中心的“芯片”设计和面向应用的软件产品开发。,2.嵌入式系统具有的产品特征 嵌入式系统是面向用户、面向产品、面向应用的。 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。 嵌入式系统产品一般具有较长的生命周期,其发展也体现出稳定性。,1.2,6,3.嵌入式系统软件的特征,(1) 软件要求固态化存储 (2) 软件代码高质量、高可靠性 (3) 系统软件(OS)的高实时性是基本要求 (4) 多任务操作系统是知识集成的平台和走向工业标准化道路的基础,4.嵌入式系统开发需要开发工具和环境,嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。,7,5.嵌入式系统软件需要RTOS开发平台,为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。,6.嵌入式系统开发人员以应用专家为主,开发工具的易学、易用、可靠、高效是基本要求。,8,实时系统,1.3,1. 实时计算模式,任何一个系统,如果其产生输出的时刻是至关重要的,它就是实时系统。,德国工业标准DIN44330将实时计算模式定义为:“实时计算模式是一种计算机系统的操作模式。在这种模式下,处理从外部来的数据的程序总是就绪的。所以,能够在可预测的时间内得到希望的结果;数据的到达时间是随机分布的或者是预先决定的,具体情况由不同的应用决定。”,9,工作在实时计算模式下的计算机系统,都可称为实时系统。,2. 实时系统,在实时系统中主要有三个指标来衡量系统的实时性: 响应时间:它是计算机从识别一个外部事件到做出响应的时间。 吞吐量:它指在给定时间内,系统可以处理的事件总数。 生存时间:它是数据有效等待时间。,实时应用范围很广,主要有两类:嵌入式应用和在线应用。,10,(1) 硬实时系统,如果系统未能在指定时间内就某一事件做出响应而 失败,而该失败被认为是一种全面的系统失败,则 该系统是一个硬(hard)实时系统。,系统的正确性是同其响应时限紧密相关的。,11,2. 软实时系统,在一个软(soft)实时系统中,响应时限虽重要但不是人命关天的。,软实时系统设计者必须考虑系统多少次超时限和延迟多少才是可接受的。,大多数的实时系统是软实时系统。,12,3. 实时嵌入系统,所有的嵌入系统都是实时系统,至少是软实时系统,但并不是所有的实时系统都是嵌入系统。,实时嵌入系统就是为执行特定功能而设计的,至少具有软实时运行性能的系统。,13,嵌入式处理器分类与现状,1.4,嵌入式系统的核心部件是各种类型的嵌入式处理器,嵌入式计算机可以分成下面几类:,1.嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微处理器的基础是通用计算机中的CPU。 为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。 嵌入式处理器目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM系列等。,14,2.嵌入式微控制器(Microcontroller Unit, MCU) 又称单片机 。 嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成 ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、 串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要 功能和外设。 有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、 C166/167、MC68HC05/11/12/16、68300等。另外还有许多半通用系列如: 支持USB接口的MCU 8XC930/931、C540、C541;支持I2C、CAN-Bus、 LCD及众多专用MCU和兼容系列。目前MCU占嵌入式系统约70的市场 份额。,15,3.嵌入式DSP处理器(Embedded Digital Signal Processor, EDSP),DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP 算法,编译效率较高,指令执行速度也较高。 嵌入式DSP处理器有两个发展来源,一是DSP处理器经过单片化、 EMC改造、增加片上外设成为嵌入式DSP处理器;二是在通用单片机 或SOC中增加DSP协处理器。 嵌入式系统的智能化 。 嵌入式DSP处理器比较有代表性的产品是Texas Instruments的TMS320 系列和Motorola的DSP56000系列。,16,3.嵌入式片上系统SOC(System On Chip),随着EDI的推广和VLSI设计的普及化,及半导体工艺的迅速发展, 在一个硅片上实现一个更为复杂的系统的时代已来临,这就是 System On Chip(SOC)。 用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给 半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入 式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将 变得很简洁,对于减小体积和功耗、提高可靠性非常有利 。 SOC可以分为通用和专用两类。通用系列包括Infineon(Siemens)的 TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和 Motorola联合研制的Neuron芯片等。专用SOC一般专用于某个或某 类系统中,不为一般用户所知。一个有代表性的产品是Philips的 Smart XA。,17,嵌入式系统开发工具及RTOS平台,1.5,以开发工具和技术咨询为基础的整体解决方案是迫切需要的。 目前嵌入式系统的开发工具平台主要包括下面几类:,1. 实时在线仿真系统ICE(In-Circuit Emulator) ICE首先可以通过实际执行,对应用程序进行原理性检验,排除以人 的思维难以发现的设计逻辑错误。ICE的另一个主要功能是在应用系 统中仿真微控制器的实时执行,发现和排除由于硬件干扰等引起的异 常执行行为。此外,高级的ICE带有完善的跟踪功能,可以将应用系 统的实际状态变化、微控制器对状态变化的反应、以及应用系统对控 制的响应等以一种录像的方式连续记录下来,以供分析,在分析中优 化控制过程。,18,由于嵌入式应用的不确定性, ICE不仅是软件硬件排错工具,同时也是提高和优化系统性能指标的工具。,2. 高级语言编译器(Compiler Tools),C/C+/EC+引入嵌入式系统,使得嵌入式开发和个人计算机、小型机 等在开发上的差别正在逐渐消除,软件工程中的很多经验、方法乃至 库函数可以移植到嵌入式系统。在嵌入式开发中采用高级语言,还使 得硬件开发和软件开发可以分工,从事嵌入式软件开发不再必须精通 系统硬件和相应用汇编语言指令集。 (更多的信息,可查询)。 JAVA本来是为设备独立的嵌入式系统设计的、为了提高程序继承性的 语言,但是目前基于JAVA的嵌入式开发工具代码生成长度要比嵌入式 C编译工具差10倍以上。,19,3. 源程序模拟器(Simulator),源程序模拟器是在广泛使用的、人机接口完备的工作平台上,如小型机和PC,通过软件手段模拟执行为某种嵌入式处理器内核编写的源程序测试工具。 模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和测试工具。 (更多的资料,可查询以下网址:, , ),20,4. 实时多任务操作系统 (Real Time multi-tasking Operation System, RTOS),实时多任务操作系统(RTOS)是嵌入式应用软件的基础和开发平台。 RTOS是一段嵌入在目标代码中的软件,用户的其它应用程序都建 立在RTOS之上。不但如此,RTOS还是一个可靠性和可信性很高 的实时内核,将CPU时间、中断、I/O、定时器等资源都包装起来, 留给用户一个标准的API,并根据各个任务的优先级,合理地在不 同任务之间分配CPU时间。,21,5. RTOS是嵌入式系统的软件开发平台,RTOS最关键的部分是实时多任务内核,它的基本功能包括任务管理、 定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管 理、队列管理、旗语管理等, 这些管理功能是通过内核服务函数形式 交给用户调用的,也就是RTOS的API。 RTOS的引入,解决了嵌入式软件开发标准化的难题。 基于RTOS开发出的程序,具有较高的可移植性,实现90%以上设备 独立,一些成熟的通用程序可以作为专家库函数产品推向社会。 目前,商品化的RTOS可支持从8BIT的8051到32BIT的PowerPC及 DSP等几十个系列的嵌入式处理器。 (更多的资料可查询下列网址:http: / , )。,22,嵌入式系统的特点,1.6,传统的嵌入式系统是基于单片机的,也就是说:嵌入式系统实际上是一种计算机系统 。,与通用型计算机系统相比,嵌入式系统,功耗低、可靠性高;,功能强大、性能价格比高;,实时性强,支持多任务;,占用空间小,效率高;,面向特定应用,可根据需要灵活定制。,23,而新一代的嵌入式系统将以如下为特点:,以IP核模块为核心,用混合ASIC/CPLD/FPGA生成的硅片直接构成整块的单片嵌入式产品(SOC),IP核(Intellectual Property Kernel) 知识产权核,ASIC (Application-Specific Integrated Circuit) 专用集成电路。一个在一个芯片上定制设计的硬件,24,CPLD(Complex Programming Logic Device) 复杂可编程逻辑器件,FPGA(Field Programming Logic Gate Array) 现场可编程门阵列,SOC(System On Chip) 片上系统(集成系统),25,嵌入式系统的分类,1.7,26,27,嵌入式系统的应用,过程控制(Process Control) 对生产过程中各种动作流程进行控制;,网络通信(Telecommunication) 程控交换机、手机、路由器、Modem等;,消费电子(Consumer Products) 信息家电、掌上电脑、游戏机等;,1.8,28,智能仪器(Intelligent Instrument) 示波器、医疗仪器等;,计算机外设(Computer Peripherals) 打印机、扫描仪、显示卡等;,军事电子(military Electronics),29,嵌入式系统发展趋势,(1)开放式平台架构,易于与其他系统整合;,(2)体积越来越小,性能要求更稳定,成本更低廉;,(3)应用趋向多元化,需要小批量、快速客制化的服务;,(4)功能趋向单一,集成的功能与一般PC不同。,1.9,30,第二章 嵌入式系统体系结构,所有嵌入式系统都包含某种输入和输出。嵌入式系统的输出几乎总是它的输入和其它一些因素的函数。,31,硬件支撑系统,Application,API,RTOS,Peripherals,CPU,嵌入式系统体系结构,32,嵌入式系统硬件结构,2.1,核心处理器,外围电路,外部设备,A/D,33,嵌入式系统的硬件部分可以分成三层:,实际环境中,嵌入式设备的硬件配置非常灵活。除CPU和基本外围 电路外,其余部分都可以进行裁减。,外部设备:嵌入式系统与真实环境交互的各种设备,包括存储设备 (如Flash Card)、I/O设备(如键盘、鼠标、LCD等)和打印设备 (如打印机)。,核心处理器( CPU Core ):它是嵌入式系统的核心部件,负责控制 整个嵌入式系统的执行。,外围电路:该电路包括嵌入式系统的内存、I/O端口、复位和电源等, 与CPU Core一起构成一个完整的嵌入式目标系统。,34,嵌入式系统软件结构,设备驱动接口(DDI):负责嵌入式系统与外部设备的信息交互;,操作系统RTOS:基本部分与扩展部分。 基本部分:操作系统核心,任务调度、存储分配、时钟、文件与中断管理等,并提供文件、GUI等基本服务; 扩展部分:系统扩展功能,网络、数据库服务等。,应用程序接口(API):应用编程中间件;为编制应用程序提供各种编程接口库(LIB)。,应用系统(程序):嵌入式系统的应用软件。,2.2,35,嵌入式系统软件体系结构,36,第三章 嵌入式应用系统开发,影响嵌入式系统开发过程的因素,3.1,生产成本,处理能力,存储器,开发费用,批量,预计的生命周期,可靠性,功能需求,37,设计时重点需考虑以下几方面:,功能实用、便于升级:,并发处理、及时响应:,造型自然、结构紧凑:,接口方便、操作容易:,稳定可靠、维护简便:,功耗管理、降低成本:,38,嵌入式系统开发过程,软硬件系统综合开发,和纯软件系统开发有很大区别,3.2,开发特点:,任何一个嵌入式产品都是软硬件的结合体。,一旦嵌入式产品研制完成,软件就已固化,用户不能修改,即嵌入式软件的专用性。,39,系统定义,可行性研究,需求分析,系统概要设计,初步设计,和一般应用系统设计过程基本一致,嵌入式系统开发过程,40,系统定义:确定总目标,可行性,采用的策略,完成的功能,所需资源及成本,进度。,可行性研究:确定是否存在行之有效的方法解决上一阶段定义的关键问题,决定该系统有无研制的必要。,需求分析:确定功能需求、性能需求、环境需求。,系统概要设计:总体设计。需要解决嵌入式系统的总体架构,从功能上对软硬件进行划分,选定处理器、RTOS及开发平台。,软硬件划分-特别影响软件的设计和实现。,41,初步设计,42,硬件概要设计:针对系统总体设计对硬件部分的描述,进一步确定各功能模块的详细特性、模块间关联的详细定义以及所选择的总线电路等。,硬件详细设计:选定实现硬件功能框图内的各个具体的器件,设计相应的周边电路,得到符合系统需求和硬件概要设计的电路原理图,进一步生成实际的PCB图。,硬件制作:加工出印制电路板(PCB),焊接/装配芯片,形成目标硬件并调试修改。,硬件测试:对制作出的硬件系统进行功能、性能等方面的测试和修改,使其达到硬件设计目标。,43,软件设计实现:与硬件设计制作并行。,软硬件集成:将测试完成的软件系统装入制作好的硬件系统中,进行系统综合测试,最后将正确无误的软件固化在目标硬件中。,性能测试:测试最终完成的系统性能能否满足设计任务书的要求。,不应对硬件设计作过多修改,主要应该通过修改软件功能来改善或调整系统性能。,44,嵌入式系统硬件开发,嵌入式硬件的开发实际上是电子产品的开发,3.2,45,可编程逻辑器件PLD,46,电子设计自动化EDA (Electronic Design Automation),以大规模可编程逻辑器件为设计载体,以硬件描述语言HDL为主要表达方式,通过相应的开发软件工具,用软件的方式自动地完成逻辑编译、化简、分割、综合、优化、布线、仿真以及对特定芯片的适配编译和编程工作,最终形成专用集成芯片。,47,EDA设计= 系统级设计+电子系统设计+PCB设计,EDA设计不仅具有电子系统设计功能,而且能提供独立于工艺和厂家的系统级设计能力,可以使电子工程师在不熟悉各种半导体工艺的情况下,也能完成电子系统的设计。,48,EDA工具一般包括以下模块,(1)设计输入:接收用户的设计描述完成语法、语义正确性检查,并转换成EDA内部数据格式存入数据库。输入方式:原理图输入和HDL描述输入。,(2)数据库设计:用于存放系统提供的库单元、用户的描述以及中间设计结果。,(3)分析验证:完成对EDA各层次(阶段)的模拟验证、规则检查和故障诊断。,49,(4)布线:实现由逻辑设计到物理设计的映射。,(5)综合仿真:完成EDA设计各层次综合仿真,是软件描述与硬件实现的过渡,其过程就是将电子系统的设计描述转换成低级的、可与目标器件FPGA/CPLD相映射的网表文件。,EDA工具一般包括以下模块,50,硬件描述语言HDL,用于设计硬件电子系统的计算机语言 用于描述电子系统的逻辑功能,电路结构和连接方式。 利用EDA综合模块和适配模块将程序翻译成FPGA和CPLD内部结构,从而实现相应硬件逻辑功能的门级或更低层结构的网表文件。(编译连接过程),51,EDA系统用户允许输入方式有:,原理图输入:可控性好、效率高、直观;,HDL描述输入:使用方便、可移植性好,在实际的PLD/FPGA设计中,通常采用原理图和HDL结合的方法进行,52,目前主要的HDL有,VHDL超高速集成电路硬件描述语言 (Very High Speed Integrated Circuit HDL),Verilog HDL,前者语法严谨、发展较早,已成为电子设计领域通用语言; 后者语法自由、支持的EDA工具较多,初学者容易上手,也容易出错。,53,用HDL开发PLD/FPGA的完整流程:,(1)文本编辑:任何文本编辑器,也有专用HDL编辑器,保存文件格式不同。VHDL:.vhd,Verilog HDL:.v。,(2)功能仿真:将文件调入HDL仿真软件进行仿真,检查逻辑功能是否正确(前仿真)。,(3)逻辑综合:将源文件调入逻辑综合软件进行综合,即将语言翻译成最简的布尔表达式,生成.edf的EDA工业标准文件。,54,(5)时序仿真:验证电路时序(后仿真),(4)布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,将设计逻辑安放到PLD/FPGA内。,用HDL开发PLD/FPGA的完整流程:,55,知识产权核,Intellectual Property Core 简称 Ip core模块 是一种预先设计好的甚至已经经过验证的具有某种特定功能的集成电路、器件或部件。,三个层次对应三种不同程度的设计,软知识产权核 Soft IP Core行为(Behavior),固知识产权核 Firm IP Core结构(Structure),硬知识产权核 Hard IP Core物理(Physical),56,嵌入式系统软件开发,在传统的软件工程方法基础上,增加实时、并发 等设计技术而形成。,软件开发的发展(历程),Parnas 方法,1972提出最早的软件开发方法。基本原则是: 信息隐蔽原则:每个模块应该隐藏可能会改变的设计结果。 异常处理原则:在软件设计时应对可能发生的种种意外故障采取措施。,3.3,57,E. Yourdon 方法,1978,结构化软件开发方法。SASD方法,面向功能的软件开发或面向数据流的软件开发方法。特点: 用结构化分析(SA)对软件进行需求分析; 用结构化设计(SD)对软件进行总体设计; 最后是结构化编程(SP)。,M. A. Jackson 方法,1975, 面向数据结构的软件开发方法。基本原则是: 从目标系统的输入、输出数据结构入手,导出程序框架结构,补充其他细节,得到完整的程序结构图。,58,问题分析 方法 PAM,80年代日立公司提出 希望兼顾Jackson, Yourdon 方法和自底向上的软件开发方法的优点,其基本思路是: 由输入、输出数据结构导出基本处理框,分析这些处理框之间的关系,按先后关系逐步综合处理框,画出PAD图。该方法本质是综合的自底向上方法,并且充分考虑输入、输出数据结构。,面向对象方法 自底向上和自顶向下相结合的方法,以对象建模为基础,不仅考虑输入、输出数据结构,而且还包括所有对象的数据结构。,59,可视化开发方法 通过可视化开发工具提供的图形用户界面,通过操纵界面元素(按钮、菜单、对话框、列表框、滚动条等)生成应用程序。,集成化计算机辅助软件工程 ICASE 这是第三代计算机辅助软件工程方法-信息中心库方式。最终目标是实现应用软件的全自动开发,还在发展中。,软件复用(Reuse)和构件(Component)连接 利用已有的软件成分来构造新的软件,可以大大减少软件开发所需的费用和时间,且有利于提高软件的可维护性和可靠性,目前发展最快的软件复用方式是构件连接。,今后的软件开发,将是以面向对象技术为基础,与可视化、软件组件、ICASE互为协同的方法。,60,在为嵌入式系统和其它计算机平台写程序时有一个最基本的区别,就是嵌入式程序总是以一个无限循环作为结束。,大多数嵌入式系统只运行一块程序,其功能体总是被一个无限循环来包含着以使它们可以永远运行下去。,61,3.4,一个实用的方法,计划一个实时嵌入项目的开发方法由三个阶段构成:,(1)分析; (2)设计; (3)实现。,在分析阶段,你决定系统应做什么。在设计阶段,你决定系统怎样才能做到。在实现阶段,你使系统实现目录。,62,迭代方法-贯穿始终,(1)陈述问题 (2)确定项目的约束条件 (3)罗列用户的要求 (4)确定硬件软件 (5)验证你的分析,63,一个例子,为电视制造商设计一个简单的电视遥控器,问题陈述 开发一个有三个控制按键的简单手持遥控器。遥控器应重量轻,使用电池供电。它通过一个内置的红外线发射器控制电视。(客户的电视机上有一个接收器。) 遥控器上一个按键控制电源,其他两个按键用于切换频道。,约束说明 1.遥控必须用客户提供的ROM。 2.遥控必须遵从客户的时序规定。,64,用户要求 遥控器将使用电池供电;且不超过2个AAA电池。换一次电池能按键10000次以上。 遥控器重量要小于100克;体积小于10cm*5cm*1.5cm。 遥控器必须用高密度塑料制作。 电源按键必须是红色和圆形;频道上下切换键必须是黑色和长方形。 遥控器必须能承受从1.5米高落到木地板上,而不至于使外壳破裂或电器损坏。 遥控器发射的红外信号必须符合客户提供的时序技术要求。 遥控器离电视的有效距离必须达到10米;有效范围45度角。 正确的红外信号必须在按下按键20微妙内发射出。,65,硬件和软件说明 处理器。 操作系统。 编程语言。 第三方软件。 第三方硬件。,审查分析资料,审查分析资料不仅是在设计阶段的开始而且要贯穿在整个设计阶段中。,66,规定硬件部件,将硬件分成各部件; 画出硬件部件的框图。 硬件或软件:谁在先?,定义硬件接口,I/O端口 硬件寄存器 共享内存或内存映像I/O的地址 硬件中断,67,规定软件子系统,将系统的软件分成一些适当定义好的子系统。 详尽描述各个子系统的功能。 自上而下,定义软件接口,规定各个子系统配备的软件接口。 详细说明API。 用函数原型、数据结构声明、类说明等来建立头文件。,68,规定启动和关闭过程,说明系统启动和关闭过程中事件发生的顺序。,规定出错处理方案,1)你的用户界面如何?能否给系统操作人员报告错误?或者你会把错误记录到某个文件中供事后分析吗? 2)你的系统有同其他设备通信的功能吗?你能用这个功能向远程站点报告错误吗? 3)系统关闭或崩溃的后果是什么?如果关闭是不可接受的,得有致命性出错条件触发系统重新启动。而且你的系统可能需要有监视计时器(watchdog timer)功能来检测系统崩溃并自动重新启动系统。,69,检查你的设计,设计文档的正确性。 七条判据: 噪声:不相干的信息。 只字不提:漏掉的信息。 超前规定说明:一些本应在设计阶段才能提出来的信息。 矛盾:不相容的技术指标和约束。 模棱两可:一个技术指标或约束条件可有多种解释。 超前引用:某种性质特点在被明确定义说明前就被应用。 一相情愿:说明了某一要求,但对该要求没法找到一种实 现方法。,70,遥控器设计的例子,规定硬件各部件 原理图:帮助我们辨别如何用软件或硬件来实现功能。 选择定时器(timer)。,71,MPU,TIMER,ROM,72,定义硬件接口 分配I/O引脚来读取三个按键的状态和控制发光二极管; 分配I/O地址用于对定时器编程; 选择一个中断用于定时器的中断; 分配内存地址给ROM。,规定软件子系统 按键监视。 命令查找。 命令发送。,73,初始化,按键监视,命令查找,命令传输,74,规定软件接口 以C语言编写本项目的代码。 按键监视子系统: #define BUTTON_UP0 #define BUTTON_DOWN1 #define BUTTON_POWER2 int GetButtonPress (void); 命令查找子系统: typedef struct int fLEDOn; /如LED开为T,LED关为F int nmicrosec; /微秒数 ,75,LED_COMMAND; typedef struct int nLEDCommands; LED_COMMAND LEDCmd1; TV_COMMAND; TV_COMMAND *LookupCommand (int Button); 命令发送子系统也有一个函数,它接受TV_COMMAND结构作为其输入,并在发送完毕后返回。,76,规定启动和关闭过程 在启动时,两个子系统运行初始化: 1)按键监视子系统完成按键硬件所需的所有硬件复位。 2)命令发送子系统初始化硬件定时器,并安装一个中断处理程序来处理定时中断。 本系统对关闭无要求。,规定出错处理 本系统无用户界面,无报告错误的通信途径。因此所有出错条件都必须在内部处理;系统必须能继续正确运行。大多数错误可以忽略。,77,3.4.2,一些决定,选择处理器,判别标准: 设计需要多快的处理速度 你的人员对处理器是否专业 设计的I/O技术指标是什么? 处理器可用到哪些软件支持工具 处理器是否内置调试支持 处理器制造商的支持可信度如何,78,选择硬件部件,你打算做几套系统 你的目标市场的机会如何 是否软件开发极大地依赖于硬件的到位,或者,是否大多数的软件开发都能在一个实验系统(如PC机)上进行,选择操作系统,你需要一个操作系统提供多少功能 操作系统有哪些开发工具可用 操作系统到你的硬件接口移植的难度如何 操作系统是否包含特殊的调试支持 操作系统的内存要求如何,79,你的程序员是否熟悉此操作系统,或此操作系统通常提供的API 是否操作系统包含所有你需要的部件 操作系统是否有你目标硬件的驱动程序 操作系统是否有可伸缩性,选择编程语言,判别标准: 你的人员最熟练的语言是什么 该软件应用广泛吗 该语言是否提供你应用程序所要求的性能,80,选择软件开发工具,判别标准: 系统调试器的功能如何 编译器是否包括汇编程序 有哪些支持库函数可用 编译器开发商保持对编译器升级吗 连接程序是否支持你的其他工具所用的所有文件格式和符号格式 是否有某种便于使用的、用于选配操作系统的系统构建工具 是哪个开发商生产的开发系统,81,选择硬件调试工具,常用工具: 电路内仿真器(ICE) 逻辑分析仪 带硬件支持的软件调试器 ROM仿真器,选择软件组件,82,3.4.2,实现阶段,规划与测试,规划实现方案,原型规划 四个过程: 1)决定系统的哪些部分能够进行原型构建 2)决定如何构建 3)精确地制定系统如何从原型发展到最终的平台 4)找到并分配构建原型所需的资源,83,2. 测试规划 两个环节: 1)单元测试:当子系统完成时; 2)集成测试:当把子系统集成到较大的系统中时。 三种类型: 1)代码的测试; 2)功能测试; 3)回归测试。,3. 源代码控制管理 一个用于跟踪已生成代码的体系,这个体系不仅仅是一个存储库(一个中 心数据库)而且还要有一种用于跟踪项目的各个细节部分状态的机制。 用于管理群体编程项目的软件控制系统,84,进度安排 各种类型的工作:编程、硬件制作、测试、调试。 要考虑到各个工作范围,以及相关任务的期限。 要时常回过头来检查进度安排并不惜对其作修改。,建立程序框架 自上而下,分派子系统的开发 并行,85,编写函数接口 坚持让程序员以生成子系统接口作为入手点。 一个子系统将由一个同别的子系统打交道的API以及一些只从 该子系统内部调用的内部子程序构成。,4. 监视进度 管理和软硬件工程的结合-完整项目。,86,3.5,实时和嵌入系统的开发方法论,以下给出的大多数方法论都遵从分析、设计和实现的基本主题,然后再用各自的一些步骤来充实这些开发阶段。,Octopus方法论专用于实时和嵌入系统。在Object-Oriented Technology for Real-Time Systems:A Practical Approach Using OMT and Fusion一书中有详细讨论。它基于早期的OMT(对象模型构建技术)和Fusion(熔合)方法中的面向对象的设计方法。,87,采用Octopus的实时嵌入系统开发包括5个步骤: 系统要求 定义系统的整个目的。 系统体系结构 将系统划分成一些可管理的子系统。 子系统分析 分析每个子系统,从而确定它要完成的某个或多个任务。构建该子系统的整体结构。 子系统设计 定义每个子系统的确切内部部件。 子系统实现 用代码实现子系统设计简短定义的子系统模型。 Octopus还要定义一个硬件包,它是用作高层软件与硬件之间接口的软件。,88,3.5.2,ELLISON,Ellison博士:Developing Real-Time Embedded Software in a Market-Driven Company 需求分析阶段 决定最终的系统要完成什么。 设计阶段 构建出项目的顶层体系。各部件被确定;不管其内部细节或某个特定部件是由硬件还是由软件来实现。 进行分析 弄清设计将来是否满足性能要求。中心思想在于验证设计的性能差不多在正确的范围内。 部件技术指标 构建在设计阶段所确定的部件的内部细节。把部件分成可管理的块。,89,任务规划 确定各个过程和线程(任务),并应用数学来确定能满足性能要求的、合适的调度算法。 开发测试 进行单元测试以及集成测试。,90,3.5.3,OBJECTGEODE,Objectgeode既是个方法论又是个CASE工具软件,由Verilog公司开发。 Objectgeode开发方法中的步骤包括: 需求分析 从系统用户的角度来研究系统,并开始探究系统的内部部件(角色),以确定部件之间的信息流向。 设计 定义系统的整体结构,并给出系统内各个软件对象的详细描述。 确定目标 定义软件和硬件之间的联系。 测试 执行完成的产品,以检查出错误。 Objectgeode详细说明了一种迭代式的开发过程。,91,3.5.4,ROOM,ROOM(实时面向对象的模型化)出于支持实时系统开发而设计的一种方法论。Real-Time Object-Oriented Modeling。 ROOM主要着重于设计和实现阶段。 ROOM为描述构成系统的对象的行为定义了一套文本和图形语言。文本语言在结构上类似于C+,提供那些用图形语言不容易把握的信息;图形语言是一种状态图标组合,定义某个特定角色的行为,以及对象间相互作用的图示,它描述对象如何与别的对象连接。 ROOM工具软件使开发者能构建基于ROOM的模型,该模型是可执行的,因此,开发者在不写一条低层代码的情况下就可用ROOM工具精巧地制作出一个系统,并执行该系统。,92,3.5.5,SHLAER-MELLOR,Shlaer-Mellor OOA/OOD(面向对象的分析/面向对象的设计)。 Object-Oriented Analysis:Modeling the Word in Data Object Lifecycles: Modeling the Word in States Shlaer-Mellor方法论是用于从结构化开发技术方便地过度到面向对象的开发技术,引导开发者走过分析、设计和实现各阶段。,93,3.5.6,K-FLOW和GOO,Barry Kauler:Object-Oriented Flow Design for Embedded System Flow Design for Embedded Systems:A Radical New Unified Object-Orientated Methodology 特点:它是专为建立小型嵌入系统而设计的。 GOO(图形化面向对象的)方法比其他的方法论随便得多;作为一个发展中的理论,是描述得最好的。,94,95,96,97,4.1,第四章嵌入式操作系统RTOS,概论,实时多任务操作系统(RTOS) 是嵌入式应用软件的基础和开发平台,是一段嵌入在目标代码中的软件,用户的其他应用程序都建立在RTOS之上。,RTOS还是一个标准的内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。,RTOS通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器Browser等 。,98,随着应用的复杂化,一个嵌入式控制器系统可能要同时控制/监视很多外设,要求有实时响应,有很多处理任务,各个任务之间有多种信息传递,如果仍采用原来的程序设计方法存在两个问题。一是中断可能得不到及时响应,处理时间过长,这对于一些控制场合是不允许的,对于网络通信方面则会降低系统整体的信息流量。二是系统任务多,要考虑的各种可能也多,各种资源如调度不当就会发生死锁,降低软件可靠性,程序编写任务量成指数增加 。,为什么需要RTOS?,RTOS的应用是和应用复杂化直接相关的。,过去一个单片机应用程序所控制的外设和履行的任务不多,采取一个主循环和几个顺序调用的子程序模块即可满足要求。,目前单片机芯片本身的性能大幅度提高,可以适应应用复杂化这一要求,问题在于软件上。,99,工程师在编写程序时,可以分别编写各个任务,不必同时将所有任务运行的各种可能情况记在心中,大大减小了程序编写的工作量,而且减小了出错的可能,保证最终程序具有高可靠性。,实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。,在RTOS支持的系统中,每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。,100,为RTOS设计的成熟和通用的任务可以以库函数的形式供其它人继续利用,和C语言的设计思想一致。,RTOS也体现了一种新的系统设计思想和一个开放的软件框架。,工程师可以在大量变动系统其它任务的情况下增加或去掉一个任务。,一个项目开发的过程中,可以有多个工程师同时进行系统的软件开发,各个人之间只要制订好规程和协议即可既缩短了开发时间,又降低了最终软件产品对于具体某个开发者个人的依赖性。,RTOS 是嵌入式软件的编写从“小生产方式”进入“大生产方式”的必然产物。,101,4.2,实时操作系统的发展,嵌入式操作系统伴随着嵌入式系统的发展经历了四个比较明显的阶段:,(1) 无操作系统的嵌入算法阶段(80 年代前) 这一阶段的嵌入式系统是以可编程控制器的形式、以单芯片为核心的系统,同时具有与一些监测、伺服、指示设备相配合的功能。 这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有明显的被称为操作系统(RTOS)的支持,而是通过汇编语言编程对系统进行直接控制,运行结束后清除内存。这一阶段系统的主要特点是系统结构和功能都相对单一,针对性强,但无操作系统支持,几乎没有用户接口。,102,(2) 简单监控式的实时操作系统阶段(80 年代) 这一阶段的嵌入式系统主要以嵌入式处理器为基础、以简单监控式操作系统为核心。系统的特点是处理器种类繁多,通用性比较弱;系统开销小,效率高;系统一般配备系统仿真器,具有一定的兼容性和扩展性;操作系统的用户界面不够友好,其主要用来控制系统负载以及监控应用程序运行。 实时多任务调度内核 第三方的开发工具 代表产品: VRTX32(Ready System) PSOS(ISI) MTOS(IPI),103,(3)微内核,模块化的嵌入式实时操作系统阶段(90年代初) 20世纪90年代,现代操作系统的设计思想,如微内核设计技术和模块化设计思想,开始渗入RTOS领域。 微内核,模块化的嵌人RTOS 自主开发或完全集成的开发工具 代表产品: VxWORK (开发环境Tornado) Psos+(开发环境Prism+) VRTsa(开发环境Spectra),104,(4) 通用的嵌入式实时操作系统阶段(90 年代中) 以通用型嵌入式实时操作系统(RTOS)为标志的嵌入式系统。这一阶段系统的特点是能运行在各种不同类型强大的微处理器上;具有强大的通用型操作系统的功能,如具备了文件和目录管理、多任务、设备支持、网络支持、图形窗口以及用户界面等功能;具有大量的丰富的应用程序接口(API)和嵌入式应用软件。 标准API(如POSIX,WIN32等) 包含网络,图形等完整的操作系统 代表产品: WinCE (Microsoft) Vxworks(Wind River System) QNX,Lynx,OSE ,Chrous(Sun)等,105,嵌入式系统与Internet的真正结合、 嵌入式操作系统与应用设备的无缝 结合代表着嵌入式操作系统发展的 真正未来。,106,图1:RTOS体系结构图,4.2,RTOS的体系结构,107,1)硬件抽象层(HAL)包含了所有和硬件平台相关的代码,如上下文切换和I/O寄存器访问等等。它存在于RTOS的最底层,直接访问和控制硬件,对其上层的RTOS的机器无关代码提供访问和控制服务。这样可以简化RTOS内核的移植工作,除了设备驱动程序之外,在移植的时候只需要修改HAL的代码就可以了。,2)RTOS内核(Kernel)是用来为大多数程序乃至OS(网络、文件系统、驱动程序)构建一系列在抽象的文件上工作的抽象机,使用户程序及上层OS组件对系统设备透明。,3)在提供的RTOS接口上需要有对用户程序提供的函数接口,专门为用户定制网络、图形、视频等接口。并且提供驱动程序开发界面,方便开发者对不同需求的设备定制驱动程序。,108,一般来说,RTOS内核的实现都为微内核的体系结构。所谓微内核技术是指将必需的功能(如进程管理、任务通信、中断处理、进程调度)放在内核中,而将那些不是非常重要的核心功能和服务(文件系统、存储管理、网络通信、设备管理)等等作为内核之上可配置的部分。这样,整个操作系统就是由提供一些基本服务机制的微内核加上一些服务进程构成,系统的各个系统调用和服务都是由内核发消息到不同的服务进程,服务进程执行相应的操作,然后以消息的方式返回内核。,使用微内核的体系结构,使得RTOS体积很小,便于直接放在ROM中,实现ROM固化;同时方便进行模块化的扩展。,使用微内核的结构也存在很多的缺点,如操作系统的服务模块在独立的地址空间运行,虽然可以将不同模块间的内存错误隔离开来,但是使得进程间通信和上下文切换的时间和开销大大增加,降低了系统效率。,109,1)任务管理: 分时操作系统中的基本调度单位一般是进程(或者线程),而对于实时操作系统,其内核调度的基本单位是任务。,任务一般由任务控制块、程序区、数据区、堆栈区组成,堆栈又分为系统堆栈和用户堆栈。,任务的驱动一般是基于消息或者事件的,即任务的设计是按照依次处理可能接收到的消息和事件,周而复始轮询循环的。,实时操作系统中的任务有四种状态:运行(Executing),就绪(Ready),挂起(Suspended),冬眠(Dormant)。,4.3,RTOS的功能和特点,功能:,110,运行:获得CPU控制权。,就绪:进入任务等待队列,通过调度转为运行状态。,挂起:任务发生阻塞,移出任务等待队列,等待系统实时事件的发生而唤醒,从而转为就绪或运行。,冬眠:任务完成或出错等原因被清除的任务,也可以认为是系统中已不存在的任务。,系统中只能有一个任务在运行状态,各任务按级别通过时间片分别获得对CPU的访问权。,2)任务间同步和通信:,主要实时操作系统的任务间同步和通信的机制有:消息、事件、信号量;少部分实时操作系统仍使用邮箱机制;还有一些实时操作系统提供了共享内存的任务间通信机制。,111,消息机制的基本思想是任务通过系统公用的数据交换区(包括私有消息缓冲区和共用消息缓冲池)来交互任务间需要通信的信息。,消息机制的系统调用一般包括消息队列的创建(q_create)、删除(q_delete)、接收消息(q_receive)、发送消息(q_send)、广播消息(q_broadcast)、紧急消息(q_urgency)。,消息队列可以是定长的也可以是变长的。,事件机制适用于任务间需要同步,并且通信的数据量不大的情况。,任务之间的事件通信机制是可以覆盖的。,事件机制的系统调用一般包括发送事件(ev_send)、接收事件(ev_receive)。,目前大多数实时操作系统支持约16-32个事件。,112,实时操作系统提供的信号量机制和分时操作系统一样也是为了解决对于临界资源共享的加锁机制。,信号量机制提供了信号量的创建(sm_create)、信号量的删除(sm_delete)、信号量的P操作(sm_p)、信号量的V操作(sm_v)。,3)内存管理:,实时操作系统内存管理模式可以分为实模式与保护模式。目前主流的实时操作系统一般都可以提供两种模式,让用户根据应用自主选择。另外,实时操作系统的内存管理还有对于内存的优化分配,以尽量减
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加法减法面试题及答案
- 信访局考试试题及答案
- 2025年广元市消防员招录考试笔试试题(含答案)
- 2025年广安市岳池县农业技术助理岗招聘考试笔试试题(含答案)
- 栓绳安全知识培训内容课件
- 2025年度“全国安全生产月”《安全知识》考试题库(含答案)
- 护理质量试题及答案
- 应急管理知识练习题(附答案)
- 急救知识模拟试题(附答案)
- 2025年医院感染预防措施卫生、防护、隔离、抗菌等知识考试题库及参考答案(精练)
- 欧泰科-吊挂软件使用教程
- 2025年湘教版七年级生物下册阶段测试试卷含答案
- 小学古诗文课外实践活动计划
- 浙江省金华十校 2024 年 11 月高三模拟考试 英语试题卷英语试卷(含解析)
- 《全断面岩石掘进机法水工隧洞工程技术规范》
- (高清版)DB4101∕T 7-2019 嵩山麦饭石
- 部编五年级上册语文教案全册表格版
- 古茗员工入职合同
- 矿井车辆安全培训课件
- 运用PDCA循环法降低脑卒中后肺部感染率课件
- 2024年山西省中考语文试卷
评论
0/150
提交评论