欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    嵌入式系统导论PPT电子教案.ppt

    • 资源ID:2678710       资源大小:1.54MB        全文页数:388页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式系统导论PPT电子教案.ppt

    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+引入嵌入式系统,使得嵌入式开发和个人计算机、小型机等在开发上的差别正在逐渐消除,软件工程中的很多经验、方法乃至库函数可以移植到嵌入式系统。在嵌入式开发中采用高级语言,还使得硬件开发和软件开发可以分工,从事嵌入式软件开发不再必须精通系统硬件和相应用汇编语言指令集。(更多的信息,可查询http:/)。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-SpecificIntegratedCircuit)专用集成电路。一个在一个芯片上定制设计的硬件,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 StatesShlaer-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 年代)这一阶段的嵌入式系统主要以嵌入式处理器为基础、以简单监控式操作系统为核心。系统的特点是处理器种类繁多,通用性比较弱;系

    注意事项

    本文(嵌入式系统导论PPT电子教案.ppt)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开