一种实现遥测数据接收完整性的方法转让专利

申请号 : CN201010611669.6

文献号 : CN102075291B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 勾英杰刘波尚葳蕤谢琼张威泰林宇赵性颂王晶蔡彪张锦江

申请人 : 北京控制工程研究所

摘要 :

本发明公开了一种实现遥测数据接收完整性的方法,在遥测中断服务程序中设立遥测帧标志位TM_INT,这样可以使处理中断时间很短,在遥测中断服务程序中查询标志TM_INT并进行遥测数据打包,相邻两次打包的遥测数据存放在SRAM中设置的两个临时缓冲区中,然后根据遥测当前路计数TM_POINT,两个临时缓冲区临时存储的打包遥测数据向双端口RAM中填充,从而保证了数据的完整性,由于中断处理时间非常短,能够减少中断冲突问题和避免对部件异步通讯造成影响;同时,相对关中断保护方式而言,该方法避免了频繁开关中断的操作,从而降低了系统和软件时序的复杂性,解决了遥测数据的完整性问题。

权利要求 :

1.一种实现遥测数据接收完整性的方法,其特征在于步骤如下:

(1)在SRAM中设置两个遥测数据临时缓冲区,临时缓冲区TM1用于存放本次打包的遥测数据,临时缓冲区TM2用于存储上次打包的遥测数据;

(2)在遥测帧中断服务程序中置遥测帧标志TM_INT;

(3)查询遥测帧标志,如果有遥测帧标志TM_INT,执行步骤(4),否则执行步骤(5);

(4)将遥测数据打包放至临时缓冲区TM1中,当遥测周期与控制周期的差值小于50ms时,读取当前路计数n1,然后判断当前路计数n1是否小于遥测数据的长度n,如果当前路计数n1小于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~(n1-1)地址空间,临时缓冲区TM2的遥测数据填充在双端口RAM的n1~n-1地址空间,如果当前路计数n1大于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~n-1地址空间,然后用临时缓冲区TM1中的遥测数据更新临时缓冲区TM2中的遥测数据,清除遥测帧标志;

当遥测周期与控制周期的差值大于50ms时,则读当前路计数n1,然后判断当前路计数n1是否小于遥测数据的长度n,如果当前路计数n1小于遥测数据的长度n,则将临时缓冲区TM2的遥测数据填充在双端口RAM的n1~n-1地址空间,如果当前路计数n1大于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~n-1地址空间,然后用临时缓冲区TM1中的遥测数据更新临时缓冲区TM2中的遥测数据,清除遥测帧标志;

(5)将遥测数据打包放至临时缓冲区TM1中,读取当前路计数n2,将临时缓冲区TM1的遥测数据填充在双端口RAM的0~(n2-1)地址空间,清除遥测帧标志; (6)接收下一遥测帧数据,重复步骤(3)-(5)直至所有遥测数据接收完毕。

说明书 :

一种实现遥测数据接收完整性的方法

技术领域

[0001] 本发明涉及一种实现遥测数据接收完整性的方法,尤其涉及一种航天器控制周期与遥测周期不一致时实现遥测数据接收完整性的方法,属于航天控制领域。 背景技术
[0002] 遥测数据的完整性要求是航天器在轨飞行过程中进行数据判读和分析的基础,为航天器在轨飞行控制和运行维护提供了重要前提。目前在航天器控制系统任务中实现遥测功能的方法主要有两种:(1)采用查询方式进行遥测数据打包和发送。该方法实现简单,没有中断冲突等问题,但如果在控制周期快、遥测周期慢时,并不能将每个控制周期的数据全部都通过遥测传送到地面,可能会造成发送的同一帧数据不是在同一个控制周期内打包的数据,不能保证遥测数据的完整性,会给数据判读带来困难;(2)在中断里打包和发送遥测数据。该方法虽然可以保证数据的实时性和完整性,但由于中断时间过长,可能会对部件通讯造成影响;如果为避免对通讯造成影响可以在异步通讯过程和遥测数据打包时关闭遥测中断,但是这种方法需要频繁开关中断,且关闭中断的时间受由通讯过程决定,从而增加了软件时序分析的复杂性,可能对系统带来安全隐患。

发明内容

[0003] 本发明的技术解决问题是:克服现有技术的不足,提供一种实现遥测数据接收完整性的方法,解决了快周期变化数据的异步慢遥测中保证遥测数据完整性的问题。 [0004] 本发明的技术解决方案是:一种实现遥测数据接收完整性的方法,步骤如下: [0005] (1)在SRAM中设置两个遥测数据临时缓冲区,临时缓冲区TM1用于存放本次打包的遥测数据,临时缓冲区TM2用于存储上次打包的遥测数据;
[0006] (2)在遥测帧中断服务程序中置遥测帧标志TM_INT;
[0007] (3)查询遥测帧标志,如果有遥测帧标志TM_INT,执行步骤(4),否则执行步骤(5);
[0008] (4)将遥测数据打包放至临时缓冲区TM1中,当遥测周期与控制周期的差值小于50ms时,读取当前路计数n1,然后判断当前路计数n1是否小于遥测数据的长度n,如果当前路计数n1小于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的
0~(n1-1)地址空间,临时缓冲区TM2的遥测数据填充在双端口RAM的n1~n-1地址空间,如果当前路计数n1大于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~n-1地址空间,然后用临时缓冲区TM1中的遥测数据更新临时缓冲区TM2中的遥测数据,清除遥测帧标志;
[0009] 当遥测周期与控制周期的差值大于50ms时,则读当前路计数n1,然后判断当前路计数n1是否小于遥测数据的长度n,如果当前路计数n1小于遥测数据的长度n,则将临时缓冲区TM2的遥测数据填充在双端口RAM的n1~n-1地址空间,如果当前路计数n1大于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~n-1地址空间,然后用临时缓冲区TM1中的遥测数据更新临时缓冲区TM2中的遥测数据,清除遥测帧标志;
[0010] (5)将遥测数据打包放至临时缓冲区TM1中,读取当前路计数n2,将临时缓冲区TM1的遥测数据填充在双端口RAM的0~(n2-1)地址空间,清除遥测帧标志; [0011] (6)接收下一遥测帧数据,重复步骤(3)-(5)直至所有遥测数据接收完毕。 [0012] 本发明与现有技术相比的有益效果:本发明在遥测中断服务程序中设立遥测帧标志位TM_INT,这样可以使处理中断时间很短,在遥测中断服务程序中查询标志TM_INT并进行遥测数据打包,相邻两次打包的遥测数据存放在SRAM中设置的两个临时缓冲区中,然后根据遥测当前路计数TM_POINT,两个临时缓冲区临时存储的打包遥测数据向双端口RAM中填充,从而保证了数据的完整性,由于中断处理时间非常短,能够减少中断冲突问题和避免对部件异步通讯造成影响;同时,相对关中断保护方式而言,该方法避免了频繁开关中断的操作,从而降低了系统和软件时序的复杂性,解决了遥测数据的完整性问题。 附图说明
[0013] 图1是本发明的实现原理图;
[0014] 图2是本发明一种实施例的实现流程图。

具体实施方式

[0015] 为了在快周期变化数据的异步慢遥测中实现遥测数据的完整性,本发明采用FPGA提供遥测当前路计数的信息,利用双缓冲的处理逻辑实现遥测数据完整地传送。本发明的设计原理是:在遥测中断服务程序中设立遥测帧标志位TM_INT,这样可以使处理中断时间很短,在遥测中断服务程序中查询标志TM_INT并进行遥测数据打包,相邻两次打包的遥测数据存放在SRAM中设置的两个临时缓冲区中,然后根据遥测当前路计数TM_POINT,两个临时缓冲区临时存储的打包遥测数据向双端口RAM中填充,FPGA在监测到有效的遥测帧同步信号后,等待N个码元周期后,清零遥测数据发送FIFO,然后开始从双端口RAM中依次读取前1字节本轮遥测数据写入遥测数据发送FIFO,遥测数据发送FIFO深度为8个字节,在首次从双端口RAM读取1个字节数据写入遥测发送FIFO后,在每个有效的GNC遥测路同步信号到达后,FPGA都将从遥测发送FIFO中顺序读取1个字节数据写入移位寄存器输出给测控分系统,同时从双端口RAM依次读取后一字节遥测数据补充入遥测发送FIFO。本发明利用慢遥测帧周期与快控制周期之间的相位关系,采用一定的逻辑和策略,以实现数据的一致性和完整性。
[0016] 如图2所示,一种实现遥测数据完整性的方法,步骤如下:
[0017] (1)在SRAM中设置两个遥测数据临时缓冲区,临时缓冲区TM1用于存放本次打包的遥测数据,临时缓冲区TM2用于存储上次打包的遥测数据;
[0018] (2)在遥测帧中断服务程序中置遥测帧标志TM_INT;
[0019] (3)查询遥测帧标志,如果有遥测帧标志TM_INT,执行步骤(4),否则执行步骤(5);
[0020] (4)将遥测数据打包放至临时缓冲区TM1中,当遥测周期与控制周期的差值小于50ms时,读取当前路计数n1,然后判断当前路计数n1是否小于遥测数据的长度n,如果当前路计数n1小于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的
0~(n1-1)地址空间,临时缓冲区TM2的遥测数据填充在双端口RAM的n1~n-1地址空间,如果当前路计数n1大于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~n-1地址空间,然后用临时缓冲区TM1中的遥测数据更新临时缓冲区TM2中的遥测数据,清除遥测帧标志;
[0021] 当遥测周期与控制周期的差值大于50ms时,则读当前路计数n1,然后判断当前路计数n1是否小于遥测数据的长度n,如果当前路计数n1小于遥测数据的长度n,则将临时缓冲区TM2的遥测数据填充在双端口RAM的n1~n-1地址空间,如果当前路计数n1大于遥测数据的长度n,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~n-1地址空间,然后用临时缓冲区TM1中的遥测数据更新临时缓冲区TM2中的遥测数据,清除遥测帧标志;
[0022] (5)将遥测数据打包放至临时缓冲区TM1中,读取当前路计数n2,将临时缓冲区TM1的遥测数据填充在双端口RAM的0~(n2-1)地址空间,清除遥测帧标志; [0023] (6)接收下一遥测帧数据,重复步骤(3)-(5)直至所有遥测数据接收完毕。 [0024] 例如,控制周期为500ms和200ms两种,遥测周期为512ms,遥测数据长度为485,采用本发明的方法进行遥测数据存储。
[0025] 在SRAM中设置两个遥测数据临时缓冲区:临时缓冲区TM1用于存放最新打包的遥测数据,临时缓冲区TM2用于存储上次打包的遥测数据;
[0026] 在遥测帧中断服务程序中置遥测帧标志TM_INT;当遥测任务开始时,首先查询遥测帧标志,如果有遥测帧帧标志TM_INT:则将遥测数据打包,放至临时缓冲区TM1中,如果是500ms控制周期,则读当前路计数n1,然后判断当前路计数n1是否小于485,如果小于485,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~(n1-1)地址空间,临时缓冲区TM2的遥测数据填充在双端口RAM的n1~484地址空间,如果当前路计数n1大于485,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~484地址空间,然后用临时缓冲区TM1中的遥测数据更新临时缓冲区TM2中的遥测数据,清除遥测帧标志; [0027] 如果是200ms控制周期,则读当前路计数n1,然后判断当前路计数n1是否小于
485,如果小于485,则将临时缓冲区TM2的遥测数据填充在双端口RAM的n1~484地址空间,如果当前路计数n1大于485,则将临时缓冲区TM1的遥测数据填充在双端口RAM的0~
484地址空间,然后用临时缓冲区TM1中的遥测数据更新临时缓冲区TM2中的遥测数据,清除遥测帧标志;为下一遥测帧准备数据。
[0028] 如果无遥测帧标志,则读当前路计数n2,将临时缓冲区TM1的遥测数据填充在双端口RAM的0~(n2-1)地址空间,清除遥测帧标志,为下一遥测帧准备数据。 [0029] 本发明未详细描述内容为本领域技术人员公知技术。