NO.01
认证: 论文检测

掌柜:论文查重第一家

点击这里给我发消息

支付宝个人认证

2011-03-24

消费者保障协议

该店铺已签署消费者保障协议
已缴纳1000元保证金

店铺动态评分

描述相符5.0

服务态度5.0

物流服务5.0

与同行业相比

高于1.23%

持平0.45%

高于4.31%

开店时长5年老店

嵌入式系统及其在车轿校直检测系统中的应用

服务。(6)强稳定性:嵌入式系统一旦开始运行就不需要人过多的干预。在这种情况下,要求负责系统管理的嵌入式操作系统具有较高的稳定性。对于目前广为流行的WindowS平台来说,实现多任务、多线程己不是难题。但是在工业控制领域,尤其是在环境比较恶劣的工业现场,工业用计算机通常不用易出问题的硬盘系统,而采用稳定可靠的固态电子盘(例如Flash)来存储程序和数据。另外,Flash盘造价昂贵,因而用户选用的一般是容量较小的电子盘。这样的话,像WindowS这样庞大的系统就不可能装入其中,也就不可能在WindowS系统环境下发挥多任务的作用。WindowS操作系统的实时性较差,参考windows操作系统的原理l3]可知,Windows系统是基于消息机制,虽然对外界事物的响应是实时的,但是对于事件的处理并不是实时的。WindowS操作系统应用对象是全球性多用户的,因此在其系统开发的时候统筹考虑各个方面的需求。针对工业控制领域的特殊性,Windows中有相当多的功能是不需要的,如果对操作系统进行相应的裁剪以及修改,会影响操作系统的健壮性和稳定性。应用windows操作系统的车桥校直检测系统在工业现场工作过程中,出现了以上种种问题,并且排除故障也不方便,耗费大量的人力和物力。鉴于这些不足之处,将嵌入式系统设计思想引入到整个控制系统的设计过程中,运用嵌入式实时操作系统pe/05一11(Microeontrozleroperati。nSystemTwo)替代windows操作系统。 该操作系统的应用可以带来两个好处:(1)嵌入式实时操作系统提高了应用系统的可靠性。在控制系统中,出于安全方面的考虑,要求系统不能崩溃。不仅要求在硬件设计方面提高系统的可靠性和抗干扰性,而且在软件设计方面也成提高系统的抗干扰性,尽可能地减少不可靠的隐患。长期以来,前后台系统软件设计在遇到强干扰时,运行的程序会产生异常、出错、跑飞、甚至死循环,造成系统的崩溃。而嵌入式实时操作系统管理的应用系统中,这种干扰只可能引起若干进程中的一个被破坏,可以通过系统运行的系统监控进程对其进行修复。(2)提高开发效率,缩短开发周期。在嵌入式实时操作系统环境下,开发一个复杂的应用程序,通常按照软件工程中的解祸原则[41将整个程序分解为多个任务模块。每个任务模块可以分别调试、修改,而不影响其他模块。 3嵌入式系统的发展概况综观嵌入式系统的发展,大致经历了以下三个阶段:第一阶段是嵌入式系统技术的早期阶段。以功能简单的专用计算机或单片从实现操作系统的功能看,嵌入式操作系统与通用操作系统有鲜明的不同,两类操作系统的比较列于表1.1。表1.1两类操作系统间的比较从系统的总体特征上看,嵌入式操作系统与通用操作系统相比有如下的特占.(1)实时性:大多数嵌入式系统工作在实时性要求很高的环境中,这就要求嵌入式操作系统必须将实时性作为一个重要的方面来考虑。在信息时代,必须在有效的时间丙对到来的信息进行处理,从而为进一步的决策分析争取时间,所以嵌入式操作系统必须体现一定的实时性。(2)小巧:嵌入式系统所能提供的资源有限,所以嵌入式操作系统必须做到代码量小,满足嵌入式系统的硬件限制。(3)可装卸:由于嵌入式系统需要根据应用的要求进行装卸,所以嵌入式操作系统也必须能够根据应用的要求进行装卸,去除多余的部分,或简化相应的模块。这个特征在嵌入式系统的模块划分中必须事先考虑周全。(4)固化代码:在嵌入式系统中,嵌入式操作系统与应用软件被固化在嵌入式计算机的程序空间ROM中,辅助存储器在系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,取而代之的是各种内存文件系统。(5)弱交互性:大多数嵌入式系统的工作过程不需要人的干预。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供嵌入式系统和嵌入式操作系统IEEE(国际电气和电子工程师协会)定义嵌入式系统是控制、监视或者辅助设备、机器和车间运行的装置【’]。这是从应用层面上加以定义的,由此可以看出嵌入式系统是软件和硬件的综合体,可以涵盖机械等的附属装置。不过,上述定义并不能充分体现出嵌入式系统的精髓。目前国内普遍认同的定义是:嵌入式系统是以应用为中心,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统主要是由嵌入式处理器、相关硬件、嵌入式操作系统以及应用软件系统等组成,它是集软、硬件于一体的可独立工作的器件,是将先进的计算机技术、半导体技术和电子技术以及各个行业的具体应用相结合所形成的产物。 以上这些特点决定了嵌入式系统必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式操作系统并不是简单嵌入的操作系统,它与通常意义上的操作系统(如windows、Unix等)有一定的区别。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、调度工作,控制且协调开发活动,具有一般操作系统的基本功能,如任务调度、同步机制、中断处理,同时它必须体现出所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。嵌入式操作系统是以库的形式提供给用户,因此,用户可以通过操作系统的API(ApplicationPrOgI’am耐“9Interface)使用嵌入式操作系统。嵌入式操作系统是随着嵌入式系统的发展而出现的,它是嵌入式系统发展到一定阶段的产物。嵌入式操作系统的使用大大地提高嵌入式系统开发的效率,改变以往只能针对具体的应用从头做起的历史。与此同时,可以减少嵌入式系统开发的工作量,增强应用软件的可移植性,使嵌入式系统的开发更具有科学性。因此,嵌入式操作系统的出现为嵌入式系统的发展铺平了道路。 2嵌入式操作系统和通用操作系统(如Windows)的对比嵌入式操作系统可以分为实时操作系统和分时操作系统两类,本文重点讨论的是实时操作系统。实时操作系统是指具有实时性的、能支持实时控制系统工作的操作系统。实时操作系统的首要任务是调度一切可利用的资源完成实时控制任务;其次是着眼于提高计算机系统的使用效率,其重要特点是通过任务调度策略来满足对于重要事件在规定的时间内做出正确的响应[2]。机为核心的可编程控制器形式存在,具有监测、伺服、设备指示等功能。这种系统大部分应用于各类工业控制以及航天、导弹等武器装备中。在早期系统中一般没有操作系统的支持,而是通过汇编语一言编程对系统进行直接控制,运行结束后清除内存。这一阶段系统的主要特点是:结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。对于很简单的嵌入式应用来说,这能满足要求。但是,随着嵌入式系统应用的复杂化,特别是在现代化工业控制及信息家电领域中,它已经不能适应要求。第二阶段是以嵌入式处理器和嵌入式操作系统为标志的嵌入式系统。这一阶段的主要特点是:计算机硬件出现了可靠性高、功耗低的嵌入式处理器,如PowerPC、ARM等;各类商业嵌入式操作系统开始出现并得到迅速发展,嵌入式操作系统能运行于各种不同类型的微处理器上,具有兼容性好的特点;操作系统内核精小、效率高,并具备高度的模块化和可扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具备大量的应用程序接口,开发应用程序简单;嵌入式应用软件种类丰富。第三阶段是以芯片技术和工nternet技术为标志的嵌入式系统。随着微电子技术的迅速发展,片上系统(SystemonChip)的出现使嵌入式系统越来越小,功能却越来越强。目前大多数嵌入式系统还孤立于工nternet之外,但随着工nternet的发展以及工nternet技术与信息家电、工业控制技术等结合日益密切,嵌入式技术与工nternet技术的结合将推动嵌入式技术的快速发展。 近年来,嵌入式系统的技术发展有了以下显著的变化[5]:(1)新的处理器越来越多。一方面,嵌入式操作系统自身结构的设计更易于移植,以便在短时间内支持更多种微处理器;另一方面,系统应能使用驱动程序开发与配置环境,造就一个新的板级支持包(RSP)和驱动程序结构,以适应微处理器不断升级变化所产生的需求。(2)后PC时代更多的产品使用嵌入式操作系统。它们对实时性要求并不高,如手持设备PDA等。微软公司的WinCE、Palm0S等操作系统就是顺应这些应用而开发出来的。(3)面向定制趋势。在系统级整合改造并支持应用特制的性能,即在定制的或商品化的硬件上提供高性能和高可靠性的系统服务,将操作系统的功能和内存需求定制成每个应用所需的系统,这同时也对嵌入式系统的设计提出了挑战。(4)电信设备、控制系统要求的高可靠性,对嵌入式系统提出了新的要求。上述变化孕育嵌入式系统将进入一个快速发展时期,在不久的将来,嵌入式系统的应用将越来越多样化,为用户提供更多的选择方案。它的应用领域也不仅仅局限于传统的控制领域,将广泛应用于工业、农业、服务业等各行业,而且还渗透到社会和家庭的各个角落。数据采集、数据处理、通信以及显示等功能。另外,可以利用各种嵌入式操作系统为实现工业控制提供操作平台。因此,嵌入式系统在工业控制领域有广阔的应用前景。 5论文的主要研究内容从上一节的分析可见,国内巨前对嵌入式系统在传统工业领域中的应用研究有很大的不足。为此,本文针对嵌入式系统技术在工业控制领域中的应用进行深入探讨。1)嵌入式系统设计流程及方法嵌入式系统设计过程一般由需求分析、体系结构设计、硬件及软件设计、系统集成和系统测试五个阶段构成,如图1.1所示。各个阶段之间要求不断的反复和修改,直至完成最终设计目标。图1.1嵌入式系统的设计流程针对应用系统复杂程度的不同,嵌入式系统的设计方法也不固定。本文在根据自动检测原理[61以及单片机开发过程的基础上,提出一种适合本课题的设计方法,同时该方法也有比较普遍的意义,如图1.2所示。在图1.2中,嵌入式操作系统上进行应用开发和嵌入式操作系统之间是紧密结合的,对嵌入式操作系统进行适当的改造和剪裁,使其成为应用软件的一部分。这一嵌入式系统开发特点和基于WindOWS等通用操作系统进行应用开发有本质区别。选选择嵌入式处理器器及及硬件平台台选选择合适的嵌入式式操操作系统统在在嵌入式操作系统统上上开发应用程序序系系统整体测试试图1.2嵌入式系统开发方法2)嵌入式实时操作系统pC/05一11内核的分析在嵌入式系统的应用开发中,嵌入式实时操作系统是核心软件,它负责调度多任务、合理利用系统资源、系统函数及接口等。协C/05一11就具备这样的功能,它是一个源代码公开的嵌入式实时操作系统f7]。本文对其内核原理进行深入研究,并提出一些新的想法。对其不同于通用操作系统的内容进行重点分析,阐明使用该实时操作系统的意义。3)车桥校直检测系统的硬件设计在车桥校直检测系统的硬件设计部分,首要的工作是在充分考虑原有校直机的结构和布置的基础上,设计一种造型清晰美观、操作简单方便、易于维护的车桥校直检测系统布置图及检测装置的结构图。其次,根据现有的实际情况结合自身的特点,对硬件平台进行了选型,构造出一个结构简易且功能完善的硬件平台。4)车桥校直检测系统的软件设计在车桥校直检测系统的软件设计部分,对整个车桥校直检测系统进行功能分析的基础上,并依据软件工程中的解祸原则及嵌入式实时操作系统中任务划分的原则,给出应用系统划分任务的方法,对各个任务的创建思想及实现过程进行分析。将嵌入式实时操作系统pC/05一H和车桥校直检测系统融为一体,提出基于实时操作系统RTOS(RealTimeOperationSystem)的编程思想,在实时内核的调度下进行多任务的运转。将嵌入式实时操作系统下的运行模式与传统的前后台运行方式进行对比分析,发现基于RTOS的软件机制可以更好地解决时间响应的问题,同时使得整个系统模块化,简化系统结构,减少编程的工作量。最后,给出整个软件实现后所得到的效果。针对在pC/05一11环境下的编程模式与通用操作系统下的编程模式有很大的不同,本文对此进行分析,提出一种设置编译器的方法,并给出在该环境下开发项目的过程。 4嵌入式系统在国内外的研究及应用情况中国计算机学会于1999年6月举行了“嵌入式系统及产业化在中国的发展前景”研讨会,探讨了嵌入式系统在当今计算机工业中的地位及其网络化问题。会议认为下一代产品中嵌入式系统技术将大大增加,700k的产品应用嵌入式技术。其目的就是要把一切变得更简单、更方便、更普遍、更适用,因此称嵌入式智能芯片是构成未来世界的“数字基因”。美国市场研究公司工DC在一份研究报告中预测,到2002年,网络家电设备(主要是由嵌入式系统构成)的销量将与所有PC产品销量总和大体相当。Dataquest预计,到2003年将会有大约4亿件Internet家电设备投入使用。到2010年,所有家庭PC都将由基于嵌入式系统的设备所取代。其中,大多数家庭办公室将会使用一种或多种独立的工nternet家用电器,这些Internet产品有些是面向某些特殊用途,有的则是把多种技术集成在同一设备中。目前嵌入式系统带来的工业年产值己超过了1万亿美元,1997年来自美国嵌入式系统大会的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’己超过了工BM”;宝马公司生产的一辆高级汽车上应用了数百个嵌入式微处理芯片。由此可见,嵌入式计算机工业的规模和广度。在美国、日本等发达国家,嵌入式系统已经应用到传统工业的各个方面,从智能化电机、智能化水泵,到智能化汽车,嵌入式系统已成为现代工业不可缺少的一个重要部分。我国也非常重视嵌入式系统技术的研究。国家863计划投入了大批资金用于开发我国自主版权的嵌入式操作平台和数据库,在1999年推出自主开发的“女蜗”Hopen嵌入式操作系统,教育部直属高校近几年在嵌入式操作系统领域已经展开了一系列的研究工作,总装备部也拟订计划研制开发嵌入式操作系统。但是,由于我国当前的各种嵌入式智能化设备的开发,主要都集中在高科技产品和家电方面,例如掌上电脑(PDA)、手持GPS卫星定位系统、数字电视、智能空调等,而传统工业方面却长期没有被重视,在国外大量智能化设备都出现的情况下,我国装备制造业中的大多数企业仍然采用传统的单一模式产品,与国外同类产品的差距越来越大,由于产品功能单一,缺乏高科技附加值,产品利润和销量都受到很大影响。在工业控制领域中,大多数系统要求能够进行实时控制、将设备状态及传感器的信息等在显示屏上实时显示,当系统较为复杂时,单片机就无法满足这些要求,而嵌入式系统可以很好地解决实时性等问题。在工业控制器和设备控制器方面,各种嵌入式处理器提供了丰富的接口总线资源,通过它们可以实现第二章嵌入式实时操作系统pC/05一H内核的分析pC/0S一11是一个源代码公开的嵌入式实时操作系统,它包括任务管理、中断管理、时间管理、任务间同步与通信、内存管理等模块。其核心代码短小精悍,执行效率高,适合嵌入式系统的需求。协C/05一11以其可移植性、可固化、可剪裁及代码执行时间的可确定性等优点,得到很广泛的应用。 2.1实时操作系统的几个关键概念在论述嵌入式实时操作系统pC/05一11的内核设计及基本原理之前,针对pC/05一H与通用操作系统相比所具有独特之处进行分析。 2.1.1占先式内核当系统响应时间很重要时,要使用占先式内核。pC/05一11以及绝大多数商业上销售的实时内核都是占先式内核。其特点是:优先级最高的任务一旦就绪,总能得到CPU的控制权;当一个运行着的任务使一个比它优先级别高的任务进入就绪态,当前任务的CPU使用权就被剥夺,或者说被挂起,那个优先级高的任务立刻得到CPU的控制权。如果中断服务子程序使一个优先级高的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行,如图2.1所示[7]。由此可见,使用占先式内核,最高优先级的任务执行的时间是可知的。与占先式内核对应的是非占先式内核,这种内核要求每个任务自我放弃cPu的使用权。非占先式内核最大缺陷在于响应时间,高优先级的任务进入就绪态,但还不能运行,直到当前运行着的任务释放CPU。低优先级任务口中断服务子程序一~一一卜「--一一一-一,先级任务中断服务程序使弄优先级任务就绪时间图2.1:1不先式内核入就绪态,则新进入就绪态的这个优先级更高的任务得以运行,否则,原来被中断的任务还会继续运行。多任务启动是指系统初始化后,pC/05一JI内核开始运行,根据任务优先级的大小进行多任务运转。图2.3是对原来状态的转换图[91进行了改进。由于原状态转换图对任务状态的输入与输出没有足够的阐明,并且一个状态输入同时对应多个状态输出,使得任务状态之间的关系混杂、条理不清且不易阅读。改进后的状态转换图很好地解决了上述问题,且该状态转换图流程清晰、直观,也更加合理。从任务状态转换分析可见,pC/05一11总是运行在就绪态中优先级最高的任务。确定哪个任务的优先级最高,需要依据就绪表[9]中的内容。2.3.2就绪表就绪表是pC/05一n内核中一个非常巧妙的算法描述。在pC/05一n中,每个任务的就绪态标志放入就绪表中,它有两个数组变量OSRdyGrP「〕和OSRdyTbl〔]。OSRdyTb川中的每一位为1表示相应优先级的任务处于就绪状态。OSRdyGrp「」中的每一位为1,表示每8个为一组的任务中至少有1个已经就绪,且数值越小优先级越高。完整的就绪表如图2.4所示。举例说明,若设定某个任务优先级为20,则在OSRdyTbl「〕中相应为置1,与此同时该行所对应的组号2也置1。没有设定的任务优先级置0,只要一行中某个优先级被启用,则该行对应的优先级组号置1。使任务进入就pC/OS一11内核是一种占先式内核,能够保护重要代码不被破坏,提供实时调度、中断管理、任务管理、时间管理、内存管理等功能模块。任务状态及其转换每个任务在不同的时刻,其状态是休眠态、就绪态、运行态、等待态或中断态五种基本状态之一,状态之间的相互转换过程如图2.3所示。尸尸尸尸---曰曰曰曰JJJ图2.3任务状态转换图图中,休眠态是指任务驻留在程序空间(ROM或RAM)中,还没有交给多任务实时内核管理。就绪态是指任务已经准备就绪,但是其任务的优先级低于正在执行任务的优先级。一旦当前优先级最高的任务执行完毕,处于就绪态中的任务将得到执行。如果就绪态中有多个任务时,则根据优先级的高低抢占CPU控制权。运行态是指具有最高优先级的任务正在运行,具有CPU的控制权。当正在运行的任务执行一次后进行任务延时或者等待某一个事件发生时,该任务状态转入等待态。等待态是指运行的任务被挂起,期待某一事件的发生。如等待1/0操作的完成、等待时钟节拍及延时结束等。当等待的事件发生时,等待态就转换为就绪态。中断态是指当定时中断发生时,系统响应该中断,并进入中断服务子程序(工SR)中。中断发生时,正在执行的任务被挂起,中断服务子程序得到CPU的控制权。中断服务子程序可能会报告一个或多个事件的发生,而使一个或多个任务进入就绪态。在中断服务子程序返回时,pC/05一11要判定被中断的任务是不是就绪态中优先级最高的,如果中断服务子程序使一个优先级更高的任务进开始运行这个任务。如果系统只有一个CPU的话,尽管操作系统是多任务的,但CPU在任何时刻只能为一个程序服务,因此,多任务运行机制是在操作系统的层次上实现的。 2.1.4时钟节拍时钟节拍是特定的周期性中断,该中断是实时操作系统的“心脏脉动”,是实现多任务调度最根本的方法。中断的时间间隔取决于不同的应用,一般在10ms到IOOmS之间。时钟的节拍式中断使得内核可以将任务延时若干个时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。2.2pC/05一11与其他嵌入式实时操作系统的比较林C/05一H与其他嵌入式实时操作系统相比,有其自身的优点:(1)结构简单:绝大部分pC/05一H的源代码是用移植性很强的ANSIC(AmeriCanNationalStandardSInstituteC)编写,和微处理器硬件相关的内容是用汇编语言编写。(2)容易移植:pC/05一H可移植性非常好,很容易就能移植到各种微处理器上,只要该处理器有堆栈指针,有CPU内部寄存器入栈、出栈指令。移植工作需要编写少许与微处理器相关的代码即可。(3)适于应用:pC/05一11具备了实时操作系统的全部性能,广泛应用于各种系统中。(4)易剪裁性:协C/05一11提供多种系统服务,可以针对具体应用情况,利用条件编译方法有选择地使用系统功能。(5)可固化:pC/05一11是为嵌入式应用设计的,这意味着,只要有固化手段(C编译、链接、下载和固化),”C/05一11就可以嵌入到应用中成为产品的一部分。另外,协C/05一n支持基于PC服务,可以在PC上进行开发,然后移植到不同的硬件平台中。(6)可确定性:pc/05一11全部函数调用的执行时间具有可确定性l7],即函数调用的执行时间是可知的,不依赖于应用程序任务的多少。2.3pc/Os一H内核结构的分析协C/OS一11实时内核主要处理多任务调度及中断问题。它可以管理64个任务,其中有8个任务供实时内核自身使用,因此用户可以创建56个应用任务。每个任务的优先级各不相同,优先级数值越小,优先级别越高。.2可重入型函数使用占先式内核时,个以上的任务同时调用,应用程序需要调用可重入型函数。此类函数可以被一而不必担心数据被破坏。可重入型函数在任何时候都可以被中断一段时间以后重新运行而相应数据不会丢失。针对这一特点,构造可重入型函数时一般只使用局部变量,将变量保存在如果使用全局变量,则要对全局变量予以保护。CPU寄存器中或堆栈中。 2.1.3多任务运行机制多任务运行机制是实时操作系统的一个重要特点。在实时操作系统中,一个任务是一段完整的程序,每个任务都被赋予一定的优先级C四寄存器和堆栈空间,如图2.2所示[s]。,有它自己的一套任务1堆栈任务2堆栈任务n堆栈从图2.2中可以看出,图2.2多任务机制多任务的运行实际上是通过CPU在各个任务之间转、调度实现的。当内核决定任务切换时,CPU将保存正在运行任务的当前状,即把CPU寄存器中的全部内容保存在该任务的堆栈中。入栈操作完成以后,换态把下一个即将要运行任务的当前状态从该任务的堆栈中装入CPU的寄存器,并给任务的参数指针pdata、分配给任务堆栈的栈顶指针Ptos、分配给任务的优先级prio,函数定义如程序清单2.4所示。中可以看出,在任务创建函数运行时,一开始先判断分配给任务的优先级是否有效。接着,任务创建函数要确保在规定的优先级上还没有建立任务。如果这个优先级是空闲的,pC/05一11通过放置一个非空指针在任务控制块优先级列表中来保留该优先级。这就使得任务创建函数在设置任务数据结构的其他部分时能重新允许中断。然后,任务创建函数调用任务堆栈初始化函数建立任务的堆栈。当完成建立堆栈的任务后,任务创建函数就调用任务控制块初始化函数从空闲的任务控制块中获得并初始化一个新的任务控制块,并将任务数(OSTaskCtr)加l。pC/OS一H支持处理器的堆栈既可以从上(高地址)往下(低地址)递减也可以从下往上递增。在应用程序的任务创建的时候,必须知道堆栈方向是递增的还是递减的,因为必须把任务堆栈的栈顶指针传递给任务创建函数,而栈顶可能是堆栈的最高地址(堆栈从上往下递减),也可能是最低地址(堆栈从下往上递增)。任务创建扩展函数是任务创建函数的扩展,用它来建立应用程序会更加灵活,但会增加一些额外的开销,因为任务创建扩展函数需要9个参数。一前四个参数与任务创建函数的参数完全相同,这样构建目的是为了使用户能够更容易地将用户的程序从任务创建函数移植到任务创建扩展函数上[9]。2.5pC/05一11时间管理的分析pC/05一11与通用操作系统之间一个很大的不同就是它利用定时中断来实现延时与超时控制等功能。时钟节拍的实际频率是由应用程序设定的,时钟节拍的频率越高,系统的负荷就越重。时钟节拍源是专门的硬件定时器,但其计时必须在多任务系统启动以后执行。如果在多任务系统启动函数之前允许时钟节拍中断,会使pC/05一H处在一种不确定的状态,应用程序随时会崩溃。 2.5.1任务延时任务延时是指任务通过调用延时函数将自身或其他任务延时一段时间再执行,这段时间的长短可以用时钟节拍的数目来确定,也可以用具体时间来指定。调用延时函数后,pC/05一11进行一次任务调度,当前任务从就绪表中删除,其他准备就绪的任务依据优先级的大小重新抢占CPU的使用权。当延时结束时,延时任务重新进入就绪态。 2.5.2对原时钟中断服务子程序(1SR)的改进根据pC/os一11内核原理[7J[91,当一个时钟节拍中断到来,cPu响应这个中断后,CPU的中断向量跳转到中断服务子程序来完成任务管理、调度等工作,主要是实现任务切换。这样,每个时钟节拍到来都会把当前任务挂起,运行中断服务程序,决定下一个运行的任务,然后再切换过去。这显然存在一个问题,即如果在当前系统中占用CPU的是处于就绪态中的优先级最高的任务,那么任务调度就没有必要发生。在嵌入式系统中,系统资源相对于通用的CPU要少,且频繁的任务切换要占用较大的资源。从前面的分析中可以看出,嵌入式实时操作系统具有时间上的可确定性、可预测性,即操作系统的行为是可知的l’0]。因此,为改进算法提供了依据和可能。基于上述考虑,提出一种想法来处理时钟节拍,使它在需要任务切换时才‘运行时钟中断服务子程序,减少时钟中断服务子程序不必要的运行,如图2.6所示,图中任务1的优先级高于任务2的优先级。改进后的时钟中断服务方案图2.6改进前后的时钟中断服务对比具体地,当具有最高优先级的就绪任务在运行时,在它自己延时进入等待状态或另一优先级更高的任务进入就绪态之前,时钟中断服务子程序将不会运行,而是在需要切换的时候让时钟服务子程序运行,这样就节省了CPU时间。假定系统在运行时,没有创建和删除任务,那么算法为:在当前任务被挂起或一个时钟中断服务子程序运行时,预测下一次任务切换的时间,并且使下次时钟中断服务子程序在那个时刻被激发。通过以上算法,可以合理的屏蔽一些不必要的时钟节拍中断,减小内核运行的负荷,提高系统运行的效率。2.6“C/05一11多任务启动与调度对pC/05一11源代码进行分析得知,在启动协C/05一11之一前,应用程序至少要建立一个任务。切换任务只发生在两种情况下:第一种是当某一个任务运行完毕时就调用延时函数,使自身延时一个或多个时钟周期,进行任务切换,运行已经就绪的最高优先级任务;第二种情况是在每次时钟周期中断后,中断服务子程序运行时,可能使得一些任务准备就绪,然后发生任务切换。两种情况总结为图2.7所示。从图2.7中可以看出,在内核启动以后,当有优先级高的任务进入就绪态或者时钟中断发生时,多任务内核要进行任务调度。pC/05一n内核提供的调度器[81正是完成任务调度的工作。初始化pC/05一11建立一个任务调用高优先级就绪任务启动函数启动多任务内核当就绪表,},有优先级更高的任务病下.步…淤夕皇竺彗一当没有任务就绪或中断发生任务级调度并进行任务切换进入任务之间的状态转变中断级调度并进行任务切换图2.7多任务内核启动当需要任务调度时,内核首先将被中断任务的微处理器寄存器推入堆栈,然后将高优先级任务的寄存器值从堆栈中恢复到寄存器中进行运行。任务调度部分的代码属于临界扭代码I‘’],因此,在执行任务调度时,将中断关闭。 2.7本章小结本章的主要工作:1)对嵌入式实时操作系统pC/05一H的内核进行深入分析,针对其核心的内容如内核结构、任务创建、时间管理及任务调度等进行重点论述。对实时操作系统不同于通用操作系统的关键概念进行阐明。2)由于原任务状态转换图中对任务状态的输入与输出没有足够的阐述,且出现一个输入同时对应多个输出的情形,使得任务状态间的转换关系比较混乱,可读性差。本文对此进行了修改,改进后的任务状态转换图解决了上述问题,整个转换图清晰、直观。绪态的算法如程序清单2.1所示。程序清单2.1(使任务进入就绪态)OSRdyGrp}=OSMapTbl[prio)>3〕:OSRdyTbl[prio>>3〕}=OSMapTbl[prio&OxO7]:其中,prio是任务的优先级,OSMapTbl[」是在ROM中的位掩码,用于限制OSRdyTbl[〕数组的元素下标在O到7之间。与此对应,如果一个任务被删除了,则作求反处理,具体算法如程序清单2.2所示。程序清单2.2(从就绪表中删除一个任务)if((OSRdyTbl[prio))3〕&=一OSMapTbl[prio&oxO7〕==O)OSRdyGrp&=~OSMapTbl[prio)>3j:上面这个代码将就绪任务表数组OSRdyTbl[」中相应元素的相应位清零,而对于OSRdyGrp[〕,只有当OSRdyTbl[prio>>3〕所有的位都是零时,它的相应位才清零。查找进入就绪态优先级最高的任务,并不是从OSRdyTbl「田开始扫描整个就绪表,而是以优先级组号为下标查优先级判断表OSUnMaPTbl,算法如程序清单2.3所示。 程序清单2.3(找出进入就绪态优先级最高的任务)OSUnMapTbl[OSRdyGrp]:OSUnMapTbl[OSRdyTbl〔y〕〕:prio=(y<(3)+x2,3.3基于固定优先级调度策略。C/os一11内核莱雨的是基于固定优先级调度法,不支持时间片轮转调度法,这与Windows操作系统有很大的不同。WindowS系统采用的是基于时间片轮转调度法,即当两个或两个以上任务有同样优先级时,内核允许一个任务先运行事先确定的一段时间,然后切换给另一个任务。在基于协C/05一H内核设计应用程序时,各个任务分配的优先级是固定的,且必须互不相同。2.4pC/05一11任务创建的分析从内核的任务管理模块[8]得知,林c/05一11的任务是通过任务创建函数和任务创建扩展函数建立的。参考内核源代码[8]l91发现,内核在开始多任务调度前,必须先至少建立一个任务,而且任务不能由中断服务子程序建立。用任务创建函数建立任务需要四个参数:即任务代码的指针task、当任务开始执行时传递3)总结了任务切换的两种可能情况。第一种情况是任务执行完毕后进行任务延时,另外一种情况是时钟中断节拍的发生。本文归纳了两种情况的具体流程图。4)提出了一种新的想法用于改进原中断服务子程序(工SR),改进后的中断服务子程序可以减少不必要时钟节拍的次数,提高系统运行的效率、减少系统资源的浪费。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

论文查重:

论文检测,论文查重第一家,是一家以检测抄袭与剽窃、伪造、篡改、不当署名、一稿多投等学术不端文献的论文检测平台,目前主要推荐的知名、权威检测产品包括中国知网的AMLC系统、VIP、TMLC2系统,万方数据库的万方相似比检测系统,维普文检测系统、gaperpass检测系统,等等常见检测软件

推荐软件知网期刊检测AMLC 知网本科检测 知网硕博检测 万方论文相似比检测 维普论文检测

检测须知:

1.此系统一旦提交,开始检测后,概不退款!2.在淘宝中购买宝贝后,可以在“我已购买宝贝”中看到有“订单编号”,知网系统检测需要输入订单编号才能使用。3.Word文档大小请不要超过15MB ,否则将无法上传;请把不必要的图片删除即可(系统不检测图片);4.上传检测的文档格式为Word的docx,doc格式,请勿上传其他格式的文档。

检测入口返回顶部
知网期刊检测
知网本科检测
知网硕博检测
万方论文检测
维普论文检测
paperpass
返回顶部