发明名称 一种星载延时指令全部保存与恢复的实现方法
摘要 一种星载延时指令全部保存与恢复的实现方法,在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中。
申请公布号 CN103279397A 申请公布日期 2013.09.04
申请号 CN201310148218.7 申请日期 2013.04.25
申请人 北京空间飞行器总体设计部 发明人 张红军;付连芳;穆强;郭坚;李珂;郭廷源;郑晓霞;范大亮;叶志玲;沈小虎
分类号 G06F11/00(2006.01)I 主分类号 G06F11/00(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种星载延时指令全部保存与恢复的实现方法,其特征在于:包括延时指令保存方法和延时指令恢复方法,其中延时指令的保存方法步骤如下:(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从固态存储器恢复完所有延时指令后,向固态存储器发送“停止”指令,表明此次延时指令恢复工作结束。
地址 100094 北京市海淀区友谊路104号