当前位置:首页 > 测试测量 > 测试测量
[导读]实时多任务系统应用极其广泛,几乎渗透到各行各业,系统分类也很复杂。在嵌入式系统中,实时多任务机制是依靠启动之后运行的一段后台任务管理程序实现的。应用程序运行在该管理器程序之上。后台根据各个任务的要求,

实时多任务系统应用极其广泛,几乎渗透到各行各业,系统分类也很复杂。在嵌入式系统中,实时多任务机制是依靠启动之后运行的一段后台任务管理程序实现的。应用程序运行在该管理器程序之上。后台根据各个任务的要求,进行资源管理、消息管理、任务调度、异常处理等工作。其首要目的是调度一切可利用的资源实现实时控制任务。

  实时系统主要有两大类:软实时系统和硬实时系统。软实时系统的宗旨是使各个任务运行的越快越好,并不要求限定某一任务必须在多长时间内完成。在硬实时系统中,各任务不仅要执行无误而且要做到准时。大多数实时系统都是二者的结合。对于一个复杂任务系统,任务调度模式的选用是其系统架构的一个重点。无纸记录仪具有多层次的界面管理和较高的实时响应需求,由此选择与之相适应的系统任务调度模式是势在必行的。
 

  本论文综合考虑了各任务响应的实时性需求,对任务进行了创造性的调整,进而将软实时系统和硬实时系统进行了有机的结合,规划出最为合理的任务调度模式。

  1 记录仪实时多任务的特点

  通常的实时多任务操作系统都比较庞大,对于由单片机(80C320)组成的实时系统是不适用的。由于单片机的运算能力和内存有限,要求实时操作系统具有简单实用、高效可靠的特性。就记录仪而言,其任务和功能是预知的,则内存和文件管理系统可简化,甚至取消[1]。因为任务对存储器的要求是明确的,这样就可以使用固定和独立的存储区域分配方案,无需通过OS来控制和分配。因此,实时多任务操作系统就可以简化为基于任务调度与时钟中断管理为核心的调度模块。记录仪中的任务状态有四种:运行、就绪、等待、挂起,睡眠状态并入等待,不再另加以区分。

  2 任务的划分、组织和调度

  2.1 任务的划分

  在单片机实时多任务系统中,实现实时多任务机制的关键在于将系统功能合理地分解成各个任务模块。划分任务的原则:功能相对独立,并能与其他程序同时执行的程序划分为一个任务。但任务划分不能太细,否则将增加任务切换的系统开销,降低系统效率并影响系统响应的实时性。文献[2]指出,应尽量将关系密切的任务合并,减少任务间的通信。综合考虑任务的实时性和执行时间,记录仪的十个任务可分为三类:

  (1)高优先级任务:下位机上传采样值的处理,虚拟通道组织,报警处理。这类任务实时性要求高,执行时间<0.1s,如采样值处理任务,记录仪要保存采样值作为历史数据,保存过程中要加上时标,采样值正确而时标错误的记录是无效的。

  (2)低优先级任务:按键响应、显示、PID控制、流量积算。这类任务执行时间<0.2s,任务实时性要求一般。如按键响应任务,延迟0.5s是可以容忍的。

  (3)后台任务:存储、打印、与管理机(PC)通信。这类任务的执行时间>1s,对实时性的要求最低。

  2.2 任务的组织

  系统上电,初始化每个任务的固定任务栈,建立任务队列状态表和任务控制表(TCB),这两张表是任务调度的依据。任务队列状态表由高优先级、低优先级、后台任务三张子表组成;任务控制表由任务首地址、状态寄存器、任务局部变量三部分组成,数据结构见图1。

  

 

  2.3 基于消息驱动机制的任务调度

  借鉴面向对象程序设计的思想,在记录仪程序中引入消息概念,将任务的执行条件转换为消息,由消息对相应的任务进行激活,并由任务调度模块实现调度。消息定义为:当某个事件(如中断或某任务完成)发生时,事件处理程序设置相应的标志,不同的标志代表不同的消息。事件处理程序可以是中断服务程序,也可以是执行后需设置的标志的任务,因此,记录仪中任务的调度是基于消息机制来驱动的。消息在多任务程序中的作用相当于桥梁,使任务间既相互独立又有机关联,任务之间不能直接调用,需借助消息,由任务调度模块实施。

  中断服务程序由中断消息(标志)处理程序和中断任务处理程序两部分组成,前者仅仅完成消息(标志)处理就退出中断,而中断真正要完成的操作,是在任务调度模块的协调下,由中断任务处理程序来完成。如按下显示,则按键中断消息处理程序只产生一个按键消息(标志)就退出中断,而调度模块依据按键消息,调用按键中断任务处理程序获取键值,并产生显示消息。调度模块依据显示消息,调用显示任务程序。

  3 实时多任务调度策略

  多任务的系统,通常采用内核来管理各个任务,也就是通过内核为每个任务分配CPU时间,并负责任务之间的通信。根据任务的调度机制,可以分为非占先式内核和占先式内核。前者要求每个任务能够主动释放CPU等资源,后者则支持对当前任务的CPU使用权的剥夺,从而使更高优先级就绪任务得到CPU控制权进而执行。

  嵌入式系统采用何种调度策略,通常要考虑三个因素:系统的处理能力,任务的数目,系统对响应时间和执行效率的要求。抢占式调度能改善高优先级任务的实时性,但系统开销较大;非抢占式调度恰好与抢占式相反。针对记录仪,提出抢占式和非抢占式的复合多任务调度策略。记录仪的正常工作周期为1s,调度模块的工作周期亦为1s,并将1s分为三个时段:0s-0.5s,0.5-0.8s,0.8s-1s,实时时钟在0s, 0.5s, 0.8s各产生一次中断,将Time-flag分别设置为0,5,8,并将Attemper-flag置为0。任务调度程序框图如图2所示。

  

 

  在记录仪一个工作周期(1s)内,复合调度策略,允许高优先级任务三次抢占低优先级和后台任务,而低优先级任务具有两次抢占后台任务的权力。因此,高优先级任务的响应时间t≤0.5s,低优先级任务的响应时间t≤0.7s。由于抢占的次数有限,所以任务切换开销不大,有利于提高系统效率。

  抢占式和非抢占式的复合多任务调度策略已成功应用于某记录仪,达到了预期的目标。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭