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

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

Info

Publication number
CN103279397B
CN103279397B CN201310148218.7A CN201310148218A CN103279397B CN 103279397 B CN103279397 B CN 103279397B CN 201310148218 A CN201310148218 A CN 201310148218A CN 103279397 B CN103279397 B CN 103279397B
Authority
CN
China
Prior art keywords
time delay
delay command
solid
state memory
ctu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310148218.7A
Other languages
English (en)
Other versions
CN103279397A (zh
Inventor
张红军
付连芳
穆强
郭坚
李珂
郭廷源
郑晓霞
范大亮
叶志玲
沈小虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Spacecraft System Engineering
Original Assignee
Beijing Institute of Spacecraft System Engineering
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Spacecraft System Engineering filed Critical Beijing Institute of Spacecraft System Engineering
Priority to CN201310148218.7A priority Critical patent/CN103279397B/zh
Publication of CN103279397A publication Critical patent/CN103279397A/zh
Application granted granted Critical
Publication of CN103279397B publication Critical patent/CN103279397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种星载延时指令全部保存与恢复的实现方法,在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中。

Description

一种星载延时指令全部保存与恢复的实现方法
技术领域
本发明属于卫星在轨运行可靠性设计领域,涉及一种遥控指令的处理方法。
背景技术
数管分系统的中央处理单元(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发来的“停止”指令,表明此次延时指令恢复结束。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

Claims (1)

1.一种星载延时指令全部保存与恢复的实现方法,其特征在于:包括延时指令保存方法和延时指令恢复方法,其中延时指令的保存方法步骤如下:
(11)为CTU和固态存储器分别配置一个用于接收和发送延时指令块的1553B总线子地址,并且在1553B总线芯片RAM中定义一个256字节的缓存区,采用循环缓存的方式接收1553B总线消息;同时设置记录指针用于指示Flash中的当前存储地址,设置“本次延时指令块数据开始地址”和“上次延时指令块数据开始地址”两个参数分别用于记录Flash中当前次及前一次存储数据的首地址,设置“本次延时指令块数据结束标志”和“上次延时指令块数据结束标志”分别用于表示当前次及前一次存储数据过程是否完成;所述的CTU为卫星数管分系统的中央处理单元;
(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从固态存储器恢复完所有延时指令后,向固态存储器发送“停止”指令,表明此次延时指令恢复工作结束。
CN201310148218.7A 2013-04-25 2013-04-25 一种星载延时指令全部保存与恢复的实现方法 Active CN103279397B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310148218.7A CN103279397B (zh) 2013-04-25 2013-04-25 一种星载延时指令全部保存与恢复的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310148218.7A CN103279397B (zh) 2013-04-25 2013-04-25 一种星载延时指令全部保存与恢复的实现方法

Publications (2)

Publication Number Publication Date
CN103279397A CN103279397A (zh) 2013-09-04
CN103279397B true CN103279397B (zh) 2015-09-23

Family

ID=49061927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310148218.7A Active CN103279397B (zh) 2013-04-25 2013-04-25 一种星载延时指令全部保存与恢复的实现方法

Country Status (1)

Country Link
CN (1) CN103279397B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885421B (zh) * 2014-03-26 2017-04-05 上海航天电子通讯设备研究所 一种标准总线控制器
CN104182218B (zh) * 2014-08-05 2015-05-27 北京控制工程研究所 一种星上计算机延时指令存储及执行方法
CN106027308B (zh) * 2016-06-06 2019-03-29 西北工业大学 一种星载1553b总线通信优化方法
CN107707331A (zh) * 2017-09-13 2018-02-16 深圳市鑫宇鹏电子科技有限公司 WiFi芯片与安全芯片信息交互方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5223788A (en) * 1991-09-12 1993-06-29 Grumman Aerospace Corporation Functional avionic core tester
CN102141971A (zh) * 2011-01-13 2011-08-03 哈尔滨工业大学 具有大容量存储功能的1553b硬件定时通讯模块
CN102447515A (zh) * 2011-09-26 2012-05-09 中国空间技术研究院 一种测试星地时延和星上时间误差的系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5223788A (en) * 1991-09-12 1993-06-29 Grumman Aerospace Corporation Functional avionic core tester
CN102141971A (zh) * 2011-01-13 2011-08-03 哈尔滨工业大学 具有大容量存储功能的1553b硬件定时通讯模块
CN102447515A (zh) * 2011-09-26 2012-05-09 中国空间技术研究院 一种测试星地时延和星上时间误差的系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Research of Application Simulation in Satellite Data Management System Based on SpaceWire;Wang Rui.etc;《International Spacewire Conference 2010》;20100624;全文 *
基于单片机的1553B总线数据交换设备设计;郭廷源等;《计算机测量与控制》;20130125;第21卷(第1期);全文 *

Also Published As

Publication number Publication date
CN103279397A (zh) 2013-09-04

Similar Documents

Publication Publication Date Title
CN103279397B (zh) 一种星载延时指令全部保存与恢复的实现方法
WO2017041567A1 (zh) 基于软核处理器的fpga多镜像升级加载方法及装置
CN101907888B (zh) 小卫星星务系统双机冷备无扰切换方法
WO2017107900A1 (zh) 一种虚拟机恢复的方法及虚拟机管理设备
CN105099540A (zh) 一种卫星处理类载荷在轨功能重构方法
CN103246536B (zh) 物联定位系统的固件无线升级方法
CN104749593B (zh) 一种卫星延迟遥测数据的存储、下传方法
CN104951341A (zh) 一种采集器的远程升级方法
CN103685487A (zh) 无线通信网络中的子节点升级方法
CN101325090B (zh) 通过使循环冗余码线路相对于数据线路偏移改善等待时间
CN105577262A (zh) 一种基于星间链路收发设备的星载fpga重构系统及重构方法
CN103677869A (zh) 无线传感器网络节点远程代码更新系统及方法
CN106886438A (zh) 基于fpga的系统远程更新方法
CN105278998A (zh) 一种单片机固件升级方法
CN102521059A (zh) 一种星载数据管理系统自主容错方法
KR20170013319A (ko) 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템
CN103713925A (zh) 避免存储阵列在升级过程的业务中断方法和装置
CN104035884A (zh) 一种双环形队列数据存储方法和智能网关
JP2006065856A5 (zh)
CN112162784B (zh) 基于龙芯的中高轨卫星数据处理系统
CN103716718A (zh) 数据包的传输方法及装置
CN102902646B (zh) 板卡通信方法及板卡、fpga的加载方法和系统
CN110868458B (zh) 一种用于稳定控制系统的通信方法及装置
CN111737038A (zh) 一种基于小卫星双机系统切机的控制方法
CN113703803A (zh) 基于fpga的远程升级系统、方法及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant