技术领域
[0001] 本发明涉及航天器技术领域,具体地,涉及基于中继高速上注的卫星任务规划软件在轨编程方法及系统。
相关背景技术
[0002] 随着航天技术的不断发展,卫星任务规划软件研制逐步朝着周期短、通用化、智能化的方向延伸,同时伴随着卫星载荷的多样性和卫星业务设计的复杂性。为了满足任务规划软件在轨迭代更新的需求,针对各种不确定性导致的变化,设计快速有效的任务规划软件在轨编程方法也越发迫切。
[0003] 软件在轨编程功能是实现卫星缺陷修复、功能变更和扩展,实现系统重构容错最重要的手段。目前星载计算机软件大多使用SRAM+EEPROM的存储架构,现有的在轨编程方法使用预置钩子函数实现部分模块替代的编程方案,实现起来复杂度较高,安全性较差。而星载任务规划软件的需求日趋复杂,软件的代码规模也逐渐增大,如果进行代码在轨编程的代码全文替换,所需补丁包的数量已有数千之多,通过测控通道进行软件在轨编程补丁包上注已经难以满足这一需求。
[0004] 为实现星载任务规划软件在轨编程的灵活性,基于中继高速上注的卫星任务规划软件在轨编程方法已经成为应对在轨卫星任务规划软件适应新需求、新策略的有效手段,补丁包通过中继高速上注的方式能够弥补传统测控通道弧段短、传输速率低的不足,从而实现实时大规模补丁包的快速上注。通过开发引导软件,减少了软件在轨编程的不确定性,成为任务规划软件自身维护过程中至关重要的一个环节。
[0005] 专利文献CN109614122A(申请号:201811494157.9)公开了一种星载多处理器软件在轨编程系统及其设计方法,其中提出的在轨编程方案仅支持测控通道上注软件,无法实现中继高速上注软件补丁包,全代码替换在轨编程所需时间较长,控制方案及逻辑较为复杂,与本发明所述内容完全不同。
具体实施方式
[0031] 下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
[0032] 实施例1
[0033] 针对现有技术中存在的不足,本发明提供了一种基于中继高速上注的卫星任务规划软件在轨编程方法及系统,中继高速上注能够弥补传统测控弧段补丁包上注时长不足的限制,通过增加MRAM存储空间,提高了星载任务规划软件功能正常运行的可靠性与安全性,能够更好地适应星载任务规划软件的迭代、在轨故障修复等需求,很大程度上提升了卫星在轨使用寿命。
[0034] 所述基于中继高速上注的卫星任务规划软件在轨编程方法,如图1至2所示,包括以下步骤:
[0035] 步骤1:中继高速上注数据接口设计;
[0036] 步骤2:任务规划单元接收上注补丁包存储至MRAM存储区;
[0037] 步骤3:校验MRAM存储区内数据并搬场至软件高端区;
[0038] 步骤4:启动任务规划软件新程序。
[0039] 具体地,在所述步骤1中,中继高速通道通过2Mbps速率串口电缆持续向任务规划单元输出AOS帧流,任务规划单元时基FPGA负责监测AOS帧同步头,并将完整数据帧保存在高速缓存中,缓存采用乒乓设计,存满128KB后向应用软件发送;时基FPGA根据VCDU中虚拟信道标识符,筛选任务规划单元所属上注数据帧,并根据BPDU导头提取有效数据包,采用乒乓缓存发送给任务规划单元BM3803处理器模块,发送时需保障数据包均完整。
[0040] 补丁帧的BPDU数据单元区包括一个补丁包,包长为18~978Byte,整个任务规划软件程序的bin文件内容连续拆分成若干个包,除了最后一个包,其它包将960字节填满,包序列计数必须与bin文件目标码拆分顺序完全一致。
[0041] 中继高速上注补丁包数据帧至任务规划单元前,任务规划单元需要对相关单机内寄存器进行设置,准禁任务规划单元中继上注在轨编程功能、任务规划单元中继上注在轨编程初始化。所述任务规划单元中继上注在轨编程初始化主要包括:上一次上注补丁包计数清零、校验结果清空,相关计数及校验结果遥测清零,清空MRAM存储区内的所有缓存信息。
[0042] 具体地,在所述步骤2中,任务规划单元配备了MRAM存储器件,大小为1MB,映射地址空间为0x1030_0000~0x103F_FFFF,可通过32位读写操作访问。目前任务规划软件目标码大小为99KB,按512KB的80%计算,程序最大可达410KB,MRAM空间满足存储要求,可以存放两份程序,且有一定空间余量存放校验或相关包格式。
[0043] 任务规划应用软件收到中继跟踪接收机数据中断后,一次性读取128KB数据并处理,软件接收数据前先清中断标志,以防漏掉后面来的中断标识。若高速上注补丁帧同步头、虚拟信道标识、BPDU导头长度以及CRC校验均正确,则将BPDU数据域中有效长度的数据拷贝至MRAM。若上述项目任一不正确,则清空MRAM已存补丁包,“已存补丁包数目”遥测在数据处理完毕后填写下传。高速上注补丁包通过序列计数索引至MRAM的具体位置,补丁包写入MRAM时同时存储两份,分别存到MRAM的A区和B区,每个区分配512KB存储空间。
[0044] 具体地,在所述步骤3中,在接收到从MRAM中加载新程序的指令后,由于程序需要在SRAM中完成替换,为避免新程序与SRAM中原有运行程序冲突,需要先将MRAM的程序加载至高端区。
[0045] 执行加载过程前先喂狗、然后提权处理,处理MRAM中新程序的补丁包时,对每个补丁包进行校验,校验正确后将补丁包中的新程序拷贝至高端区。
[0046] 默认加载MRAM存储的A区补丁程序,若补丁包不正确,则加载B区同一位置的补丁包,若正确则回写至A区,若仍然校验不正确,退出MRAM加载程序。
[0047] 具体地,在所述步骤4中,从MRAM加载到高端完成后,运行预先存储在SRAM高端缓存中的搬场程序片段,将高端的新程序拷贝至SRAM程序运行区,实现应用程序的全文替换。拷贝完成后,指针指向程序起始地址16#4000_0000#,新程序开始运行。
[0048] 如果新程序在运行过程中,软件发生复位或者断电重启,程序均从0地址开始运行加载监控软件,加载EEPROM中的程序到SRAM中运行。若需要运行MRAM中的新软件,需要再次上注加载新程序指令。
[0049] 无论原始程序还是新程序在运行中,通过中继高速通道进行二次或多次在轨编程,方法保持不变,同第一次。若新程序运行不正确,可通过任务规划单元热复位、断电重启的方式,回到原始程序运行,重新执行高速上注流程。
[0050] 在进行高速上注在轨编程的设计过程中,考虑了以下可靠性措施:
[0051] 1)MRAM带校验存储。在解析了高速上注的在轨编程补丁包之后,未直接将数据存储至MRAM,而是采取了带包格式和校验存储的形式,在使用补丁包的时候进行二次校验。
[0052] 2)MRAM双冗余存储。为保证程序正确性,同时提高方法可用性,将MRAM划分成2个程序区域,补丁包存储时一式两份,存储到MRAM。在使用补丁包时,默认使用A区补丁,如果A区不正确,采用B区相同位置的补丁,如果B区仍然不正确,则退出MRAM程序加载,保证SRAM程序不会被错误程序覆盖。
[0053] 3)帧包二级校验。从帧格式和包格式两个层级对补丁包进行校验,如果不正确退出流程,根据遥测重新上注。
[0054] 4)MRAM区快速轮询。MRAM区的大小为1MB,在应用程序中对MRAM区进行EDAC轮询监测,速率为128B*2*4/s,全部轮询一遍需要1024秒,也就是17~18分钟,在当前的轨道上,根据历史数据分析,几乎不可能出现多比特错误累积。
[0055] 5)保留原始程序加载。不修改原始程序签名和启动顺序,当程序或硬件运行错误发生复位或重启时,应用软件从原始程序重新开始运行。
[0056] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0057] 本发明还提供一种基于中继高速上注的卫星任务规划软件在轨编程系统,所述基于中继高速上注的卫星任务规划软件在轨编程系统可以通过执行所述基于中继高速上注的卫星任务规划软件在轨编程方法的流程步骤予以实现,即本领域技术人员可以将所述基于中继高速上注的卫星任务规划软件在轨编程方法理解为所述基于中继高速上注的卫星任务规划软件在轨编程系统的优选实施方式。
[0058] 本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0059] 以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。