《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 空间控制器软件任务调度设计
空间控制器软件任务调度设计
2016年微型机与应用第12期
张新玉,李恺,张凤
(北京空间机电研究所,北京 100094)
摘要: 介绍了空间控制器软件外中断主程序循环查询任务调度、外中断定时器中断查询任务调度和外中断串口中断查询任务调度三种任务调度模式,并对三种任务调度模式的适用范围、优缺点进行了对比分析。结合工程实践,采用外中断串口中断查询任务调度模式,处理多个型号软件任务调度,充分利用软件资源,合理优化软件结构,大大提高了整个软件的响应及时性和资源利用率。
Abstract:
Key words :

  张新玉,李恺,张凤

  (北京空间机电研究所,北京 100094)

  摘要:介绍了空间控制器软件外中断主程序循环查询任务调度、外中断定时器中断查询任务调度和外中断串口中断查询任务调度三种任务调度模式,并对三种任务调度模式的适用范围、优缺点进行了对比分析。结合工程实践,采用外中断串口中断查询任务调度模式,处理多个型号软件任务调度,充分利用软件资源,合理优化软件结构,大大提高了整个软件的响应及时性和资源利用率。

  关键词:空间控制器软件;任务调度;响应及时性

0引言

  当前空间控制器软件针对不同任务需求,通常有三种任务调度方式:外中断主程序循环查询任务调度、外中断定时器中断查询任务调度、外中断串口中断查询任务调度 [14]。

  本文结合实际应用,分别对三种任务调度模式及其应用范围进行介绍,并针对当前空间控制器软件任务现状,在型号应用中合理利用CPU串口中断功能,通过串口中断解析中控计算机指令,优化软件资源与调度,提高软件对任务响应的及时性和工作效率[5]。

1空间控制器软件任务调度

  中控计算机与空间控制器通过总线通信[67],空间控制器软件通过外中断程序接收中控计算机发送过来的数据信息。在外中断程序中,设定总线数据缓冲区,接收数据信息,设置相应的标志。软件根据不同类型的标志,设定对应的数据处理缓冲区及缓冲区指针,将总线数据信息按类型转存至对应数据处理缓冲区。软件根据指针值处理对应数据缓冲区内数据信息[8]。

  1.1外中断-主程序循环查询任务调度

  外中断-主程序循环查询任务调度模式适用于空间控制器软件任务较少、软件在主程序中通过循环查询能够及时处理任务或中控计算机对任务响应及时性要求不高的情形。

  软件根据任务数据类型,设定不同的数据处理缓冲区及缓冲区指针。在收到中控计算机数据后,触发CPU处理器外部中断,在外中断中解析收到的中控计算机数据,根据不同的数据信息,设置不同的标志,并将数据信息保存在相对应的总线数据缓冲区,退出外中断程序。

  软件在主程序中循环查询数据信息标志,当主程序查询到相关标志后,根据数据信息标志,判断收到的数据类型,提取相应的中控计算机数据,将其按类型保存在对应的数据处理缓冲区,释放总线数据缓冲区,对应数据处理缓冲区指针加1,完成中控计算机数据通信任务的调度功能。通过主程序中其他模块,查询数据处理缓冲区指针值,根据指针值,处理接收到的中控计算机数据。具体操作流程如图1所示。

001.jpg

  1.2外中断-定时器中断查询任务调度

  外中断-定时器中断查询任务调度模式适用于空间控制器软件任务较复杂、对任务响应及时性要求较高、外部图1外中断-主程序循环查询任务调度模式架构图中断资源全部被占用或定时器资源充足的情形,软件在中断程序中设置不同的数据信息标志并保存数据信息后,启动定时器计时计数,再退出外中断程序。定时时间到,进入定时器中断程序,查询到相关数据信息标志后,根据数据信息标志,判断收到的数据类型,提取相应的中控计算机数据,将其按类型保存在对应的数据处理缓冲区,释放总线数据缓冲区,对应数据处理缓冲区指针加1,退出定时器中断程序,完成中控计算机数据通信任务调度功能。利用软件中特定功能模块,查询数据处理缓冲区指针值,根据指针值,处理接收到的中控计算机数据。具体操作流程如图2所示。

002.jpg

  1.3外中断-串口中断查询任务调度

  外中断串口中断查询任务调度模式适用于空间控制器软件任务复杂、对任务响应及时性要求高、串口中断资源闲置的情形,软件在中断程序中设置不同的数据信息标志并保存数据信息后,启动串口中断,再退出外中断程序。在串口中断程序中实现定时器中断功能,完成中控计算机数据通信任务调度功能。利用软件中特定功能模块查询数据处理缓冲区指针值,根据指针值,处理接收到的中控计算机数据。具体操作流程如图3所示。

003.jpg

  1.4三种任务调度对比

  在外中断-主程序循环查询任务调度模式下,软件在运行过程中,触发外中断,接收中控计算机发送来的数据信息,设置相应数据信息标志,退出外中断,主程序循环,查询到相应数据信息标志后,处理相关数据信息。具体时序关系如图4所示。

  在该模式下,软件在主程序中循环查询外中断中的数据信息标志,若查询到相关标志,则执行对应标志下的数据信息,否则执行其他非查询标志类任务。由于软件退出外中断程序时机不确定,从而进入主程序位置也不确定,导致软件执行主程序中相应的查询数据信息标志,处理对应数据信息部分功能不一定会及时响应外中断程序,中间可能会有一定的时间间隔。另外,若外中断触发频率很高,或者软件待处理的任务较多、较复杂,则可能会出现软件频繁进入外中断或主程序循环执行周期较长的现象,从而导致主程序中循环查询数据信息标志处理相关数据信息功能,来不及处理相关数据信息而不能满足任务需求的情况。但是,由于整个软件架构中中断资源使用较少,因此对于整个软件来说,可靠性相对较高,因此该模式适用于软件任务较少、在主程序中通过循环查询能够及时响应任务处理或中控计算机对任务响应及时性要求不高、功能较简单、对软件可靠性要求很高的空间控制器软件。

  在外中断定时器中断查询任务调度模式下,软件在中断程序中处理相关信息,启动定时器,退出外中断后,定时时间到,进入定时器中断,处理相关数据信息。退出定时器中断后,软件继续执行主程序循环,等待新的中控计算机数据信息触发中断,执行相应操作。由于定时时间与外中断执行时间不能完全匹配,因此软件可能在退出外中断后立即进入定时器中断程图3外中断串口中断查询任务调度模式架构图图4外中断主程序循环查询任务调度模式时序

  序,也可能中间插入了一段主程序,等定时时间到后,进入定时器中断程序,具体时序关系如图5所示。

004.jpg

  在该模式下,需占用一个定时器资源,由于该定时器主要用来响应外中断中的中控计算机数据信息,为了减少外中断数据信息的处理时间,提高对外中断的响应速度,若设定的定时器计时时间较长,则会导致退出外中断后,定时器定时未到,软件无法及时进入定时器中断;若设置较短的定时周期,使得退出外中断后及时进入定时器中断,则其定时周期受高级中断影响更加不确定,导致定时器定时不准。因此该定时器不再复用作其他功能,从而占用较多软件资源。若软件有其他未用中断(如串口等),会造成一定的资源浪费,另外独占一个定时器,会增加其他定时器的任务量,导致定时器中断处理程序复杂度提高。因此该模式通常适用于空间控制器软件任务较复杂、对任务响应及时性要求较高、外部中断资源全部被占用或定时器资源充足、同时中控计算机对软件响应的实时性要求较高的空间控制器软件。

  在外中断串口中断查询任务调度模式下,软件在中断程序中处理相关信息,启动串口中断,退出外中断后,进入串口中断,处理相关数据信息。退出串口中断程序后,软件继续执行主程序循环,等待新的中控计算机数据信息触发中断,执行相应操作。具体时序关系如图6所示。 

005.jpg

  在该模式下,利用通常不被使用的串口中断,通过软件设置串口中断,在退出外中断程序后,立即进入串口中断,既不存在外中断主程序循环查询任务调度模式中中断响应时机不确定的现象,也不存在外中断定时器中断任务调度模式中可能出现的资源浪费现象,整个系统软件的资源得到最合理的优化配置。相对于外中断定时器中断任务调度模式,若软件串口闲置,则利用软件串口功能,可以释放一个定时器资源,通过合理优化,实现更多更复杂的定时功能,提高整个软件的执行效率和可靠性。因此,该模式通常适用于资源紧张、软件功能复杂、定时要求多、响应实时性要求苛刻、同时串口中断未被使用的空间控制器软件。

2推广应用

  一般中控计算机与空间控制器软件通过外部中断来触发通信。为了提高系统响应速度,通常在未使用的中断中处理相应任务。考虑到各处理器中断资源相对紧张,同时部分中断资源(如串口、软中断等)不用来通信的现状[13],可以在相关控制软件中,利用未使用的中断资源,满足及时响应通信任务的要求,节省定时器资源,更好地处理相关控制任务,提高软件控制性能。

3结论

  针对当前空间控制器软件任务现状,本文中所述的通过串口中断资源进行任务调度的方案已经应用于多个型号的空间控制器软件任务调度中。该方案充分利用CPU中断资源,避免资源浪费以及由此导致的功能较单一问题,为软件处理更复杂任务调度及控制功能提供了资源,提高了软件响应速度和控制性能,便于拓展系统功能。

参考文献

  [1] 颜军.SPARC嵌入式系统设计与开发[M].北京:中国标准出版社,2013.

  [2] 宁改娣,杨拴科.DSP控制器原理及应用[M].北京:科学出版社,2002.

  [3] 胡乾斌,李光斌,李玲,等.单片微型计算机原理与应用[M].武汉:华中科技大学出版社,2005.

  [4] 张少展,张春梅.基于软件规模的需求优先级排序方法应用[J].微型机与应用,2015,34(1):8184

  [5] 潘灵.RapidIO高性能通信中间件设计[J].电子技术应用,2014,40(12):107109.

  [6] 饶运涛,邹继军,郑勇芸.现场总线CAN 原理与应用技术[M].北京:北京航空航天大学出版社,2004.

  [7] Data Device Corp. ACE/MiniACE Series BC/RT/MT advanced communication engine intergrated 1553 teminal user’s guide [Z]. New York: Data Device Corp. 2005.

  [8] 康晓军,王劲强,王芸.基于扩展块的星载软件控制流容错评价方法[J].航天返回与遥感,2007,28(3);3339.


此内容为AET网站原创,未经授权禁止转载。