基于回调功能的程控指令自主执行系统及方法技术方案

技术编号:20271987 阅读:20 留言:0更新日期:2019-02-02 03:28
基于回调功能的程控指令自主执行系统及方法,首先初始化单机程控指令序列中的全部变量,获取总线中程控指令的指令码变量,根据程控指令码判断当前程控指令对应的程控指令序列,及对应的序列元序号,然后依次将序列元装入待执行回调函数池中,记录序列元序号,记录时间标签,并将序列元待执行标识置位,当有序列元待执行且时间到达时,执行序列元,直至当前程控指令序列执行完成。

【技术实现步骤摘要】
基于回调功能的程控指令自主执行系统及方法
本专利技术涉及空间能源管理单机嵌入式软件领域,特别是基于回调功能的程控指令自主执行系统,涉及并网类能源管理单机中复杂程控指令的软件自主控制功能,适用于后续各星、船、飞行器的电源系统的程控指令,实现对复杂程控指令的动态调度。
技术介绍
由于宇航电源系统程控指令逐渐复杂,在基于单片机的嵌入式软件中,通过中断结合顺序执行和等待的软件执行方案无法满足软件性能及可靠性的要求,且在功能实现时会引起多种程控指令同时执行的指令序列混乱,需要使用基于动态回调技术实现复杂多样的程控指令和电源工况。传统的顺序型程控指令执行方式如图1所示,通过总线系统接收B2型指令后,执行B2型指令时间约为150ms,其中包括发送高脉冲信号、延时50ms、向对应功率组件设置电流、设置电压输出、延时80ms、发送低脉冲信号,由此软件主程序的执行时间最高可达500ms。图2为改进后的基于回调功能的程控指令执行流程图,在启动了指令序列中的一个序列元后,即跳出指令序列转而继续执行主程序中的其他任务,由此大大缩短了主程序执行时间并提高了软件运行效率。
技术实现思路
本专利技术解决的技术问题是:克服现有技术的不足,提供了基于回调功能的程控指令自主执行系统,解决了现有技术无法满足新型并网类单机复杂程控指令执行要求的问题,提供了基于回调功能的执行方法,利用自主回调策略,当执行某类复杂程控指令时,定时的将指令序列元从指令序列库中取出并执行,以此达到主循环与指令发送并行执行的软件高效运行目的。本专利技术的技术解决方案是:基于回调功能的程控指令自主执行系统,包括回调标志初始化单元、装入回调函数单元、重载定时器单元、查找并执行回调函数单元,其中:回调状态初始化单元,初始化单机程控指令序列中的全部变量;外部控制单元,获取总线中程控指令的指令码变量,根据程控指令码判断当前程控指令对应的程控指令序列,并将程控指令序列中的序列元序号送至装入回调函数单元;当查找并执行回调函数单元执行完毕当前序列元时,判断当前程控指令序列是否执行完成,若未完成,则控制装入回调函数单元装入下个序列元直到程控指令序列执行完毕;装入回调函数单元,当接收到来自总线的序列元序号时,则依次将序列元装入待执行回调函数池中,记录序列元序号,记录时间标签,并将序列元待执行标识置位;重载定时器单元,当进入定时器中断时,将时间标签做减法处理;查找并执行回调函数单元,实时查询当前是否有序列元待执行,当有序列元待执行且时间到达时,执行序列元,当有序列元待执行且未到达时间时,继续等待直至时间到达并执行序列元,当没有待执行序列元时,不进行操作,外部控制单元判断当前程控指令序列对应的所有序列元是否执行完成,若未完成,则控制装入回调函数单元装入下个序列元直到程控指令序列执行完毕。所述的回调状态初始化单元初始化单机程控指令序列中的全部变量,包括清零序列元待执行标识、序列元序号变量清零、程控指令码变量清零、时间标签清零。所述的装入回调函数单元在装入序列元前判断是否有正在执行的序列元,如果有正在等待执行的序列元,则丢弃当前序列元,不将其放置在待执行回调函数池中,如果没有正在等待执行的序列元,则根据序列元序号变量判断当前序列元的合法性,并记录序列元序号,记录时间标签,并将序列元待执行标识置位。基于回调功能的程控指令自主执行方法,包括如下步骤:(1)初始化单机程控指令序列中的全部变量;(2)获取总线中程控指令的指令码变量,根据程控指令码判断当前程控指令对应的程控指令序列,及对应的序列元序号;(3)依次将序列元装入待执行回调函数池中,记录序列元序号,记录时间标签,并将序列元待执行标识置位,其中,当进入定时器中断时,将时间标签做减法处理;(4)当有序列元待执行且时间到达时,执行序列元,当有序列元待执行且未到达时间时,继续等待直至时间到达并执行序列元,当没有待执行序列元时,不进行操作,外部控制单元判断当前程控指令序列对应的所有序列元是否执行完成,若未完成,则控制装入回调函数单元装入下个序列元直到程控指令序列执行完毕;(5)判断当前程控指令序列是否执行完成,若未完成,则转入步骤(3)装入下个序列元直到程控指令序列执行完毕。一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现如权利要求4所述方法的步骤。一种基于回调功能的程控指令自主执行终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现如权利要求4。本专利技术与现有技术相比的优点在于:本专利技术与现有技术相比,通过提升软件的执行效率,在执行程控指令时不占用主程序执行时间;回调函数将调用者与被调用者隔离,当特定的指令序列需执行时,只需使用函数指针调用回调函数执行即可,不必关心是哪个指令序列元,增强了软件模块的分层设计,降低了软件模块之间的耦合度。附图说明图1为传统程控指令执行流程图;图2为改进后的基于回调功能的程控指令执行流程图;图3为回调函数执行流程图;图4为添加待执行序列元的流程图。具体实施方式本专利技术将单机程控指令的序列元作为其回调函数,当上一个单机程控指令执行结束后到达延时等待时间时,则回调出下一个单机程控指令对应的下一个序列元继续执行。根据并网类单机的指令序列类型,共划分了6个指令类型,并归纳了6种指令序列元。当执行6类指令时,当前指令的主体函数执行结束后则启动后续指令序列元的回调机制,每个指令序列元的触发机制均为定时时间结束。如图1所示为传统程控指令执行流图,其运行方式不在此做详细介绍。传统程控指令执行流程占用了大量的主程序执行时间处理程控指令,对软件遥测数据的刷新率、软件响应总线指令的时间均造成了影响,降低了软件的执行效率。如图2所示为改进后的基于回调功能的程控指令执行流程图,主要由4个单元组成,包括回调标志初始化单元、装入回调函数单元、重载定时器单元、查找并执行回调函数单元。由于并网类单机的程控指令在执行过程中均有过长的延时等待需求,因此本专利技术回调函数的执行条件为到达延时时间则执行下一个序列元,因此结合图3、图4,对本专利技术的实现情况进行展开说明:回调状态初始化单元为在主循环开始前,初始化单机程控指令序列中的全部变量,主要包括清零序列元待执行标识、序列元序号变量清零、程控指令码变量清零、时间标签清零,其中,序列元序号为一个单机程控指令序列对应的序列元序列中当前序列元的执行次序。外部控制单元,获取总线中程控指令的指令码变量,根据程控指令码判断当前程控指令对应的程控指令序列,并程控指令序列中的序列元序号送至装入回调函数单元;当查找并执行回调函数单元执行完毕程控指令对应的序列元时,判断当前程控指令序列是否执行完成,若未完成,则控制装入回调函数单元装入下个序列元直到程控指令序列执行完毕;装入回调函数单元如图1,当接收到来自总线的序列元序号时,则依次将序列元装入待执行回调函数池中,如图4所示为添加待执行序列元的流程图,在装入序列元前应判断当前是否有正在执行的序列元,如果有正在等待执行的序列元,则丢弃当前序列元,不将其放置在待执行回调函数池中,如果没有正在等待执行的序列元,则根据序列元序号变量判断当前序列元的合法性,并记录序列元序号,记录时间标签本文档来自技高网...

【技术保护点】
1.基于回调功能的程控指令自主执行系统,其特征在于包括回调标志初始化单元、装入回调函数单元、重载定时器单元、查找并执行回调函数单元,其中:回调状态初始化单元,初始化单机程控指令序列中的全部变量;外部控制单元,获取总线中程控指令的指令码变量,根据程控指令码判断当前程控指令对应的程控指令序列,并将程控指令序列中的序列元序号送至装入回调函数单元;当查找并执行回调函数单元执行完毕当前序列元时,判断当前程控指令序列是否执行完成,若未完成,则控制装入回调函数单元装入下个序列元直到程控指令序列执行完毕;装入回调函数单元,当接收到来自总线的序列元序号时,则依次将序列元装入待执行回调函数池中,记录序列元序号,记录时间标签,并将序列元待执行标识置位;重载定时器单元,当进入定时器中断时,将时间标签做减法处理;查找并执行回调函数单元,实时查询当前是否有序列元待执行,当有序列元待执行且时间到达时,执行序列元,当有序列元待执行且未到达时间时,继续等待直至时间到达并执行序列元,当没有待执行序列元时,不进行操作,外部控制单元判断当前程控指令序列对应的所有序列元是否执行完成,若未完成,则控制装入回调函数单元装入下个序列元直到程控指令序列执行完毕。...

【技术特征摘要】
1.基于回调功能的程控指令自主执行系统,其特征在于包括回调标志初始化单元、装入回调函数单元、重载定时器单元、查找并执行回调函数单元,其中:回调状态初始化单元,初始化单机程控指令序列中的全部变量;外部控制单元,获取总线中程控指令的指令码变量,根据程控指令码判断当前程控指令对应的程控指令序列,并将程控指令序列中的序列元序号送至装入回调函数单元;当查找并执行回调函数单元执行完毕当前序列元时,判断当前程控指令序列是否执行完成,若未完成,则控制装入回调函数单元装入下个序列元直到程控指令序列执行完毕;装入回调函数单元,当接收到来自总线的序列元序号时,则依次将序列元装入待执行回调函数池中,记录序列元序号,记录时间标签,并将序列元待执行标识置位;重载定时器单元,当进入定时器中断时,将时间标签做减法处理;查找并执行回调函数单元,实时查询当前是否有序列元待执行,当有序列元待执行且时间到达时,执行序列元,当有序列元待执行且未到达时间时,继续等待直至时间到达并执行序列元,当没有待执行序列元时,不进行操作,外部控制单元判断当前程控指令序列对应的所有序列元是否执行完成,若未完成,则控制装入回调函数单元装入下个序列元直到程控指令序列执行完毕。2.根据权利要求1所述的基于回调功能的程控指令自主执行系统,其特征在于:所述的回调状态初始化单元初始化单机程控指令序列中的全部变量,包括清零序列元待执行标识、序列元序号变量清零、程控指令码变量清零、时间标签清零。3.根据权利要求1所述的基于回调功能的程控指令自主执行系统,其特征在于:所述的装入回调函数单...

【专利技术属性】
技术研发人员:孟晓宇刘桢
申请(专利权)人:北京卫星制造厂有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1