首页> 中国专利> 一种星载延时指令全部保存与恢复的实现方法

一种星载延时指令全部保存与恢复的实现方法

摘要

一种星载延时指令全部保存与恢复的实现方法,在CTU和固态存储器之间通过1553B总线通信完成延时指令块的存储和恢复。存储时,CTU首先将数据从CTU SRAM拷贝到CTU的1553B总线芯片RAM中,CTU的1553B总线芯片将数据通过1553B总线传送到固态存储器的1553B总线芯片RAM中,最后固态存储器软件从固态存储器的1553B总线芯片RAM中读取数据。恢复时,固态存储器首先将数据从Flash拷贝到固态存储器的1553B总线芯片RAM中,CTU的1553B总线芯片从固态存储器的1553B总线芯片RAM索取数据到CTU的1553B总线芯片RAM中,CTU将数据从CTU的1553B总线芯片RAM拷贝的CTU SRAM中。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-23

    授权

    授权

  • 2013-10-09

    实质审查的生效 IPC(主分类):G06F11/00 申请日:20130425

    实质审查的生效

  • 2013-09-04

    公开

    公开

说明书

技术领域

本发明属于卫星在轨运行可靠性设计领域,涉及一种遥控指令的处理方法。

背景技术

数管分系统的中央处理单元(CTU)是卫星整星数据交互的中心枢纽,整 星遥测数据的下传和遥控指令的输出都要经过CTU的处理。地面通过遥控注入 的一系列延时指令块(指令块是一系列连续执行的指令的集合,这些连续执行 的指令中最靠前执行的指令的执行时间为整个指令块的执行时间,该执行时间 作为时标与指令块绑定在一起,这里的延时是指在未来的某个时间才执行), CTU存储在其SRAM中,等待延时指令块的执行时间到达后发送,这些延时指 令块一般用来控制星上设备操作以完成特定的在轨任务。

由于空间环境复杂多样,如果CTU在轨发生复位或切机,那么就会丢失保 存在其SRAM中的延时指令块,从而导致在轨任务的失败。

目前,卫星的延时指令一般存储在1553B总线芯片RAM中,由于1553B 总线芯片RAM空间有限,一般可用于存储延时指令的空间不超过2K字节,所 以能够存储的延时指令数量非常少。

发明内容

本发明的技术解决问题是:克服现有技术的不足,提供了一种星载延时指 令的处理方法,将CTU SRAM中的全部延时指令块存储到非易失性固态存储器 中,当CTU在轨发生复位或切机时,可以从固态存储器中恢复得到之前存储的 所有延时指令,确保延时指令不丢失,保证在轨任务的完整性。

本发明的技术解决方案是:一种星载延时指令全部保存与恢复的实现方法, 包括延时指令保存方法和延时指令恢复方法,其中延时指令的保存方法步骤如 下:

(11)为CTU和固态存储器分别配置一个用于接收和发送延时指令块的 1553B总线子地址,并且在1553B总线芯片RAM中定义一个256字节的缓存 区,采用循环缓存的方式接收1553B总线消息;同时设置记录指针用于指示 Flash中的当前存储地址,设置“本次延时指令块数据开始地址”和“本次延时 指令块数据开始地址”两个参数分别用于记录Flash中当前次及前一次存储数 据的首地址,设置“本次延时指令块数据结束标志”和“上次延时指令块数据 结束标志”分别用于表示当前次及前一次存储数据过程是否完成;

(12)CTU将SRAM中所有延时指令块的索引记录到索引数组中,计算得 到延时指令块的字节数;

(13)CTU向固态存储器发送“开始记录延时指令”,通知固态存储器准备 接收延时指令;固态存储器收到“开始记录延时指令”后,将当前存在的“本 次延时指令块数据开始地址”、“本次延时指令块数据结束标志”分别改为“上 次延时指令块数据开始地址”和“上次延时指令块数据结束标志”,同时记录此 时Flash中记录指针的地址作为“本次延时指令块数据开始地址”保存,将“本 次延时指令块数据结束标志”置为无效;

(14)CTU按照索引数组中的索引,将延时指令块依次拷贝到CTU的 1553B总线芯片RAM中,每200ms发送256字节,其中第一个256字节发送 延时指令存储标识和存储的延时指令字节数,然后CTU的1553B总线芯片将 延时指令块传送到固态存储器的1553B总线芯片RAM中,固态存储器再从固 态存储器的1553B总线芯片RAM将延时指令块存储到固态存储器的Flash中; 如果在当前存储过程中,地面注入新的延时指令块,则等待下次存储时再将新 注入的延时指令块存储到固态存储器;如果在当前存储过程中,某个延时指令 块到时执行了,则在下次存储时不再存储该指令块;

(15)CTU向固态存储器发送完当前SRAM中的所有延时指令块后,下一 个200ms发送“结束记录延时指令”,表示本轮延时指令块存储工作结束;固 态存储器收到“结束记录延时指令”后将“本次延时指令数据结束标志”置为 有效,表明此次延时指令存储成功;

延时指令的恢复方法步骤如下:

(21)CTU在发生复位或切机后,通过1553B总线向固态存储器发送“开 始恢复延时指令”,通知固态存储器准备发送延时指令;固态存储器收到“开始 恢复延时指令”后,判断“本次延时指令块数据开始地址”、“本次延时指令块 数据结束标志”是否均有效,如果均有效,则从“本次延时指令块数据开始地 址”开始准备读出指令块数据放到固态存储器的1553B总线芯片RAM中;如 果“本次延时指令块数据开始地址”、“本次延时指令块数据结束标志”有一个 无效,则再判断“上次延时指令块数据开始地址”、“上次延时指令块数据结束 标志”是否均有效,如果均有效,则从“上次延时指令块数据开始地址”开始 准备读出指令块数据放到固态存储器的1553B总线芯片RAM中,如果“上次 延时指令块数据开始地址”、“上次延时指令块数据结束标志”有一个无效,则 给固态存储器的1553B总线芯片RAM填充0;

(22)1s后,CTU通过1553B总线从固态存储器索取延时指令存储标识 和存储的延时指令字节数,如果延时指令存储标识错误或者存储的延时指令字 节数为0,则停止延时指令恢复,此次延时指令恢复失败;如果延时指令存储标 识正确且存储的延时指令字节数不为0,则根据存储的延时指令块字节数以256 字节为单位计算出需要从固态存储器索取延时指令块的次数,并且固态存储器 从Flash中的读取第一个256字节放到固态存储器的1553B总线芯片RAM中, 等待CTU的1553B总线芯片读走;

(23)CTU控制CTU的1553B总线芯片从固态存储器的总线芯片RAM 中索取延时指令块,每200ms索取256字节,CTU的1553B总线芯片首先将 延时指令块存储到其RAM中,然后CTU再将延时指令块从CTU的1553B总 线芯片RAM拷贝到CTU的SRAM中存储,每读取一个256字节,固态存储 器然后更新Flash的读出地址,将下一个256字节搬移到固态存储器的1553B 总线芯片RAM中;

(24)CTU对每次索取到的256字节延时指令块进行校验,包括执行时间 是否超时和数据校验和是否正确,如果校验和错误或者时间超时则表明这些延 时指令有误,将直接抛弃;

(25)CTU从固态存储器恢复完所有延时指令后,向固态存储器发送“停 止”指令,表明此次延时指令恢复工作结束。

本发明与现有技术相比的优点在于:

a.本发明方法将延时指令存储在固态存储器的Flash中,存储空间可以达 到2M字节,存储空间远远大于1553B总线芯片RAM空间,因此可以存储的 延时指令数量也远远大于1553B总线芯片RAM可以存储的延时指令数。

b.由于本发明的方法存储延时指令的存储介质为Flash,为非易失性存储介 质,因此即便固态存储器发生掉电故障,延时指令也不会丢失,增强了延时指 令存储与恢复的可靠性。

c.固态存储器通过1553B总线与CTU进行通信,而1553B总线通信技术 为成熟技术,操作便捷、可靠性高,因此该方法的实现便捷可靠。

附图说明

图1为本发明延时指令块存储区示意图;

图2为本发明完整的一轮延时指令存储时序图;

图3为本发明完整的一轮延时指令恢复时序图;

图4为本发明固态存储器Flash存储空间示意图;

图5为本发明CTU端延时指令存储流程;

图6为本发明CTU端延时指令恢复流程;

图7为本发明固态存储器端延时指令存储流程;

图8为本发明固态存储器端延时指令恢复流程。

具体实施方式

本发明的主要思想是,地面注入的延时指令块存储在CTU的SRAM中,然 后CTU通过1553B总线将这些延时指令块存储到固态存储器的Flash中,在 CTU发生复位或切机后,CTU再通过1553B总线从固态存储器恢复这些延时 指令块。

CTU通过1553B总线与固态存储器的通信周期为200ms,每次256字节。 由于1553B总线通信每条消息最大为64字节,那么每次256字节需要分成4 条消息发送。

固态存储器配置一个1553B总线子地址接收和发送延时指令块,在1553B 总线芯片RAM中定义一个256字节的缓存区,采用循环缓存的方式接收1553B 总线消息。CTU通过4条1553B总线消息给固态存储器连续发送256字节数 据,CTU首先将延时指令块从SRAM拷贝到CTU的1553B总线芯片RAM中, 然后CTU的1553B总线芯片将数据通过1553B总线传送到固态存储器的 1553B总线芯片RAM,随后,固态存储器将256字节数据从固态存储器的1553B 总线芯片RAM存储到固态存储器的Flash中,如图1所示。CTU每次发送完 256字节数据后给固态存储器的1553B总线芯片发送循环缓存指针复位同步 字,固态存储器收到循环缓存指针复位同步字后将固态存储器的1553B总线芯 片RAM缓存区的存储指针复位,即将存储指针指向1553B总线芯片缓存区的 首地址,准备接收下一个256字节数据。

CTU端延时指令的存储过程描述如下:

CTU首先向固态存储器发送“开始记录延时指令”,通知固态存储器准备接 收延时指令。200ms后向固态存储器发送延时指令存储标识(4字节)和存储 的延时指令字节数(2字节),其余250字节发送0。之后CTU开始发送有效的 延时指令块,每200ms发送256字节(4条1553B总线消息)。CTU每次发送 完256字节后,紧跟着发送循环缓存指针复位同步字。

CTU向固态存储器发送完当前CTU SRAM中的所有延时指令块,下一个 200ms发送“结束记录延时指令”,表示本轮延时指令块存储工作结束。如图2 所示。

如果当前CTU SRAM中没有延时指令块则不需要存储,但CTU依然需要 向固态存储器发送三条总线消息:“开始记录延时指令”、延时指令存储标识和 字节数(字节数为0,表明此次没有延时指令存储)和“结束记录延时指令”。 固态存储器在接收到此次存储的字节为0后明确此次实际不需要存储。

延时指令存储过程中,CTU首先将延时指令存储区中当前所有延时指令块 的索引记录到一个专门的数组(命名为延时指令存储索引数组)中,接下来按 照记录的索引将延时指令块依次拷贝到CTU的1553B总线芯片RAM中,然后 CTU的1553B总线芯片将延时指令块传送到固态存储器的1553B总线芯片 RAM中,固态存储器再从固态存储器的1553B总线芯片RAM将延时指令块存 储到固态存储器的Flash中。如果在当前存储过程中,地面注入新的延时指令 块,则等待下次存储时再将新注入的延时指令块存储到固态存储器。如果在当 前存储过程中,某个延时指令块到时执行了,则在下次存储时不再存储该指令 块。

CTU将SRAM中当前存储的所有延时指令块全部发送给固态存储器后,重 新开始下一次的存储工作,也就是说CTU会持续不断的将SRAM中的全部延 时指令块存储到固态存储器中。

固态存储器端延时指令的存储过程描述如下:

固态存储器收到“开始记录延时指令”后,记录此时记录指针的地址,作 为“本次延时指令块数据开始地址”参数保存,将“本次延时指令块数据结束 标志”置为无效;同时将原来的“本次延时指令块数据开始地址”、“本次延时 指令块数据结束标志”分别改为“上次延时指令块数据开始地址”和“上次延 时指令块数据结束标志”,如图4所示。

200ms后固态存储器收到“延时指令存储标识和字节数”,则将其存储到 Flash中。固态存储器紧跟着收到固态存储器的1553B总线芯片循环缓存指针 复位同步字,则将固态存储器的1553B总线芯片RAM的指针复位到循环缓存 空间的首地址,以备接收下个256字节数据。

200ms后固态存储器收到延时指令块(256字节),则将其从固态存储器的 1553B总线芯片RAM拷贝到Flash中存储,在收到循环缓存指针复位同步字后 将固态存储器的1553B总线芯片RAM的指针复位到循环缓存空间的首地址, 以备接收下个256字节数据。

固态存储器收到“结束记录延时指令”后将“本次延时指令数据结束标志” 置为有效,表明此次延时指令存储成功。

CTU端延时指令的恢复过程描述如下:

CTU在发生复位或切机后从固态存储器恢复延时指令块。CTU首先通过 1553B总线向固态存储器发送“开始恢复延时指令”,通知其准备发送延时指令。 1s后,CTU通过1553B总线从固态存储器索取延时指令存储标识(4字节)和 存储的延时指令字节数(2字节)。

如果延时指令存储标识错误或者存储的延时指令字节数为0,则停止延时指 令恢复,也即此次延时指令恢复失败,200ms后即转为延时指令存储。如果延 时指令存储标识正确且存储的延时指令字节数不为0,则根据存储的延时指令块 字节数计算出需要从固态存储器索取延时指令块的次数(每次256字节,对应 4条1553B总线消息,周期为200ms)。

之后便开始索取延时指令块,每200ms索取256字节(4条1553B总线消 息)。CTU控制CTU的1553B总线芯片从固态存储器的总线芯片RAM中索取 延时指令块,CTU的1553B总线芯片首先将延时指令块存储到其RAM中,然 后CTU再将延时指令块从CTU的1553B总线芯片RAM拷贝到CTU SRAM中 存储。CTU每索取完256字节,紧跟着向固态存储器发送循环缓存指针复位同 步字。

CTU对每次索取到的256字节延时指令块进行校验,包括执行时间是否超 时和数据校验和是否正确。如果校验和错误或者时间超时则表明这些延时指令 有误,将直接抛弃。

CTU从固态存储器恢复完所有延时指令后,向固态存储器发送“停止”指 令,表明此次延时指令恢复工作结束,如图3所示。

固态存储器端延时指令的恢复过程描述如下:

固态存储器收到“开始恢复延时指令”后,将自身状态置为“回放延时指 令状态”,然后判断“本次延时指令块数据开始地址”、“本次延时指令块数据结 束标志”是否均有效,如果有效,则从“本次延时指令块数据开始地址”开始 准备读出256字节指令块数据放到固态存储器的1553B总线芯片RAM中,如 果“本次延时指令块数据开始地址”、“本次延时指令块数据结束标志”有一个 无效,则判断“上次延时指令块数据开始地址”、“上次延时指令块数据结束标 志”是否均有效,如果有效,则从“上次延时指令块数据开始地址”开始准备 读出256字节数据放到固态存储器的1553B总线芯片RAM中,如果“上次延 时指令块数据开始地址”、“上次延时指令块数据结束标志”有一个无效,则给 固态存储器的1553B总线芯片RAM填充0。

1s后固态存储器从Flash中的“数据开始地址”读取256字节放到固态存 储器的1553B总线芯片RAM中,等待CTU的1553B总线芯片读走,然后更 新Flash的读出地址,将下一个256字节搬移到固态存储器的1553B总线芯片 RAM中。

以后每200ms固态存储器从Flash中读取256字节放到固态存储器的 1553B总线芯片RAM中,等待CTU读走,直到CTU从固态存储器恢复完所 有延时指令块。

固态存储器收到“停止”指令后表明此次延时指令恢复工作结束。

下面给出更具体的操作流程:

本发明的延时指令存储过程CTU端的实现流程如图5所示,具体步骤描述 如下:

(1)判断本轮存储的延时指令块数是否为0。如果为0则转(2),如果不 为0则转(3)。

(2)将CTU SRAM中延时指令存储区的索引记录到延时指令存储索引数 组,统计需要存储的延时指令块数。如果当前没有延时指令,这里统计到的延 时指令块数为0,在给固态存储器发送完延时指令存储标识和存储的字节数后会 重新开始新一轮的延时指令存储,参见(9)。如果当前有延时指令,这里统计 到的延时指令块数不为0,则会正常存储延时指令,转(3)。

(3)判断存储状态是否是初态。如果是则转(4),如果不是则转(6)。

(4)CTU给固态存储器发送“开始记录延时指令”,转(5)。

(5)CTU将存储状态改为“开始记录延时指令”已发,表明在下个200ms 到来后CTU给固态存储器发送延时指令存储标识和存储的字节数,转(1)。

(6)判断存储状态是否是“开始记录延时指令”已发。如果是则转(7), 如果不是则转(12)。

(7)CTU给固态存储器发送延时指令存储标识(4字节)和存储的字节数 (2字节)。由于每次固定给固态存储器发送256字节(4条1553B总线消息), 其余250字节填充0,转(8)。

(8)CTU给固态存储器发送固态存储器的1553B总线芯片RAM循环缓 存指针复位同步字,转(9)。

(9)判断本轮存储的延时指令块数是否为0。如果为0则转(10),如果 不为0则转(11)。

(10)CTU将存储状态改为延时指令已发送完,转(1)。

(11)CTU将存储状态改为延时指令存储标识已发,转(1)。

(12)判断存储状态是否是延时指令存储标识已发。如果是则转(13),如 果不是则转(18)。

(13)CTU给固态存储器发送延时指令块,共256字节(4条1553B总线 消息),转(14)。

(14)CTU给固态存储器发送固态存储器的1553B总线芯片RAM循环缓 存指针复位同步字,转(15)。

(15)判断本轮延时指令是否已经发送完。如果已发完则转(16),如果尚 未发完则转(1)。

(16)CTU将本轮存储的延时指令块数清0,转(17)。

(17)CTU将存储状态改为延时指令已发送完,转(1)。

(18)CTU给固态存储器发送“结束记录延时指令”。执行到此表明本轮所 有延时指令已经全部存储到固态存储器,在此给固态存储器发送“结束记录延 时指令”结束本轮的存储工作,转(19)。

(19)CTU将存储状态改为初态,开始新一轮的延时指令存储工作,转(1)。

本发明的延时指令恢复过程CTU端的实现流程如图6所示,具体步骤描述 如下:

(1)判断恢复状态是否是初态。如果是则转(2),如果不是则转(4)。

(2)CTU给固态存储器发送“开始恢复延时指令”,转(3)。

(3)CTU将恢复状态改为“开始恢复延时指令”已发,1s后需要从固态 存储器索取延时指令存储标识和存储的字节数。转(1)。

(4)判断恢复状态是否是“开始恢复延时指令”已发。如果是则转(5), 如果不是则转(12)。

(5)判断1s延时是否到时。如果到时则转(6),如果未到时则转(1)。

(6)CTU从固态存储器索取延时指令存储标识和存储的字节数,共256 字节(4条1553B总线消息),转(7)。

(7)CTU给固态存储器发送固态存储器的1553B总线芯片RAM循环缓 存指针复位同步字,转(8)。

(8)判断延时指令存储标识和存储的字节数。如果延时指令存储标识正确 且存储的字节数不为0则转(9),否则转(10)。

(9)CTU将恢复状态改为延时指令标识已获取,转(1)。

(10)由于获取到的延时指令标识或者存储的字节数有误,那么恢复工作失 败,给固态存储器发送“停止”指令,转(11)。

(11)CTU将恢复状态改为延时指令已索取完,转(1)。

(12)判断恢复状态是否是延时指令标识已获取。如果是则转(13),如果 不是则转(20)。

(13)CTU从固态存储器索取延时指令块,转(14)。

(14)CTU给固态存储器发送固态存储器的1553B总线芯片RAM循环缓 存指针复位同步字,转(15)。

(15)判断恢复回来的延时指令校验和执行时间。如果延时指令校验和正确 且未超时则转(16),否则转(17)。

(16)CTU将恢复回来的延时指令存储到CTU SRAM中,转(17)。

(17)判断延时指令是否已经恢复完。如果已恢复完则转(18),如果尚未 恢复完则转(1)。

(18)CTU给固态存储器发送“停止”指令。程序执行到此表明所有延时指 令已经全部获得,也即延时指令恢复成功,转(19)。

(19)CTU将恢复状态改为延时指令已索取完,转(1)。

(20)判断3s延时是否到时。如果到时则转(21),如果未到时则转(1)。

(21)CTU将恢复状态改为初态,至此,延时指令恢复工作结束。

固态存储器端的延时指令存储过程实现流程如图7所示,具体步骤描述如 下:

(1)固态存储器收到CTU发来的“开始记录延时指令”,转(2)。

(2)固态存储器处理数据开始地址和数据结束标志,准备接收“延时指令 存储标识和字节数”,转(3)。

(3)固态存储器收到CTU发来的“延时指令存储标识和字节数”,转(4)。

(4)固态存储器将“延时指令存储标识和字节数”存储到Flash中,转(5)。

(5)固态存储器收到固态存储器的1553B总线芯片RAM循环缓存指针复 位同步字,转(6)。

(6)固态存储器将固态存储器的1553B总线芯片缓存区指针指向缓存区 的首地址,转(7)。

(7)固态存储器收到CTU发来的延时指令块,转(8)。

(8)固态存储器将延时指令块存储到Flash中,转(9)。

(9)固态存储器收到固态存储器的1553B总线芯片RAM循环缓存指针复 位同步字,转(10)。

(10)固态存储器将固态存储器的1553B总线芯片缓存区指针指向缓存区 的首地址,转(11)。

(11)固态存储器连续接收CTU发来的延时指令块,直到收完所有的延时 指令块,转(12)。

(12)固态存储器收到CTU发来的“结束记录延时指令”,转(13)。

(13)固态存储器将“本次延时数据结束标志”置为有效,表明本次延时指 令存储结束。

固态存储器端的延时指令恢复过程实现流程如图8所示,具体步骤描述如 下:

(1)固态存储器收到CTU发来的“开始恢复延时指令”,转(2)。

(2)固态存储器查找有效的数据开始地址和数据结束标志。如果找到则转 (3),如果没找到则转(12)。

(3)固态存储器按照找到的数据开始地址,从Flash中将“延时指令存储 标识和字节数”拷贝到固态存储器的1553B总线芯片RAM中,转(4)。

(4)等待CTU的1553B总线芯片读走数据,转(5)。

(5)固态存储器收到CTU发来的固态存储器的1553B总线芯片RAM循 环缓存指针复位同步字,转(6)。

(6)固态存储器将固态存储器的1553B总线芯片缓存区指针指向缓存区 的首地址,转(7)。

(7)固态存储器从Flash中将延时指令块拷贝到固态存储器的1553B总线 芯片RAM中,转(4)。

(8)等待CTU的1553B总线芯片读走数据,转(9)。

(9)固态存储器收到CTU发来的固态存储器的1553B总线芯片RAM循 环缓存指针复位同步字,转(10)。

(10)固态存储器将固态存储器的1553B总线芯片缓存区指针指向缓存区 的首地址,转(11)。

(11)固态存储器连续将所有延时指令块发送给CTU,转(13)。

(12)固态存储器给固态存储器的1553B总线芯片RAM的相应地址填充0, 转(13)。

(13)固态存储器收到CTU发来的“停止”指令,表明此次延时指令恢复 结束。

本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号