CN103777983B - 一种星载软件在轨维护及升级方法 - Google Patents

一种星载软件在轨维护及升级方法 Download PDF

Info

Publication number
CN103777983B
CN103777983B CN201410036627.2A CN201410036627A CN103777983B CN 103777983 B CN103777983 B CN 103777983B CN 201410036627 A CN201410036627 A CN 201410036627A CN 103777983 B CN103777983 B CN 103777983B
Authority
CN
China
Prior art keywords
software
district
module
upgrading
board
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
CN201410036627.2A
Other languages
English (en)
Other versions
CN103777983A (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.)
Aerospace Dongfanghong Satellite Co Ltd
Original Assignee
Aerospace Dongfanghong Satellite Co Ltd
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 Aerospace Dongfanghong Satellite Co Ltd filed Critical Aerospace Dongfanghong Satellite Co Ltd
Priority to CN201410036627.2A priority Critical patent/CN103777983B/zh
Publication of CN103777983A publication Critical patent/CN103777983A/zh
Application granted granted Critical
Publication of CN103777983B publication Critical patent/CN103777983B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

一种星载软件在轨维护及升级方法,通过将星载软件划分为基础程序和应用程序,基础程序存储在PROM中,应用程序存储在EEPROM或FLASH等可读写的非挥发性存储介质中。应用程序的存储逻辑上包括原软件存储区、升级软件存储区、模块软件上注区,三区均包含区校验信息,初始状态下原软件存储区与升级软件存储区的存储内容均为星载软件的原始应用程序,模块软件上注区为空。通过地面指令控制和数据上注,可以支持星载软件的整体软件升级、软件模块替换或参数修改、增加软件模块三种需求,提高星载软件在轨维护及升级的效率。

Description

一种星载软件在轨维护及升级方法
技术领域
本发明涉及一种卫星软件的在轨处理方法。
背景技术
卫星的高可靠性及长寿命对星载软件的在轨维护和升级提出了高要求。星载软件在轨维护及升级的主要原因包括:1)原有软件设计缺陷的更正;2)当硬件设计存在缺陷或发生故障时,实现软件在轨重构或改变使用策略;3)适应应用需求的变化;4)在轨进行软件开发。目前在轨软件维护及升级的实现方式是通过星地遥控,对星载原有软件进行修改。
根据在轨维护升级原因以及在轨维护的便利程度,星载软件的在轨维护一般有以下三种需求:1)整体软件升级,完全替换原有方案;2)替换某些模块或修改参数;3)增加某些模块。目前大部分星载软件均通过预留钩子函数,通过增加某些模块来实施在轨维护,现有文献中并未发现能够同时满足以上三种需求的软件在轨维护方法。
另外,目前星载软件多使用PROM或EEPROM作为软件的存储介质,使用PROM存储软件,由于PROM上的软件不可更改,软件整体升级和替换某些模块不易实施,且应用程序一般规模较大,全部存储在PROM中,成本较高。使用EEPROM作为软件的的存储介质,由于EEPROM为非挥发性存储介质在空间应用上没有解决单粒子翻转的问题,安全性不如PROM高。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种能够同时支持整体软件升级、软件模块替换或参数修改、增加软件模块三种需求的星载软件在轨维护及升级方法。
本发明的技术解决方案是:一种星载软件在轨维护及升级方法,包括如下步骤:
(1)将星载软件划分为基础程序和应用程序,其中基础程序存储在PROM中,应用程序存储在可读写的非挥发性存储介质中;所述的星载软件包括星务中心计算机软件及除星务中心计算机软件以外的其他星载软件,星务中心计算机软件与地面通过星地通信链路通信,星务中心计算机软件与其他星载软件通过总线进行通信,其中星务中心计算机软件基础程序的最小功能集包括遥控遥测功能、非挥发性存储介质读写功能,校验功能、程序加载功能;其他星载软件基础程序最小功能集包括总线通信功能、非挥发性存储介质读写功能、校验功能、程序加载功能;所述非挥发性存储介质在逻辑上包括原软件区、升级软件区、模块软件上注区,三区均包含区校验信息,初始状态下原软件区与升级软件区的存储内容均为星载软件的原始应用程序,而模块软件上注区为空;将三个存储区分别划分为块,每一块设置块校验信息;
(2)硬件加电或复位后,首先运行基础程序,基础程序运行后等待固定时间,判断是否接收到地面发送的运行上注模式指令;如果在等待时间内收到运行上注模式指令,则转步骤(3)进行软件上注,否则转步骤(4);
(3)接收地面发送的上注程序块,并对上注程序块进行校验;若上注程序块校验正确,则依据上注程序块中所标识的存储位置将上注程序块存入相应的升级软件区或者模块软件上注区;若上注程序块校验错误,则重新发送上注数据块,直至所有上注程序块发送完毕;
(4)根据地面发送的加载应用程序标志判断加载原软件区还是升级软件区,若为加载升级软件区,转步骤(5),若为加载原软件区,转步骤(6);
(5)对升级软件区进行区校验,若区校验正确则进行升级软件区加载,转步骤(7),若区校验错误则进一步进行块校验,并向地面下传块校验错误信息进行错误定位,转步骤(6);
(6)对原软件区进行区校验,若区校验正确则进行原软件区加载,转步骤(7),若区校验错误则返回步骤(2);
(7)判断模块软件上注区是否有新程序块写入,若有新程序块写入则转步骤(8),否则转步骤(9);
(8)对模块软件上注区的新程序块进行校验,若校验正确则进行模块软件上注区的加载,若校验错误则向地面下传校验错误信息进行错误定位;
(9)跳转至SRAM区运行应用程序,本次星载软件启动或更新完成。
本发明与现有技术相比的优点在于:
(1)本发明方法能够同时支持星载软件在轨维护及升级的三种需求,即整体软件升级、软件模块替换或参数修改、增加软件模块,可以大大提高星载软件在轨维护及升级的效率和通用性;
(2)本发明方法将星载软件分为基础程序和应用程序,基础程序存储在PROM中,应用程序存储在EEPROM中,减少了PROM使用量,节约了成本。由于具有维护功能,并不会降低应用程序的存储安全性;
(3)本发明方法将EEPEOM分为原软件区、升级软件区、模块软件上注区三个存储区,提高了软件升级时的可靠性,同时也提高了进行软件恢复的便利性;
(4)本发明方法将三个存储区划分为块,提高了软件升级时的可靠性和易用性以及出现校验错误时错误的快速定位;
(5)本发明方法中基础程序功能固定,设备出厂时即可固化PROM中的基础程序,简化了星上设备返厂固化软件的流程,缩短了研制进度,可以节省产品研制经费;并且由于多个型号或多个设备的PROM中的基础程序功能一致,可以采用通用标准软件产品的设计方法,易做成多型号通用的标准化软件产品,进一步减小软件产品研制的工作量。
附图说明
图1为本发明方法的原理框图;
图2为本发明方法的流程图。
具体实施方式
本发明方法的原理框图如图1所示。图1中,星务中心计算机以及其他单机挂接在总线上,通过总线进行通信。相应的,星载软件也包括星务中心计算机软件和其他星载软件。
将星载软件分为基础程序和应用程序,基础程序存储在PROM等高可靠性存储介质中,而应用程序存储在EEPROM或FLASH等可读写的非挥发性存储介质中。
基础程序具有运行应用程序和运行上注两种模式,默认为运行应用程序模式。星务中心计算机软件基础程序最小功能集包括:基本遥控遥测功能、EEPROM读写功能、校验功能、将应用程序从EEPROM加载到SRAM等功能;下位机软件基础程序最小功能集包括:总线通信功能、EEPROM读写功能、校验功能、将应用程序从EEPROM加载到SRAM等功能。两者的主要不同之处在于星务中心计算机软件基础程序具备基本的遥测遥控功能,而下位机软件基础程序具备总线通信功能。
如图1所示,EEPEOM分为三区,包括原软件区、升级软件区、模块软件上注区。三区均包含区校验信息,默认原软件区与升级软件区一致,均存储原应用程序。并设有加载应用程序标志用来标识运行原软件还是运行升级软件,若加载应用程序标志为加载升级软件则加载升级软件区,否则加载原软件区,加载应用程序标志默认为加载原软件。模块软件上注区均为空。并将EEPROM三个存储区中的每个区划分为块,每块128字节(可根据实际应用进行调整),每一块可以设置块校验信息。
如图2所示,软件上注及运行过程设计如下(其中(1)~(4)为软件上注过程,(1)、(5)~(11)为软件启动及运行过程):
(1)硬件加电或复位后,首先运行PROM中的基础程序,基础程序等待一定时间(例如10S)。若在等待时间内收到运行上注模式指令,则运行上注模式,进行软件上注,转入步骤(2),否则转入步骤(5)运行应用程序;
(2)接收地面发送的上注程序块,上注程序块包括上注区域标识(用于标识上注到升级软件区还是模块软件上注区。整体软件升级上注到升级软件区,替换某些模块或修改参数上注到升级软件区或模块软件上注区,增加某些模块上注到模块软件上注区)、所在区域的块标识、上注内容、校验信息等。首先对上注程序块进行校验,若上注程序块校验正确,依据上注区域标识和所在区域的块标识写入EEPROM中对应的位置,转入步骤(3),否则地面重新发送该上注程序块,转入步骤(2);
(3)重复步骤(2),直至所有待更新块(包括更新加载应用程序标志及区校验信息)更新完毕后转入步骤(4);
(4)发送加载应用程序指令,转入步骤(5);
(5)判断加载应用程序标志,若为加载升级软件区,转入步骤(6),否则转入步骤(7);
(6)对升级软件区进行区校验,若校验正确后进行加载,转入步骤(9),否则转入步骤(7),并下传校验错误信息(包括区校验错误信息和块校验错误信息);
(7)对原软件区进行校验,若校验正确后进行加载,转入步骤(9),否则转入步骤(8);
(8)运行基础程序上注模式,转入步骤(2);
(9)判断模块软件上注区是否有更新,若有更新,转入步骤(10),否则转入步骤(11);
(10)对模块软件上注区的新模块软件进行校验,若校验正确则进行模块软件上注区的加载,转步骤(11);若校验错误则向地面下传校验错误信息,转步骤(11);
(11)跳转至SRAM区运行应用软件,本次启动或更新完成。
可以通过间接指令对EEPROM进行块校验,并将校验信息下传,也可以通过间接指令对某一块进行数据下传,方便EEPROM发生故障或上注出现错误时问题查找,其下传格式如表1所示。
表1 EEPROM下传某一块数据
当步骤(6)及步骤(10)校验错误时,地面可以对下传的校验错误信息或数据进行分析,找出错误原因通过硬件加电或复位启动步骤(1)重新注入。
整体软件升级方法如下:
对升级软件进行编译链接生成二进制文件,将二进制文件划分为多个上注程序块,按照“软件上注及运行过程”对升级软件区进行上注更新,更新正确后将启动升级后的应用程序。
替换模块方法如下:
(1)对更新后的模块(例如函数名为func_updated)进行编译链接生成二进制文件,与原模块(例如函数名为func_original)进行比较,若比原模块大,转入步骤(2),否则转入步骤(4);
(2)将更新后模块(func_updated)的二进制文件,划分为上注程序块,按照“软件上注及运行过程”上注到模块软件上注区中的空闲块,转入步骤(3);
(3)修改原模块,使其调用模块软件上注区中的更新后模块(func_updated),转入步骤(5);
(4)将更新后模块(func_updated)的二进制文件,划分为上注程序块,按照“软件上注及运行过程”上注到升级软件区中原模块所在的块,覆盖掉原模块,转入步骤(5);
(5)按照“软件上注及运行过程”启动升级后的应用程序。
其中模块软件上注区存储格式如下:
表2 模块软件上注区中存储格式
增加模块方法如下:
(1)编写应用程序时,在软件运行周期的开始、中间及末尾等处预留函数接口,该函数的调用与否受间接指令控制。
(2)将增加模块按照“软件上注及运行过程”上注到模块软件上注区中的空闲块,其格式如表2所示。
(3)通过间接指令加载模块软件上注区中“增加模块”(或复位计算机自动加载),加载成功后并启动。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

Claims (1)

1.一种星载软件在轨维护及升级方法,其特征在于包括如下步骤:
(1)将星载软件划分为基础程序和应用程序,其中基础程序存储在PROM中,应用程序存储在可读写的非挥发性存储介质中;所述的星载软件包括星务中心计算机软件及除星务中心计算机软件以外的其他星载软件,星务中心计算机软件与地面通过星地通信链路通信,星务中心计算机软件与其他星载软件通过总线进行通信,其中星务中心计算机软件基础程序的最小功能集包括遥控遥测功能、非挥发性存储介质读写功能,校验功能、程序加载功能;其他星载软件基础程序最小功能集包括总线通信功能、非挥发性存储介质读写功能、校验功能、程序加载功能;所述非挥发性存储介质在逻辑上包括原软件区、升级软件区、模块软件上注区,三区均包含区校验信息,初始状态下原软件区与升级软件区的存储内容均为星载软件的原始应用程序,而模块软件上注区为空;将三个存储区分别划分为块,每一块设置块校验信息;
(2)硬件加电或复位后,首先运行基础程序,基础程序运行后等待固定时间,判断是否接收到地面发送的运行上注模式指令;如果在等待时间内收到运行上注模式指令,则转步骤(3)进行软件上注,否则转步骤(4);
(3)接收地面发送的上注程序块,并对上注程序块进行校验;若上注程序块校验正确,则依据上注程序块中所标识的存储位置将上注程序块存入相应的升级软件区或者模块软件上注区;若上注程序块校验错误,则重新发送上注数据块,直至所有上注程序块发送完毕;
(4)根据地面发送的加载应用程序标志判断加载原软件区还是升级软件区,若为加载升级软件区,转步骤(5),若为加载原软件区,转步骤(6);
(5)对升级软件区进行区校验,若区校验正确则进行升级软件区加载,转步骤(7),若区校验错误则进一步进行块校验,并向地面下传块校验错误信息进行错误定位,转步骤(6);
(6)对原软件区进行区校验,若区校验正确则进行原软件区加载,转步骤(7),若区校验错误则返回步骤(2);
(7)判断模块软件上注区是否有新程序块写入,若有新程序块写入则转步骤(8),否则转步骤(9);
(8)对模块软件上注区的新程序块进行校验,若校验正确则进行模块软件上注区的加载,若校验错误则向地面下传校验错误信息进行错误定位;
(9)跳转至SRAM区运行应用程序,本次星载软件启动或更新完成。
CN201410036627.2A 2014-01-24 2014-01-24 一种星载软件在轨维护及升级方法 Active CN103777983B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410036627.2A CN103777983B (zh) 2014-01-24 2014-01-24 一种星载软件在轨维护及升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410036627.2A CN103777983B (zh) 2014-01-24 2014-01-24 一种星载软件在轨维护及升级方法

Publications (2)

Publication Number Publication Date
CN103777983A CN103777983A (zh) 2014-05-07
CN103777983B true CN103777983B (zh) 2016-09-21

Family

ID=50570261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410036627.2A Active CN103777983B (zh) 2014-01-24 2014-01-24 一种星载软件在轨维护及升级方法

Country Status (1)

Country Link
CN (1) CN103777983B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108052355A (zh) * 2017-11-22 2018-05-18 西南电子技术研究所(中国电子科技集团公司第十研究所) 星载载荷单元软件在轨重组方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094784B (zh) * 2014-05-20 2019-09-17 上海新跃仪表厂 基于sram的间址跳转模式的在轨编程方法及装置
CN104536727B (zh) * 2014-11-26 2018-08-10 上海新跃仪表厂 星敏感器软件在轨维护方法
CN105092149B (zh) * 2015-03-25 2018-02-27 北京空间技术研制试验中心 Co2分压传感器在轨维修方法
CN104820586B (zh) * 2015-04-09 2018-05-22 北京空间机电研究所 一种航天器嵌入式软件在轨维护方法
CN106067840B (zh) * 2016-05-25 2020-10-30 郭毅 一种在轨卫星的远程调试方法与系统
CN107168732A (zh) * 2017-04-17 2017-09-15 商丘工学院 一种星载计算机软件的在轨更新方法
CN107203399B (zh) * 2017-06-01 2020-08-11 中国科学院长春光学精密机械与物理研究所 一种卫星在轨程序重注系统
CN107515800A (zh) * 2017-07-17 2017-12-26 上海卫星工程研究所 基于软件冗余的星载软件可靠性设计系统及方法
CN107391189B (zh) * 2017-07-17 2020-10-27 上海卫星工程研究所 星载软件的在轨编程方法
CN107957874B (zh) * 2017-11-21 2021-07-13 上海航天测控通信研究所 可恢复的驻留式星载软件在轨编程方法
CN108958764B (zh) * 2018-06-08 2022-12-20 无锡飞翎电子有限公司 家用电器的应用程序更新方法、装置及家用电器
CN109189500B (zh) * 2018-08-22 2021-11-16 航天东方红卫星有限公司 星载计算机应用软件的下载存储与引导加载方法及系统
CN109799515A (zh) * 2018-12-17 2019-05-24 上海航天电子有限公司 遥控终端及其在轨重构方法
CN109683934A (zh) * 2018-12-21 2019-04-26 北京电子工程总体研究所 一种返回式卫星的星上软件参数远程固化方法
CN110275725A (zh) * 2018-12-29 2019-09-24 中国科学院软件研究所 卫星软件管理方法及装置
CN109933340B (zh) * 2019-03-04 2022-12-09 北京空间飞行器总体设计部 一种航天器eeprom基于页模式的在轨写入和自检方法
CN110569051B (zh) * 2019-08-02 2023-05-23 山东航天电子技术研究所 一种支持预启动的飞行程序在轨维护与验证方法
CN110474673B (zh) * 2019-08-22 2022-02-25 上海航天计算机技术研究所 一种支持断点续传的动态在轨热更新方法
CN110780933B (zh) * 2019-10-23 2022-12-09 中国电子科技集团公司第五十四研究所 一种支持在轨软件重构功能的星载多版本引导设备
CN111399869A (zh) * 2020-02-28 2020-07-10 合肥芯碁微电子装备股份有限公司 控制直写式曝光机软件升级的方法、控制单元和曝光机
CN111698288B (zh) * 2020-05-11 2023-04-07 北京空间技术研制试验中心 一种基于以太网面向无连接的星上软件在轨维护方法
CN111897595B (zh) * 2020-07-16 2024-04-09 中国空间技术研究院 一种卫星星务管理计算机软件启动与引导方法
CN112099833B (zh) * 2020-08-07 2023-07-14 北京控制工程研究所 一种星载计算机固件远程更新方法
CN112083941A (zh) * 2020-08-12 2020-12-15 国电南瑞科技股份有限公司 一种动态加载的安全稳定控制策略更新方法及系统
CN112241270B (zh) * 2020-09-03 2024-05-14 中国空间技术研究院 一种用于卫星星座系统中星载软件在轨维护的系统及方法
CN113434208A (zh) * 2021-06-09 2021-09-24 山东航天电子技术研究所 星上软件自适应加载方法
CN113312114B (zh) * 2021-06-29 2022-04-12 北京微纳星空科技有限公司 星载软件的在轨重构方法、装置、设备及存储介质
CN114185581B (zh) * 2021-11-25 2024-04-09 北京遥测技术研究所 一种基于1553b的fpga程序在轨升级的方法及系统
CN114860650A (zh) * 2022-04-22 2022-08-05 中国科学院国家空间科学中心 一种多片sram型fpga在轨配置管理装置
CN115934143B (zh) * 2023-01-05 2023-05-16 天津云遥宇航科技有限公司 星载gnss掩星接收机cpu软件在轨增量升级方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980161A (zh) * 2010-11-01 2011-02-23 航天东方红卫星有限公司 一种星载计算机软件的在轨更新方法
CN102799502A (zh) * 2012-06-28 2012-11-28 航天恒星科技有限公司 一种星载嵌入式软件在轨维护方法
CN103164242A (zh) * 2013-02-01 2013-06-19 中国人民解放军国防科学技术大学 卫星星务软件上注方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980161A (zh) * 2010-11-01 2011-02-23 航天东方红卫星有限公司 一种星载计算机软件的在轨更新方法
CN102799502A (zh) * 2012-06-28 2012-11-28 航天恒星科技有限公司 一种星载嵌入式软件在轨维护方法
CN103164242A (zh) * 2013-02-01 2013-06-19 中国人民解放军国防科学技术大学 卫星星务软件上注方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108052355A (zh) * 2017-11-22 2018-05-18 西南电子技术研究所(中国电子科技集团公司第十研究所) 星载载荷单元软件在轨重组方法
CN108052355B (zh) * 2017-11-22 2020-12-15 西南电子技术研究所(中国电子科技集团公司第十研究所) 星载载荷单元软件在轨重组方法

Also Published As

Publication number Publication date
CN103777983A (zh) 2014-05-07

Similar Documents

Publication Publication Date Title
CN103777983B (zh) 一种星载软件在轨维护及升级方法
CN106707848B (zh) 一种控制系统的控制程序组织结构和下载方法
CN103777972B (zh) 基于现场可编程门阵列的系统、配置方法以及升级方法
CN105930236A (zh) 一种基于BMS Bootloader升级的应用程序版本回退方法
CN101557583B (zh) 直放站设备嵌入式软件的远程升级与版本切换方法
CN102609286B (zh) 一种基于处理器控制的fpga配置程序远程更新系统及其方法
CN100383737C (zh) 单片机在线加载升级方法及系统
CN104360877A (zh) 基于Bootloader自更新的ECU固件更新方法
CN109522033B (zh) 一种基于器件运行自编程和双中断向量表的ecu程序与数据升级方法
CN107977217A (zh) 在线加载xilinx-fpga多版本更新程序的方法
CN106201590B (zh) 一种fpga配置文件加载方法和系统
CN105930186B (zh) 多cpu的软件加载方法及基于多cpu的软件加载装置
CN103092647A (zh) 嵌入式系统的在线升级方法
CN106406936A (zh) 一种fpga程序多版本管理装置及方法
CN103605540A (zh) 基于安卓系统的快速写入flash镜像的方法
CN102331943A (zh) 在线更新存储器系统与方法
CN104391714A (zh) 一种车辆的软件更新方法和装置
KR100927446B1 (ko) 이동통신단말기의 트랜잭션 단위 펌웨어 업그레이드 방법및 이를 이용한 펌웨어 업그레이드 시스템
CN103257869A (zh) 一种ecu程序智能下载方法
CN102707964B (zh) 兼容程序版本参数配置方法和装置
US9367482B2 (en) Systems and methods to extend ROM functionality
CN101667133A (zh) 固件更新方法和使用该方法更新固件的芯片
CN110837387A (zh) 一种移动电源租借系统、自动营收系统及其更新方法
CN102043636A (zh) 现场可编程门阵列位文件下载的方法及装置
CN106126211A (zh) 一种支持调试接口的mcu在线编程系统

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