本发明属于航空工程应用技术领域,涉及一种基于分时分区嵌入式软件的运行时间控制方法。
背景技术:
电传飞行控制系统对实时性要求极高,系统从输入时刻到输出时刻的响应时间必须严格小于设计值。
传统的电传飞行控制系统中,嵌入式系统的硬件定时器每隔固定周期t0触发一个中断,在中断处理函数中进行飞行控制指令的计算并实时输出。这种方式可以保证每隔t0时间输出一次控制指令。
wl-a飞机使用了分时分区的飞控机载软件技术,一个周期内有多个分区软件需要运行,各分区软件的运行时间不同且需要精确控制,同时整个周期的运行时间也需要精确控制。若采用常规的单定时器方式来控制各分区软件的运行时间,则每个分区软件的运行时间是精确可控的,但分区软件间切换和设定定时器所耗费的时间并不可精确控制。整个周期运行时间的期望值为t0=t1+t2+……tn,实际值为t0=(t1+u1)+(t2+u2)+……(tn+un)。即使不可控的时间非常短,但多次切换分区产生的误差积累起来也会造成系统帧精度的漂移,因此需要一种新的运行时间控制方法来保证飞控机载软件运行周期的精度。
技术实现要素:
本发明的目的是:提供了一种基于分时分区嵌入式软件的运行时间控制方法,用于消除分时分区嵌入式软件在运行时产生的时间误差,从而满足控制系统的高实时性运行要求。
本发明的技术方案是:一种基于分时分区嵌入式软件的运行时间控制方法,采用主、从两个定时器的方案实现单个分区软件及整个周期运行时间的精确控制,包括以下步骤:
a)使用主定时器来控制小帧的运行时间,将主定时器时间设置为t小帧,即t0;
b)配置分区时间调度表,设定各分区软件的运行时间:ti,其中i从1到n,n为分区数量;
c)使用从定时器来控制各分区的运行时间;
d)当启动主定时器后,进入小帧时间运行控制。然后启动从定时器,进入第一个分区时间运行控制;
e)当从定时器的计数值从设定值ti递减为0时,完成本分区的时间控制,进入下一分区运行;
f)查询是否所有分区均已运行,若为是,进入帧后台等待主定时器计数结束,结束后跳转至步骤g);若为否,进入下一分区运行,跳转到步骤e);
g)当主定时器的计数值从设定值t0递减为0时,完成本小帧的时间控制,停止从定时器并进入下一小帧运行。
本发明的有益效果是:本发明提供了一种基于分时分区嵌入式软件的运行时间控制方法,确保了分时分区飞控机载软件各个分区以及整个周期的运行时间严格等于设计值。本发明已经在wl-a飞机飞机管理系统中实施,满足了飞机的精确控制要求。
附图说明
图1为本发明的双定时器作用范围示意图。
图2为本发明分时分区嵌入式软件运行时间控制方法流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
一个完整的运行周期内,双定时器作用范围示意如图1。本发明的流程图参见图2。
下面以wl-a飞机飞控机载软件为例对本发明做进一步详细描述。
wl-a飞机飞控机载软件共有6个分区t1\t2\t3\t4\t5\t6,运行周期为15ms,主从两个硬件定时器分别定义为主帧定时器和窗口定时器。软件初始化后,按以下步骤运行各分区软件:
a)设置主帧定时器为15ms,设置窗口定时器为1.5ms,运行t1分区;
b)窗口定时器中断触发后,挂起t1分区,设置窗口定时器为3.5ms,运行t2执行;
c)窗口定时器中断触发后,挂起t2分区,设置窗口定时器为1.5ms,运行t3分区;
d)窗口定时器中断触发后,挂起t3分区,设置窗口定时器为1.5ms,运行t4分区;
e)窗口定时器中断触发后,挂起t4分区,设置窗口定时器为3.5ms,运行t5分区;
f)窗口定时器中断触发后,挂起t5分区,设置窗口定时器为2.0ms,运行t6分区;
g)窗口定时器中断触发后,挂起t6分区,进入后台分区,等待主帧定时器中断;
h)主帧定时器中断触发后,返回a)执行下一个周期,整个周期的运行时间被精确控制为15ms。