一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法

文档序号:9452860阅读:315来源:国知局
一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法
【技术领域】
[0001]本发明涉及嵌入式控制系统技术领域,具体为一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法,适用于无操作系统的多任务嵌入式实时控制系统设计。
【背景技术】
[0002]嵌入式控制系统的设计涉及两种平台,一种是自带操作系统,如VxWorks,这种方式的优点是便于开发者进行多任务管理,但因操作系统的存在,启动时间比裸机长,且操作系统采用信号量的形式进行调度和管理,无法满足毫秒级实时事件的响应要求;一种是不带操作系统,裸机运行,这种方式的优点是启动快,实时性强,但是在进行多任务并行处理时,实现较为困难。通常的做法是通过自定义中断任务确保定周期实时事件的执行,但在中断任务频繁且耗时较长时,会影响系统实时性和可靠性。

【发明内容】

[0003]为解决嵌入式系统快速启动、高实时性和多任务并行处理的矛盾,本发明提出一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法,得到的嵌入式控制系统能够基于裸机运行,启动时间优于操作系统,实时性也强,而且该系统基于多任务查询模式,避免了因大量中断服务程序运行对实时性造成的影响;可根据不同任务设置不同的优先级进行分级调度,满足多类任务处理需求。
[0004]本发明的技术方案为:
[0005]所述一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法,其特征在于:包括以下步骤:
[0006]步骤1:确定嵌入式控制系统所要完成的每个任务的处理时间,若某一任务的处理时间大于系统控制周期,则将该任务分解为若干子任务,且分解后的单个子任务处理时间小于系统控制周期;
[0007]步骤2:将嵌入式控制系统所要完成的所有任务分为定时任务、实时任务和随机任务三类,所述定时任务指在每个系统控制周期内均需完成的任务;所述嵌入式控制系统所要完成的所有任务由所有处理时间小于系统控制周期的任务和步骤I得到的分解后的子任务组成;
[0008]步骤3:在嵌入式控制系统的单个系统控制周期内,设计采用以下处理流程:
[0009]步骤3.1:在系统控制周期开始时刻,轮询本系统控制周期的任务标签库,所述任务标签库由所有定时任务标签、本系统控制周期要完成的实时任务标签以及在上一系统控制周期形成的随机任务标签组成;
[0010]步骤3.2:判断本系统控制周期任务标签库中的所有任务的处理时间之和是否大于系统控制周期,若是,则将本系统控制周期任务标签库中的某些实时任务标签和/或随机任务标签转移至下一系统控制周期任务标签库,确保本系统控制周期任务标签库中所有任务的处理时间之和小于系统控制周期;
[0011]步骤3.3:执行本系统控制周期任务标签库中的所有任务,当执行过程中出现新加入的随机任务,则将新加入的随机任务标签放入下一系统控制周期的任务标签库中。
[0012]有益效果
[0013]采用本发明方法设计的嵌入式控制系统无操作系统,可以兼顾操作系统多任务并行处理的便利性,裸机系统的快速启动,及对毫秒级以上事件响应的实时性。本方法适用于实时性要求较高、启动时间要求苛刻的嵌入式控制系统设计,可以达到对系统资源的最大化利用。
【具体实施方式】
[0014]本实施例中所要设计的嵌入式控制系统,其要完成的任务包括系统航行控制任务、端口通讯任务、检测任务、弹道执行任务、系统在线监控任务。为了快速启动、高实时性和多任务处理,本实施例采用基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法设计嵌入式控制系统,包括以下步骤:
[0015]步骤1:确定嵌入式控制系统所要完成的每个任务的处理时间,若某一任务的处理时间大于系统控制周期,则将该任务分解为若干子任务,且分解后的单个子任务处理时间小于系统控制周期。
[0016]步骤2 ;将嵌入式控制系统所要完成的所有任务分为定时任务、实时任务和随机任务三类。所述定时任务指在每个系统控制周期内均需完成的任务,定时任务的执行与系统控制周期相匹配。本实施例中,系统航行控制任务、端口通讯任务、检测任务、弹道执行任务、系统在线监控任务的处理时间均小于系统控制周期,所以都不用分解,其中系统航行控制任务、系统在线监控任务属于定时任务,需按周期执行;端口通讯为实时任务,有则执行;检测任务和弹道执行任务为随机任务。
[0017]步骤3:在嵌入式控制系统的单个系统控制周期内,设计采用以下处理流程,将所有任务按时间片进行精确分配和调度,达到在一个系统控制周期内,定时任务定周期执行,实时任务随时响应,随机任务择机执行的效果,同时也杜绝任务处理过程中跨周期问题的出现。
[0018]步骤3.1:在系统控制周期开始时刻,轮询本系统控制周期的任务标签库,所述任务标签库由所有定时任务标签、本系统控制周期要完成的实时任务标签以及在上一系统控制周期形成的随机任务标签组成;
[0019]步骤3.2:判断本系统控制周期任务标签库中的所有任务的处理时间之和是否大于系统控制周期,若是,则将本系统控制周期任务标签库中的某些实时任务标签和/或随机任务标签转移至下一系统控制周期任务标签库,确保本系统控制周期任务标签库中所有任务的处理时间之和小于系统控制周期;
[0020]步骤3.3:执行本系统控制周期任务标签库中的所有任务,当执行过程中出现新加入的随机任务,则将新加入的随机任务标签放入下一系统控制周期的任务标签库中。
[0021]通过上述方法设计得到的嵌入式控制系统基于裸机运行,启动时间优于操作系统,实时性也强;基于轮询模式,避免了因大量中断服务程序运行对实时性造成的影响;可根据不同任务设置不同的优先级进行分级调度,满足多类任务处理需求。
[0022]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【主权项】
1.一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法,其特征在于:包括以下步骤: 步骤1:确定嵌入式控制系统所要完成的每个任务的处理时间,若某一任务的处理时间大于系统控制周期,则将该任务分解为若干子任务,且分解后的单个子任务处理时间小于系统控制周期; 步骤2:将嵌入式控制系统所要完成的所有任务分为定时任务、实时任务和随机任务三类,所述定时任务指在每个系统控制周期内均需完成的任务;所述嵌入式控制系统所要完成的所有任务由所有处理时间小于系统控制周期的任务和步骤I得到的分解后的子任务组成; 步骤3:在嵌入式控制系统的单个系统控制周期内,设计采用以下处理流程: 步骤3.1:在系统控制周期开始时刻,轮询本系统控制周期的任务标签库,所述任务标签库由所有定时任务标签、本系统控制周期要完成的实时任务标签以及在上一系统控制周期形成的随机任务标签组成; 步骤3.2:判断本系统控制周期任务标签库中的所有任务的处理时间之和是否大于系统控制周期,若是,则将本系统控制周期任务标签库中的某些实时任务标签和/或随机任务标签转移至下一系统控制周期任务标签库,确保本系统控制周期任务标签库中所有任务的处理时间之和小于系统控制周期; 步骤3.3:执行本系统控制周期任务标签库中的所有任务,当执行过程中出现新加入的随机任务,则将新加入的随机任务标签放入下一系统控制周期的任务标签库中。
【专利摘要】本发明提出一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法,首先根据每个任务的处理时间和系统控制周期,判断是否需要将任务分解,其次将所要完成的所有任务分为定时任务、实时任务和随机任务三类,并在单个系统控制周期内设计三类任务的执行程序。本发明适用于无操作系统裸机模式下多任务实时嵌入式系统的设计和实现,可以兼顾操作系统多任务并行处理的便利性,裸机系统的快速启动,及对毫秒级以上事件响应的实时性,适用于实时性要求较高、启动时间要求苛刻的嵌入式系统设计,还可以达到对系统资源的最大化利用。
【IPC分类】G06F9/44
【公开号】CN105204857
【申请号】CN201510603284
【发明人】雷茵, 程树明, 宋喜发
【申请人】中国船舶重工集团公司第七〇五研究所
【公开日】2015年12月30日
【申请日】2015年9月21日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1