首页 / 专利库 / 软件 / 软件 / 星载软件的在轨编程方法

星载软件的在轨编程方法

阅读:772发布:2021-06-11

专利汇可以提供星载软件的在轨编程方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种星载 软件 的在轨编程方法,其包括如下步骤:步骤一,上注程序 补丁 包数据;步骤二,接收后校验;步骤三,将补丁包存放到在轨编程区;步骤四,上注软件签名设置;步骤五,根据软件签名 修改 备份区数据;步骤六,加载监控软件进行喂狗、 硬件 初始化操作;步骤七,根据EDAC错误地址清空所属扇区等。本发明能够对星载软件任意部分的代码进行修改和升级不需要限定可编程的函数模 块 范围,具有极大的灵活性;支持在轨 固化 ,程序补丁包可以固化在EEPROM中,软件复位后可从EEPROM中重新加载补丁包数据不需要地面重新注数;通过程序补丁包直接修改星载 软件代码 不需要在SRAM中维护函数地址表等信息,提高了软件的可维护性。,下面是星载软件的在轨编程方法专利的具体信息内容。

1.一种星载软件的在轨编程方法,其特征在于,其包括如下步骤:
步骤一,地面上注程序补丁包数据;
步骤二,星载软件接收到程序补丁包后进行校验,通过校验后首先将软件签名设置为冷启动模式,进入步骤三;如果补丁包不正确则丢弃,不做处理;
步骤三,星载软件将接收到的程序补丁包存放到SRAM中的在轨编程区;
步骤四,地面上注软件签名对软件启动模式进行设置,如果仅在SRAM中进行编程,则设置为热启动;如果需要将程序补丁包在EEPROM中固化,则设置为温启动;如果采用EEPROM中的程序补丁包进行编程,则设置为冷启动;PROM启动是运行安全软件,不用于在轨编程;
步骤五,星载软件根据上注的软件签名修改SRAM中备份区的软件签名数据,然后进行处理器复位,重新运行加载监控软件;
步骤六,加载监控软件运行后进行喂狗、硬件初始化操作,然后等待串口输入,如果输入超时,则进入步骤七;如果串口有输入,则从串口加载软件,进入步骤十一;
步骤七,加载监控软件首先根据EDAC错误地址清空该地址所属扇区,用于步骤八中的错误恢复,然后通过三取二比对加载EEPROM中的星载软件到SRAM中星载软件代码区,如果任何两份代码相同则加载相同的代码,并标记另一份不同的代码用于步骤八中的错误恢复;如果三份代码均不一致时则加载指定的某份代码或者安全软件,加载安全软件时需将签名设置为PROM启动;
步骤八,对步骤七中三取二比对中标记的错误代码进行恢复;
步骤九,加载监控软件对签名进行判断,热启动时,直接进入步骤十;温启动时,将在轨编程区的程序补丁包写入到EEPROM中的补丁区,然后进入步骤十;PROM启动时,则进入步骤十一;冷启动时,将EEPROM中的补丁包数据拷贝到SRAM中的在轨编程区,进入步骤十;
步骤十,根据在轨编程区中的程序补丁包数据,修改SRAM中星载软件代码区的代码;
步骤十一,运行SRAM中的星载软件或安全软件。
2.如权利要求1所述的星载软件的在轨编程方法,其特征在于,所述EEPROM被分为四个区域分别用于存放星载软件和固化后的程序补丁包,为抗击EEPROM的单粒子翻转问题采用三模冗余的方法进行存储,即三份相同的代码存放在三个不同的物理区域中,以增强代码的可靠性,最后一个区域用于存放程序补丁包,称为补丁区。
3.如权利要求1所述的星载软件的在轨编程方法,其特征在于,所述PROM用于存放加载监控软件和安全软件,功能固定,不可被在轨编程。
4.如权利要求1所述的星载软件的在轨编程方法,其特征在于,所述加载监控软件从串口、EEPROM和PROM中加载软件到内存SRAM中运行,当星载计算机上电或者复位时首先运行加载监控软件,加载监控软件运行后根据串口输入来完成不同方式的软件加载,在串口有输入时,会从串口加载星载软件运行,用于软件地面调试阶段,在串口无输入时会从EEPROM中加载星载软件。
5.如权利要求1所述的星载软件的在轨编程方法,其特征在于,所述软件签名定义了软件启动模式用于执行不同的在轨编程操作,软件签名数据存放在SRAM中的备份区,地面可注数更改签名,由星载软件负责接收和存储,加载监控软件访问使用。
6.如权利要求1所述的星载软件的在轨编程方法,其特征在于,所述SRAM被划分为星载软件的代码区、数据区和堆栈区,加载监控软件的代码区、数据区和堆栈区,备份区和在轨编程区进行管理。
7.如权利要求6所述的星载软件的在轨编程方法,其特征在于,所述备份区和在轨编程区为星载软件和加载监控软件的共享内存区域,备份区用于存放软件签名数据以及EDAC错误地址信息,在轨编程区用来存放地面上注或从EEPROM中拷贝的程序补丁包。

说明书全文

星载软件的在轨编程方法

技术领域

[0001] 本发明涉及一种编程方法,特别是涉及一种星载软件的在轨编程方法。

背景技术

[0002] 星载软件作为嵌入式软件,运行于卫星平台或者载荷的单机中,协同星上其它软硬件完成各种信息处理及交互等重要功能,卫星在轨运行时,由于软件自身的缺陷、功能升级等原因需要实现软件代码的在轨更改或升级维护,这在实际应用中显得尤为重要,在轨编程大大提高了卫星的可用性、寿命及可靠性,具有重大的经济和社会效益。星载软件一般存储在计算机的PROM(可编程只读存储器)存储器或者EEPROM(电可擦除可编程只读存储器)存储器中,计算机加电后可根据实际需要将代码加载到计算机内存SRAM(静态随机存取存储器)中运行,PROM由于不能反复编程,无法实现对星载软件代码的直接修改,通常采用的在轨编程方法是通过函数地址表对需要进行更改的函数进行间接调用,在调用函数时,通过查询函数地址表中该函数的地址来完成调用,当该函数需要被修改时,由地面上注新的函数代码到SRAM中,并注数修改函数地址表中的函数地址,使之指向新函数的SRAM地址,完成函数的替换,这种方法虽然实现了在轨编程的功能,但存在以下几点不足:欠缺灵活性,在进行软件设计时需要确定可在轨编程的函数,如果不是通过函数地址表进行间接调用的函数不能被修改;在轨编程代码不能固化,当星载计算机重启或者故障等原因会直接导致在轨编程代码的丢失,需要地面重新注数,在实际应用中带来不便;软件维护困难,软件在使用过程中需要一直维护函数地址表和在轨编程的函数代码,软件多次修改或升级后,会导致维护的难度加大。
[0003] 随着星载软件应用的日益复杂和规模的不断扩大,当前EEPROM逐渐成为软件代码的主要存储介质,本发明针对PROM中星载软件在轨编程上存在的不足,并利用EEPROM可反复编程的特性,提出了一种灵活实用的星载软件在轨编程方法,目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。

发明内容

[0004] 本发明所要解决的技术问题是提供一种星载软件的在轨编程方法,其能够有效地对星载软件任意部分的代码进行修改和升级不需要限定可编程的函数模范围,具有极大的灵活性;支持在轨固化,程序补丁包可以固化在EEPROM中,软件复位后可以从EEPROM中重新加载补丁包数据不需要地面重新注数;通过程序补丁包直接修改星载软件代码不需要在SRAM中维护函数地址表等信息,提高了软件的可维护性。
[0005] 本发明是通过下述技术方案来解决上述技术问题的:一种星载软件的在轨编程方法,其包括如下步骤:
[0006] 步骤一,地面上注程序补丁包数据;
[0007] 步骤二,星载软件接收到程序补丁包后进行校验,通过校验后首先将软件签名设置为冷启动模式,进入步骤三;如果补丁包不正确则丢弃,不做处理;
[0008] 步骤三,星载软件将接收到的程序补丁包存放到SRAM中的在轨编程区;
[0009] 步骤四,地面上注软件签名对软件启动模式进行设置,如果仅在SRAM中进行编程,则设置为热启动;如果需要将程序补丁包在EEPROM中固化,则设置为温启动;如果采用EEPROM中的程序补丁包进行编程,则设置为冷启动;PROM启动是运行安全软件,不用于在轨编程;
[0010] 步骤五,星载软件根据上注的软件签名修改SRAM中备份区的软件签名数据,然后进行处理器复位,重新运行加载监控软件;
[0011] 步骤六,加载监控软件运行后进行喂狗、硬件初始化操作,然后等待串口输入,如果输入超时,则进入步骤七;如果串口有输入,则从串口加载软件,进入步骤十一;
[0012] 步骤七,加载监控软件首先根据EDAC错误地址清空该地址所属扇区,用于步骤八中的错误恢复,然后通过三取二比对加载EEPROM中的星载软件到SRAM中星载软件代码区,如果任何两份代码相同则加载相同的代码,并标记另一份不同的代码用于步骤八中的错误恢复;如果三份代码均不一致时则加载指定的某份代码或者安全软件,加载安全软件时需将签名设置为PROM启动;
[0013] 步骤八,对步骤七中三取二比对中标记的错误代码进行恢复;
[0014] 步骤九,加载监控软件对签名进行判断,热启动时,直接进入步骤十;温启动时,将在轨编程区的程序补丁包写入到EEPROM中的补丁区,然后进入步骤十;PROM启动时,则进入步骤十一;冷启动时,将EEPROM中的补丁包数据拷贝到SRAM中的在轨编程区,进入步骤十;
[0015] 步骤十,根据在轨编程区中的程序补丁包数据,修改SRAM中星载软件代码区的代码;
[0016] 步骤十一,运行SRAM中的星载软件或安全软件。
[0017] 优选地,所述EEPROM被分为四个区域分别用于存放星载软件和固化后的程序补丁包,为抗击EEPROM的单粒子翻转问题采用三模冗余的方法进行存储,即三份相同的代码存放在三个不同的物理区域中,以增强代码的可靠性,最后一个区域用于存放程序补丁包,称为补丁区。
[0018] 优选地,所述PROM用于存放加载监控软件和安全软件,功能固定,不可被在轨编程。
[0019] 优选地,所述加载监控软件可以从串口、EEPROM和PROM等存储器中加载软件到内存SRAM中运行,当星载计算机上电或者复位时首先运行加载监控软件,加载监控软件运行后根据串口输入来完成不同方式的软件加载,在串口有输入时,会从串口加载星载软件运行,用于软件地面调试阶段,在串口无输入时会从EEPROM中加载星载软件。
[0020] 优选地,所述软件签名定义了软件启动模式用于执行不同的在轨编程操作,软件签名数据存放在SRAM中的备份区,地面可注数更改签名,由星载软件负责接收和存储,加载监控软件访问使用。
[0021] 优选地,所述SRAM被划分为星载软件的代码区、数据区和堆栈区,加载监控软件的代码区、数据区和堆栈区,备份区和在轨编程区进行管理;备份区和在轨编程区作为星载软件和加载监控软件的共享内存区域;其中,备份区用来存放软件签名数据,以及EDAC错误地址信息;在轨编程区用来存放地面上注的或者从EEPROM中拷贝过来的程序补丁包。
[0022] 优选地,所述备份区和在轨编程区为星载软件和加载监控软件的共享内存区域,备份区用于存放软件签名数据以及EDAC错误地址信息,在轨编程区用来存放地面上注或从EEPROM中拷贝的程序补丁包。
[0023] 本发明的积极进步效果在于:本发明能够对星载软件任意部分的代码进行修改和升级不需要限定可编程的函数模块范围,具有极大的灵活性;支持在轨固化,程序补丁包可以固化在EEPROM中,软件复位后可以从EEPROM中重新加载补丁包数据不需要地面重新注数;通过程序补丁包直接修改星载软件代码不需要在SRAM中维护函数地址表等信息,提高了软件的可维护性。附图说明
[0024] 图1为本发明设计的流程示意图。
[0025] 图2为本发明实施例中的在轨编程流程图

具体实施方式

[0026] 下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
[0027] 如图1至图2所示,本发明星载软件的在轨编程方法包括步骤如下:
[0028] 步骤一,地面上注程序补丁包数据;
[0029] 步骤二,星载软件接收到程序补丁包后进行校验,通过校验后首先将软件签名设置为冷启动模式,进入步骤三;如果补丁包不正确则丢弃,不做处理;
[0030] 步骤三,星载软件将接收到的程序补丁包存放到SRAM(静态随机存取存储器)中的在轨编程区;
[0031] 步骤四,地面上注软件签名对软件启动模式进行设置,如果仅在SRAM中进行编程,则设置为热启动;如果需要将程序补丁包在EEPROM(电可擦除可编程只读存储器)中固化,则设置为温启动;如果采用EEPROM中的程序补丁包进行编程,则设置为冷启动;PROM(可编程只读存储器)启动是运行安全软件,不用于在轨编程;
[0032] 步骤五,星载软件根据上注的软件签名修改SRAM中备份区的软件签名数据,然后进行处理器复位,重新运行加载监控软件;
[0033] 步骤六,加载监控软件运行后进行喂狗、硬件初始化操作,然后等待串口输入,如果输入超时,则进入步骤七;如果串口有输入,则从串口加载软件,进入步骤十一;
[0034] 步骤七,加载监控软件首先根据EDAC(错误检测与纠正)错误地址清空该地址所属扇区,用于步骤八中的错误恢复,然后通过三取二比对加载EEPROM中的星载软件到SRAM中星载软件代码区,如果任何两份代码相同则加载相同的代码,并标记另一份不同的代码用于步骤八中的错误恢复;如果三份代码均不一致时则加载指定的某份代码或者安全软件,加载安全软件时需将签名设置为PROM启动;
[0035] 步骤八,对步骤七中三取二比对中标记的错误代码进行恢复;
[0036] 步骤九,加载监控软件对签名进行判断,热启动时,直接进入步骤十;温启动时,将在轨编程区的程序补丁包写入到EEPROM中的补丁区,然后进入步骤十;PROM启动时,则进入步骤十一;冷启动时,将EEPROM中的补丁包数据拷贝到SRAM中的在轨编程区,进入步骤十;
[0037] 步骤十,根据在轨编程区中的程序补丁包数据,修改SRAM中星载软件代码区的代码;
[0038] 步骤十一,运行SRAM中的星载软件或安全软件。
[0039] EEPROM被分为四个区域分别用于存放星载软件和固化后的程序补丁包,为抗击EEPROM的单粒子翻转问题采用三模冗余的方法进行存储,即三份相同的代码存放在三个不同的物理区域中,以增强代码的可靠性,最后一个区域用于存放程序补丁包,称为补丁区。
[0040] PROM用于存放加载监控软件和安全软件,功能固定,不可被在轨编程。
[0041] 加载监控软件可以从串口、EEPROM和PROM等存储器中加载软件到内存SRAM中运行,当星载计算机上电或者复位时首先运行加载监控软件,加载监控软件运行后根据串口输入来完成不同方式的软件加载,在串口有输入时,会从串口加载星载软件运行,用于软件地面调试阶段,在串口无输入时会从EEPROM中加载星载软件。
[0042] 软件签名定义了软件启动模式用于执行不同的在轨编程操作,软件签名数据存放在SRAM中的备份区,地面可注数更改签名,由星载软件负责接收和存储,加载监控软件访问使用。
[0043] 所述SRAM被划分为星载软件的代码区、数据区和堆栈区,加载监控软件的代码区、数据区和堆栈区,备份区和在轨编程区进行管理;备份区和在轨编程区作为星载软件和加载监控软件的共享内存区域;其中,备份区用来存放软件签名数据,以及EDAC错误地址信息;在轨编程区用来存放地面上注的或者从EEPROM中拷贝过来的程序补丁包。
[0044] 本实施例中程序补丁包格式如下表1所示:
[0045] 表1
[0046]
[0047] 星载软件运行时,接收地面上注的程序补丁包,并存放到在轨编程区中。假设上注的程序补丁包为:09 D7 DD 0E 80 59 9A 02 00 00 00 73 00 00 00 75 00 01 CE 85,则表示只有1个补丁包,该补丁包将在地址16#0280_599A#位置处修改2个字(字的长度为32bit)长度的代码,修改后的代码内容为“00 00 00 73 00 00 00 75”。
[0048] 本发明的工作原理包括:实施例的星载计算机均采用抗辐照设计的宇航级芯片,硬件环境具体包括:ATMEL(爱特梅尔)公司生产的TSC695F 32位SPARC(可扩充处理器架构)航天专用处理器,主频为16MHZ(兆赫);EEPROM采用3D-PLUS(帕拉驰)公司的3DEE5M40CS5175MSA00M,总容量为512K×40位,采用EDAC模式,40位包括32位数据和8位EDAC校验位本实施例共采用了4片EEPROM芯片,其中3片用于存储星载软件,另外1片存储程序补丁包;PROM采用UTMC(联合技术公司微电子中心)公司的UT28F256,容量为32K×8位;处理器访问采用8位的程序加载模式;实施例中PROM用来存储加载监控软件,无安全软件;内存SRAM采用UTMC公司的军级SRAM芯片UT9Q512E20YCC,容量为1M×40bit(比特),其中包括
1M×8bit EDAC校验空间。
[0049] 本实施例中星载软件和加载监控软件配合完成星载软件的在轨编程,计算机上电时,首先运行PROM中的加载监控软件并将自身加载到SRAM中的监控软件代码区(也可配置链接脚本在PROM中运行),然后从EEPROM中加载星载软件到SRAM中的星载软件代码区运行,存储区布局如下表2所示:
[0050] 表2
[0051]
[0052] 本实施例中签名信息由4个字组成,前3个字用于判断不同的软件启动模式,第4个字用于传递星载软件检测到的EEPROM存储区中的EDAC错误地址,启动模式定义如下:
[0053] 热启动:0x34124095、0x18602183、0x2C726116
[0054] 温启动:0x13701621、0x18602183、0x0B1037A2
[0055] PROM加载:0x34054518、0x18602183、0x2C65649B
[0056] 冷启动:其余设置。
[0057] 软件签名定义了四种不同的软件启动模式,不同的启动模式会影响加载监控软件对程序补丁包的使用和维护,软件签名具体可分为四种:热启动(HOT_START)、温启动(WARM_START)、PROM启动(PROM_START)和冷启动(COLD_START),默认为冷启动模式。加载监控软件根据其类型分别进行不同处理:(1)热启动:不做任何操作;(2)温启动:将程序补丁包写入到EEPROM存储器中的补丁区;(3)PROM启动(可选):将安全软件代码拷贝到SRAM中的星载软件代码区,不用于在轨编程;(4)冷启动:将EEPROM中补丁区中的程序补丁包拷贝到SRAM中的在轨编程区。
[0058] 星载软件和加载监控软件共同参与完成对星载软件的在轨修改和升级,卫星在轨时,星载软件负责接收和缓存地面上注的程序补丁包,当星载软件接收到程序补丁包并通过校验后,首先将软件签名设置为冷启动,然后将补丁包存放到首地址为16#0238_0000#的在轨编程区中,在轨编程区由星载软件负责维护和管理。接着地面注数修改软件签名,软件签名设置完毕后进行处理器复位,运行加载监控软件。
[0059] 加载监控软件进行喂狗、硬件初始化后会重新加载EEPROM中的星载软件到SRAM中的星载软件代码区,对于存在EDAC错误或者三取二错误的扇区进行恢复操作,然后根据软件签名来进行星载软件的在轨编程,例中假设软件签名为热启动模式,则加载监控软件从星载软件代码区地址为16#0280_599A#的位置开始,修改长度为2个字的代码,修改后的代码为00 00 00 73 00 00 00 75,在轨编程完成后,加载监控软件运行SRAM中修改后的星载软件代码,自身退出运行,当程序补丁包的运行效果符合预期且稳定之后,地面可以设置温启动模式将补丁包固化到EEPROM中。
[0060] 综上所述,本发明能够可以对星载软件任意部分的代码进行修改和升级不需要限定可编程的函数模块范围,具有极大的灵活性;支持在轨固化,程序补丁包可以固化在EEPROM中,软件复位后可以从EEPROM中重新加载补丁包数据不需要地面重新注数;通过程序补丁包直接修改星载软件代码不需要在SRAM中维护函数地址表等信息,提高了软件的可维护性。本发明提出的方法可以对星载软件任意部分的代码进行修改和升级,支持在轨固化,与现有技术相比,具有简单实用、灵活可靠的特点,有利于其在工程实践中实施应用。
[0061] 以上所述的具体实施例,对本发明的解决的技术问题、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈