一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种深空探测系统星载程序在轨维护、验证系统及方法与流程

2022-02-20 13:34:33 来源:中国专利 TAG:


1.本发明涉及一种深空探测系统星载程序在轨维护、验证系统及方法。


背景技术:

2.天问一号火星进入舱gnc分系统在地火转移和环火阶段,控制计算机间断加电,完成各单机自检和分系统性能测试。利用在轨期间的数据对产品以及分系统的性能进行评估,在此阶段会涉及到程序存储器的在轨维护。程序存储器在轨维护是指在航天器运行过程中,通过对程序存储区内部数据的读和写操作,实现对存储器内部数据错误的检测、存储器数据的修改,以支持在轨航天器的长期可靠性运行和任务功能的变化。通过更新程序,实现软件升级、扩展、改变系统功能等。
3.控制计算机软件分为引导区软件、系统软件和应用软件。其中引导区软件固化在单机的可编程只读存储器(prom)中,系统软件和应用软件联合编译后固化在单机的电可擦可编程只读存储器(eeprom)中。计算机加电后,由引导区软件将eeprom中的软件搬运至静态随机存储器(sram)中运行。
4.传统的星载程序在轨修改方法主要包含两种:只读存储器型(sram)在轨修改和可编程存储器型(eeprom)在轨程序修改。两种方法均基于星上程序中预埋的“钩子”函数实现。sram区程序修改,操作流程简单,安全性高。在操作失误时,发送控制计算机断电或者复位指令即可从eeprom加载原程序,保证系统的正常运行。缺点是该方法不支持在轨固化功能,星载程序状态依赖于控制计算机的在轨状态,软件的可维护性差。另一种方法是eerpom程序修改,程序固化在eeprom中,软件复位后从eeprom中重新加载“钩子”函数不需要地面重新注数。缺点是操作复杂,安全性低,一旦操作过程出现异常,可能造成星载程序执行错误,甚至导致整个系统工作异常。
5.通过传统的“钩子”函数实现星载程序在轨维护存在很多问题,传统“钩子”函数个数一般为8~16个,只能修改一定数量的函数模块,不适用于大规模程序修改。另外预先设定的“钩子”函数往往依赖于先前的经验,可扩展性不全面,灵活性差,难以适应不断增长的差异化需求。
6.在轨维护除了指令注入,地面预处理和验证是提高可靠性和高效性的关键。传统的预处理需要人工对编译后的程序按照固定字节进行拆分,然后按照注入协议对拆分后的指令封装,工作量大,可靠性差,效率低,不适用于大规模的程序修改以及在轨应急处理情况。另外,地面验证不够充分,在有限的时间内无法保证验证的充分性,单纯依靠人工或者半人工方式对多种指令的格式和内容进行验证,可靠性低,消耗时间长,操作流程复杂,不便于设计人员和测试人员操作实施。
7.考虑到我国首次火星探测任务,对空间环境等预先认知存在一定局限。同时,在轨时间长,存在对星上程序进行修改,升级,甚至整体替换的需求。传统的在轨维护方法不能满足火星探测器系统的需求。因此如何实现星载程序在轨维护、验证成为火星探测系统具备的一项必要功能。


技术实现要素:

8.本发明解决的技术问题是:针对现有技术的不足,提供了一种深空探测系统星载程序在轨维护、验证系统及方法,能够有效增强航天器可靠性、拓展航天器实用性和提高航天器寿命,为航天器软件后续功能和性能持续改进提供了良好的平台环境,为提升航天器在轨维护智能化程度提供了有力支持。
9.本发明的技术方案是:
10.一种深空探测系统星载程序在轨维护、验证系统,包括:地面数字孪生系统、在轨维护模块、地面序列快速比对验证模块;
11.地面数字孪生系统:将完成封装的程序数据包上注给地面控制计算机,地面控制计算机对封装的程序数据包中的指令进行验证;获得验证结果正确的程序数据包传输给在轨维护模块;
12.在轨维护模块:接收地面数字孪生系统传输的程序数据包和地面序列快速比对验证模块传输的程序数据包,将程序数据包上注给星上控制计算机,对星载软件进行更新升级;获得星上控制计算机下卸的程序数据包并传输给地面序列快速比对验证模块;
13.地面序列快速比对验证模块:获得下卸的程序数据包,按照封装模块的数据特征进行匹配、比对处理,获得比对结果;若比对结果错误,则将错误比对结果对应的程序数据包传输给在轨维护模块;若比对结果正确,则完成星载程序在轨维护、验证工作。
14.一种利用上述一种深空探测系统星载程序在轨维护、验证系统进行星载程序在轨维护、验证的方法,包括如下步骤:
15.1)将完成封装的程序数据包上注给地面控制计算机;
16.2)地面控制计算机对封装的程序数据包中的指令进行验证,获得验证结果正确的程序数据包传输给在轨维护模块;
17.3)在轨维护模块接收地面数字孪生系统传输的程序数据包,将程序数据包上注给星上控制计算机,对星载软件进行更新升级;
18.4)在轨维护模块获得星上控制计算机下卸的程序数据包并传输给地面序列快速比对验证模块;
19.5)地面序列快速比对验证模块获得星上控制计算机下卸的程序数据包,按照封装模块的数据特征进行匹配、比对处理,获得比对结果;若比对结果错误,则将错误比对结果对应的程序数据包传输给在轨维护模块,进入步骤6);若比对结果正确,则完成星载程序在轨维护、验证工作。
20.6)在轨维护模块将程序数据包上注给星上控制计算机,对星载软件进行更新升级;在轨维护模块获得星上控制计算机下卸的程序数据包并传输给地面序列快速比对验证模块;并返回步骤5)。
21.本发明与现有技术相比的优点在于:
22.1)在轨维护是一个组合优化问题,传统方法依赖于预埋的“钩子”函数,由于“钩子”函数数量有限,因此传统方法无法对星载软件任意部分的代码的进行修改和升级,在轨维护性差。本专利根据在轨修改的需求,提供了字节级,函数级和全文级三种在轨维护类型,满足了航天器在轨修改的所有需求。其中函数级在轨维护在深空探测任务中使用的比较多,利用跳转函数完成星载程序的在轨修改,解决了传统方法无法对星载软件任意部分
的代码的进行修改和升级的难题。
23.2)在轨维护需要地面终端的支持,传统的验证方法校验不充分,指令上注错误可能会造成整个系统异常。本专利利用自动切割封装软件,地面数字孪生系统,序列比对算法系统等地面终端对在轨注入指令自动生成以及在轨注入结果进行了自动化验证,极大提高了在轨维护的智能性、可靠性和灵活性。解决了传统方法效率低,可靠性低的问题。
附图说明
24.图1为在轨程序维护系统流程图。
25.图2为在轨维护、验证系统流程图。
26.图3为封装格式。
具体实施方式
27.本发明一种深空探测系统星载程序在轨维护、验证系统,包括:地面数字孪生系统、在轨维护模块、地面序列快速比对验证模块。
28.地面数字孪生系统:将完成封装的程序数据包上注给地面控制计算机,地面控制计算机对封装的程序数据包中的指令进行验证;获得验证结果正确的程序数据包传输给在轨维护模块;
29.在轨维护模块:接收地面数字孪生系统传输的程序数据包和地面序列快速比对验证模块传输的程序数据包,将程序数据包上注给星上控制计算机,对星载软件进行更新升级;获得星上控制计算机下卸的程序数据包并传输给地面序列快速比对验证模块;
30.所述将星载软件更新升级的方法,具体包括:字节级修改、函数级修改和全文级修改。
31.字节级修改具体为:
32.对于星载程序中的参数或者立即数需要升级的情况,采用程序数据包上注到星上控制计算机的sram区,直接修改sram区中的星载软件,从而完成星载软件的更新升级;
33.函数级修改具体为:
34.对于星载程序中的自定义功能函数需要升级的情况,采用程序数据包上注到星上计算机的程序注入默认区中,通过“启动”函数,完成eeprom区程序与程序注入默认区软件之间的跳转,从而完成星载软件的更新升级;
35.全文级修改具体为:
36.对于在轨发生的偶然性事故导致航天器无法正常运行的情况,为了延长航天器使用寿命,或者对于在轨期间需要扩展或者改换任务目标的情况,将程序数据包上注到星上计算机的eeprom区,直接替换升级原版本的星载程序,从而完成星载软件的更新升级。
37.地面序列快速比对验证模块:获得下卸的程序数据包,按照封装模块的数据特征进行匹配、比对处理,获得比对结果;若比对结果错误,则将错误比对结果对应的程序数据包传输给在轨维护模块;若比对结果正确,则完成星载程序在轨维护、验证工作。
38.所述按照封装模块的数据特征进行匹配、比对处理,采用序列快速比对算法。
39.所述序列快速比对算法,具体为:
40.1)过滤处理
41.在天问一号火星探测器在轨期间使用多个地面测站接收星上下卸的程序数据包,出现程序数据包重复的情况,删除重复的下卸的程序数据包,获得过滤处理后的程序数据包;
42.2)搜索处理
43.在天问一号火星探测器在轨期间多个分系统同时工作时,若地面测站获得的下卸程序数据包中包含进入舱gnc分系统以及其他分系统的下卸程序包,以程序数据包为参考序列,列出封装模块的数据特征,搜索所有的下卸的程序数据包,从下卸程序包搜索出与数据特征匹配的序列,从而找到每个下卸程序数据包在参考序列中的位置;
44.3)延伸处理
45.找到下卸数据包在参考序列的位置后,将下卸程序数据包中除与数据特征匹配的序列以外的非数据特征序列部分进行逐字节比对。
46.一种利用上述一种深空探测系统星载程序在轨维护、验证系统进行星载程序在轨维护、验证的方法,包括如下步骤:
47.1)将完成封装的程序数据包上注给地面控制计算机;
48.2)地面控制计算机对封装的程序数据包中的指令进行验证,获得验证结果正确的程序数据包传输给在轨维护模块;
49.3)在轨维护模块接收地面数字孪生系统传输的程序数据包,将程序数据包上注给星上控制计算机,对星载软件进行更新升级;
50.4)在轨维护模块获得星上控制计算机下卸的程序数据包并传输给地面序列快速比对验证模块;
51.5)地面序列快速比对验证模块获得星上控制计算机下卸的程序数据包,按照封装模块的数据特征进行匹配、比对处理,获得比对结果;若比对结果错误,则将错误比对结果对应的程序数据包传输给在轨维护模块,进入步骤6);若比对结果正确,则完成星载程序在轨维护、验证工作。
52.6)在轨维护模块将程序数据包上注给星上控制计算机,对星载软件进行更新升级;在轨维护模块获得星上控制计算机下卸的程序数据包并传输给地面序列快速比对验证模块;并返回步骤5)。
53.本发明一种深空探测系统星载程序在轨维护、验证方法,根据星载软件更新的方式,提供了字节级,函数级和全文级三种在轨维护类型。该系统包括:地面终端,按照指令协议将编译后的待执行程序自动分割成若干程序升级包,并利用函数config自动完成封装。封装后的程序升级包通过网口发送给地面数字孪生系统,该系统分为两个模块,obdh simulater模块和gnc分系统并行验证模块。obdh simulater模块,模拟数管分系统向gnc分系统并行验证模块发送上行数据或指令。在上注指令前,会对该指令进行封装校验,包括指令格式,内容长度以及校验和等。gnc分系统并行验证模块,按照飞行程序完成与在轨星上控制计算机1:1仿真验证。序列比对算法系统,按照设定的序列,自动将星上软件匹配,匹配成功后,然后进行全局比对;控制计算机,接收到在轨维护指令以及软件回读指令后,将星上程序发送给地面终端进行校验复核。
54.本发明公布了一种深空探测系统星载程序在轨维护、验证方法,系统组成及流程图如图1和图2所示。
55.(一)systools data splitter and function config
56.在确定需要对星载软件进行在轨维护后,编译生成待执行文件。由于上注指令长度有限,因此待执行程序需要拆分成多包的形式进行传输。传统的人工拆包方式,需要按照协议要求的字节长度将待执行文件拆分成若干包,若字节长度不满足要求需要进行手动填充。数据内容拆分完成后,需要人工完成封装工作。按照注入要求增加符合注入要求的帧头,帧长,包标识以及校验和等。工作量大,操作复杂。传统人工方法效率低,可靠性差,无法满足在轨维护的高效高质量要求。本发明提供了一个systools data splitter软件,通过读取本地待更新文件,根据设定的字节长度自动拆分,并利用函数config按照通讯协议格式要求自动封装,最后保存为程序升级数据包。其中封装格式如图3所示。
57.(二)地面数字孪生系统
58.以火星探测任务为背景,航天器系统对所有在轨注入指令的准确度和可靠性都有极高的要求,任何一条指令错误造成的后果是不可估量的。本发明提供了一种地面数字孪生系统,该系统分为两个模块,obdh simulater模块和gnc分系统并行验证模块。obdh simulater模块,模拟数管分系统向gnc分系统并行验证模块发送上行数据或指令。在上注指令前,会对该指令进行封装校验,包括指令类型,包头,内容长度以及校验和等。若校验正确则执行上行数据或指令操作,指令计数增加。反之,出现错误警告,并给出错误原因。这时需要对该上注指令进行分析,重新生成符合注入要求指令。gnc分系统并行验证模块,按照飞行程序完成与在轨星上控制计算机1:1仿真验证。再次验证上注内容的正确性。同时利用obdh simulater模块向gnc分系统并行验证模块发送eeprom程序回读指令,对星上在轨维护结果进行确认,若出现不一致,同样需要重新对上注内容进行数据分析和再生成,待所有指令块均一致后,则将其发送到data sender。
59.(三)data sender
60.将验证后的指令块发送到data sender,然后向在轨控制计算机发送控制命令或数据指令,以火星进入舱gnc分系统在轨操作为例,控制计算机有3个单机热备份组成,分别标识有a,b,c三机,单机的优先级依次降低,共用一个通讯接口,每机eeprom采用主备份冗余存储。根据星载软件更新的方式,提供了字节级,函数级和全文级三种在轨维护类型。
61.1)字节级修改
62.当前在轨修改使用比较多的一种在轨维护方式,特别适合程序中参数修改以及立即数修改。它的基本原理是将升级后的星载软件编译后与在轨软件比对,找到两者的差异,修改sram区程序。操作流程可概括为以下几个步骤:
63.步骤1:将升级后的软件编译生成可执行程序,与在轨星载程序比对,找到代码差异的地方,利用目标位置的数据内容和地址形成程序升级数据包;
64.步骤2:将程序升级数据包发送到星上控制计算机,修改sram区程序;
65.步骤3:对星上程序进行下卸确认。
66.2)函数级修改
67.利用跳转函数完成在轨软件的升级更新。将新生成的待执行文件上注到控制计算机的程序注入默认区中,然后通过“启动”函数指令,完成星载软件与程序注入默认区软件的跳转,固化在eeprom中,通过引导区软件将eeprom中软件搬运至sram中运行,以实现星上程序的在轨修改。另外软件在轨过程中为了提高可靠性,设计控制指令实现程序切换,通过
上注取消修改指令,恢复原有星载软件。该部分的操作流程如下:
68.步骤1:地面发送直接加电指令指定计算机中一机加电,指定该机当班,其余两机处于断电状态,执行步骤2;
69.步骤2:地面发送在轨修改指令,注入程序升级数据包i到sram中,然后将sram修改内容烧写到备份eeprom,通过星上遥测判断是否执行完成,若完成,i=i 1,执行步骤3;
70.步骤3:判断i《=n(n为程序升级数据包总个数),若满足,则执行步骤2,否则执行步骤4;
71.步骤4:地面发送断电指令给当班机,然后当班机加电,执行步骤5。
72.步骤5:地面发送备份eeprom回读指令i,i=1,2,...,n,判断回读指令内容是否正确,若正确,i=i 1,判断(m1初始为空),若满足,则执行步骤7,若(i≤n)满足,执行步骤5,否则,执行步骤6;
73.步骤6:将比对不一致的指令块i代号保存到m1,判断i≥n,若满足,则执行步骤2,否则执行步骤5;
74.步骤7:地面发送程序升级包i到sram中,将sram中修改部分的内容烧写到主份eeprom,查看星上遥测判断是否操作完成,若完成,i=i 1,执行步骤8;
75.步骤8:判断i《=n,若满足,则执行步骤7,否则执行步骤9;
76.步骤9:地面发送断电指令给当班机,然后再加电,执行步骤10。
77.步骤10:地面发送主份eeprom回读指令i,i=1,2,...,n,查看回读指令内容是否正确,若一致,i=i 1,判断(m2初始为空),若满足,则执行步骤12,若(i≤n)满足,执行步骤10,否则,执行步骤11;
78.步骤11:将比对不一致的指令块i代号保存到m2,判断i≥n,若满足,则执行步骤7,否则执行步骤10;
79.步骤12:计算机当班机断电,判断该当班机是否为a机,若是,则结束,否则,执行步骤1。
80.整个控制计算机在轨修改按照先备份再主份,先c机再b机最后a机的顺序依次操作,该方法保证了在轨操作的安全性。
81.3)全文级修改
82.在轨发生偶然性事故导致航天器无法正常运行,为了延长航天器使用寿命,或者在轨期间需要扩展或者改换任务目标,利用全文修改可以使任务延续。将升级后的星载软件编译,不需要上注到控制计算机的程序注入默认区,直接修改sram中程序,并将sram中程序烧写到eeprom中,完成在轨程序固化。操作流程与函数级修改一致。
83.(四)序列比对算法系统
84.在轨维护需要充分的地面验证。指令注入完成后,将固化后的在轨星上程序与待执行文件源码进行逐字节比对。该任务对执行的正确性和效率提出了更高要求。为了解决人工比对过程中效率低,可靠性低的问题,本小节提供了一种序列比对算法,以火星进入舱gnc分系统为例,星上回读文件存放在地面数据库,在回读同时可能出现其他分系统相同的指令操作。另外,在此期间使用多测站接收星上遥测,会造成数据重复,以上问题会造成数据库数据量大,种类多,查找繁琐。传统的人工方法,效率极低,易出现多包,丢包情况。该系
统提取数据库数据保存成本地文件,并自动删除重复项,按照设定的序列,自动匹配,然后进行全局比对。
85.本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
86.本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献