CN101980161B - 一种星载计算机软件的在轨更新方法 - Google Patents
一种星载计算机软件的在轨更新方法 Download PDFInfo
- Publication number
- CN101980161B CN101980161B CN 201010532697 CN201010532697A CN101980161B CN 101980161 B CN101980161 B CN 101980161B CN 201010532697 CN201010532697 CN 201010532697 CN 201010532697 A CN201010532697 A CN 201010532697A CN 101980161 B CN101980161 B CN 101980161B
- Authority
- CN
- China
- Prior art keywords
- star
- program block
- program
- satellite
- spaceborne
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种星载计算机软件的在轨更新方法,首先构建星务系统,其中星务主机通过星上网总线与星载下位机进行通信,星务主机通过遥测遥控接口与星地应答机进行通信。然后将星务主机和星载下位机运行的软件均设定为由固定程序块和可变程序块组成。地面通过星地应答机上注程序块给星务主机,由星务主将该程序块进行存储或者分发给相应星载下位机。卫星在轨运行时,由于故障或任务变动需要对可变部分程序块进行修改时,通过遥控指令关掉相应程序块的控制旗标,使其不参与星上程序的运行。当接收到上注的更新程序块并通过星上自检和遥测验证正确后,通过遥控指令打开相应程序块的控制旗标,使其参与星上程序的运行,完成星载计算机软件的更新。
Description
技术领域
本发明涉及一种卫星软件更新方法。
背景技术
为了适应各种情况下不同的任务需求以及应对各种突发的故障情况,需要不断地对星载计算机软件进行在轨更新。
目前,对于地面计算机软件已经有一些相对比较成熟的更新方法,这些方法基本上均采用“补丁”程序对原有bug的软件进行操作,形成新的软件替代原有bug的软件。在安装补丁时,一般是要求原有bug的软件处于不能运行阶段,需要运行另外新的安装软件,将其作为一个被操作的“数据”对象进行处理。
星载计算机软件的在轨维修,不能采用地面的这种补丁方式,主要原因有:(1)星上程序作为一个整体必须连续运行,不允许退出,因此不能或不容易实现新添一个程序对原程序进行“加工”修改,再用修改后的程序替代原有程序运行这种方式;(2)由于小卫星的应用环境和飞行任务是固定的,再加上星上资源受限,其附属的嵌入式软件也都采用固化方式。而且为了增加可靠性又多使用PROM器件存储程序代码。(3)由于空间环境的特殊性,容易造成星上设备的损坏,包括计算机某些存储单元的损坏等,由此引起原固化软件代码的运行不良,只需要对原固化软件代码进行部分更新。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种可靠性高、灵活性好的星载计算机软件的在轨更新方法。
本发明的技术解决方案是:一种星载计算机软件的在轨更新方法,步骤如下:
(1)构建由星务主机和星载下位机组成的星务系统,星载各智能设备分别配置星载下位机,星务主机通过星上网总线与星载下位机进行通信,星务主机通过遥测遥控接口与星地应答机进行通信;
(2)将星务主机和星载下位机运行的软件均设定为由固定程序块和可变程序块组成,固定部分程序块代码存入PROM中且不可改存,可变部分程序块代码存入EEPROM或Flash中且可以改存;
(3)地面通过星地应答机上注程序块给星务主机,星务主机对传来的数据块进行判断,如果该程序块是星务主机自身的程序块,则星务主机存储该程序块,否则将该程序块分发给相应的星载下位机进行存储;星务主机每接收到一个完整的数据块后,将该数据块的内容作为遥测数据发送至地面,由地面验证该上注程序块的正确性以确定重新发送该数据块或者发送下一数据块;
(4)卫星在轨运行时,由于故障或任务变动需要对可变部分程序块进行修改时,通过遥控指令关掉相应程序块的控制旗标,使该程序块的代码不参与星上程序的运行;
(5)当接收到上注的与修改部分对应的更新程序块并通过星上自检和遥测验证正确后,通过遥控指令打开修改后程序块的控制旗标,使修改后程序块的代码参与星上程序的运行,完成星载计算机软件的更新。
本发明与现有技术相比的优点在于:
(1)采用本发明方法,当星载软件出现问题(或者任务变动)需要更改时,可以不变动全部星上软件,仅隔离和更换有问题的部分,维护后的新旧软件代码共处于同一个整体软件中,共享运行过程中的参数和数据,从而减轻星上软件维护,简化星上设备资源要求,提高了星上设备运行的灵活性和可靠性;
(2)本发明方法将星载软件分为固定和可变两个部分,既有能力隔离可能发生问题的程序环节,又有能力加入修改后的程序环节。这样,星上程序整体至始至终在运行中,即使在对星上程序修改过程中,星上程序也处于运行中,仅仅隔离有问题的环节,并且星上程序本身又支持对自身的修改。该方法改变了卫星在轨软件的更新模式,加强了卫星的在轨维修能力、提高了卫星的可控性和安全性,同时提高了卫星系统的灵活性,减轻了地面测控系统的负担。
附图说明
图1为本发明中星载通信网络结构图;
图2为采用本发明方法的星务主机软件流程图;
图3为采用本发明方法的星载下位机软件流程图;
图4为采用本发明方法的可变软件运行流程图。
具体实施方式
一、卫星信息流
如图1所示,为本发明方法所适用的卫星平台通信网络结构图,其中星上网络为宇航级设备常采用的星上网络,如CAN总线、1553B总线、TCP/IP、422、485总线等。星务主机、星载下位机的硬件采用宇航设备常采用的CPU,如80x86、ARM7、ARM9、X51系列等。图中的信息流程为:星地应答机接收到地面的上注程序块后,传输给星务主机,星务主机通过判断是否是自己所运行软件中的程序块,如果是则自己存储该数据块,否则将数据块分发给相应的星载下位机。星务主机收集各星载下位机的的数据包,将收集到的数据包以及自身的数据包进行格式化处理,形成小卫星标准的统一遥测格式向地面下传。
(1)遥控上行数据格式
星务主机通过遥控格式的头地址进行判读,以判断传输的遥控指令种类和类型。遥控格式可参考如下形式:
首先,星上接收到HEAD如0xEB 90字节后,认为收到有效数据,将后面数据认为是遥控数据,根据HEAD后面第一个字节Addr判断该指令是给哪个星上设备的;根据HEAD后面第二个字节TYPE判断上注数据类型是指令还是上注的程序数据块;根据Len获得后面有效数据区长度;DATA为上注块中有效数据;CHECKSUM为Data区的数据累加和,作为判断数据传输判错机制。
例如,当收到一个完整的正确的上述遥控数据后,星务主机判断设备地址。当Addr=0且TYPE=0x11时,星务主机将收到的N-4个Data数据放置到星务主机RAM的DataAddr地址区。当Addr不等于0时,星上遥测遥控设备将整个的遥控数据原封不动的转发到目标地址为Addr的星载下位机,星载下位机根据遥控格式中的类型判断当TYPE=0x11时,将接收到的N-4个Data数据放置到其自身RAM的DataAddr地址区。
当Addr=0且TYPE=0x22时,星务主机将收到的N个Data数据作为指令处理。当Addr不等于0时,星务主机将整个遥控数据原封不动的转发到目标地址为Addr的星载下位机,星载下位机根据遥控格式中的类型判断当TYPE=0x22时,将接收到的N个Data数据作为指令处理。
(2)遥测下行数据格式
星务主机通过星上网收集各星载下位机的遥测量,然后按照遥测数据格式直接打包送至星地应答机下行至地面。遥测下行数据包采用小卫星标准的统一遥测格式。遥测格式可参考如下形式:
遥测数据包由主导头和数据域组成,主导头固定为6个字节,包含包识别、包顺序控制、包长三部分。
包识别分成以下四部分:
版本号:占用3位,指明包装格式的版本,固定为“000”;
类型:占用1位,用于与遥控包区分,固定为“0”;
副导头标志:占用1位,遥测中无副导头,填“0”;
应用过程识别:占用11位,用于识别遥测数据包的种类;最高位为“0”表示实时遥测数据包,最高位为“1”表示延时遥测数据包,全“1”表示空数据包。
包顺序控制分成以下两部分:
分段标志:占用2位,如果所有数据包均不分段,填“11”;
源包顺序计数:占用14位,应用过程每产生一个数据包,源包顺序计数加1,可以根据此值对数据包的连续性、完整性进行检查,数值计满后归零;
包长占用16位,指明不含主导头的源包长度,等于数据域的字节数减1;
数据域:包含应用过程产生的数据,其长度为整数个字节。
通过该种遥测格式,星务主机将收到的遥控数据打成遥测包,通过遥测信道下传的地面测控站进行判读,判读到的遥测包数据和上行的遥控数据一致,实现星地回路判别,确保上注的程序数据块正确,实现闭环控制。
二、星务主机和星载下位机软件设计
如图2所示,星务主机运行的软件由固定和可变两部分组成。固定部分构成星上软件的基本模块,依次执行硬件初始化设置、星上网络的通信收发功能、软件的各个功能模块的任务调度管理和上注函数的功能块组装。可变部分构成软件的功能模块,包含遥测任务、遥控任务、程控任务、数据采集和安全应急等,其中可变部分按照控制语句相继执行。遥测任务为将星上收集到的数据进行格式化、实现分包遥测。遥控任务为将收到的遥控数据进行处理、分发。
如图3所示,星载下位机运行的软件也由固定和可变两部分组成。固定部分依次执行硬件初始化设置,星上网络的通信收发功能、软件的各个功能模块的任务调度管理和上注函数的功能块组装。可变部分包含数据采集、控制开关、自检等,可变部分按照控制语句相继执行。其中数据采集模块为对设备进行数据采集,控制开关模块为通过控制计算机的端口实现对外设的控制,例如集电极开路指令输出等。自检模块为对设备自身的存储器、复位、电源等进行监测。
固定部分代码存入PROM中,可变部分代码存入EEPROM或Flash中,前者不可改存,后者可以改存。在程序运行过程中,固定部分代码依次执行,可变部分代码都位于条件控制语句中,即每个可变部分代码都附有一个旗标,按照旗标由控制语句(if语句)管理是否执行。
如果星载软件在轨出现问题或者根据任务变动需要对软件更新时,首先由遥控命令关闭相应有问题的软件附属的旗标,使其退出星上软件的运行过程。然后遥控上注新程序代码,并经星上自检和遥测检查上注无误时,再由遥控命令打开相应的旗标,使更新的软件加入星上软件的运行过程中。
三、星务主机和星载下位机软件更新部分设计
星上可变部分软件为在轨可能需要修改的软件,针对该部分软件,星上软件设计采用了控制旗标方式控制其执行过程,当控制旗标关闭时,该部分软件不参与软件运行,当控制旗标打开时,该部分软件参与星上程序运行,运行过程如图4所示。采用该办法,可以实现代码可控、程序可控。具体实现方法如下:
(1)星上软件预留多个“虚拟函数功能块”,它属于可变部分软件,对该些预留函数进行定位设计;同时针对每一个“虚拟函数功能块”,设计相应的控制旗标;初始状态这些旗标关闭;
(2)根据程序大小进行地址分配,定位好整个程序和设计好的“虚拟函数功能块”的编译地址;
(3)卫星更新程序装载时,只装载“虚拟函数功能块”内部运行的程序,“虚拟函数功能块”本身为空代码,不装载;程序运行时,“虚拟函数功能块”附属的旗标是关闭的,不参与软件的运行过程;
(4)在轨运行时,由于故障或其它原因需要添加新的软件时,通过遥控指令关掉相应“虚拟函数功能块”的控制旗标,使其代码不参与星上程序的运行,然后上注更新程序块,通过星上自检和遥测检验正确后,再通过遥控指令打开所述上注更新程序块所在的“虚拟函数功能块”的控制旗标,使其代码参与星上程序的运行,从而实现更新程序的运行过程。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (1)
1.一种星载计算机软件的在轨更新方法,其特征在于步骤如下:
(1)构建由星务主机和星载下位机组成的星务系统,星载各智能设备分别配置星载下位机,星务主机通过星上网总线与星载下位机进行通信,星务主机通过遥测遥控接口与星地应答机进行通信;
(2)将星务主机和星载下位机运行的软件均设定为由固定程序块和可变程序块组成,固定部分程序块代码存入PROM中且不可改存,可变部分程序块代码存入EEPROM或Flash中且可以改存;
(3)地面通过星地应答机上注程序块给星务主机,星务主机对传来的数据块进行判断,如果该程序块是星务主机自身的程序块,则星务主机存储该程序块,否则将该程序块分发给相应的星载下位机进行存储;星务主机每接收到一个完整的数据块后,将该数据块的内容作为遥测数据发送至地面,由地面验证该上注程序块的正确性以确定重新发送该数据块或者发送下一数据块;
(4)卫星在轨运行时,由于故障或任务变动需要对可变部分程序块进行修改时,通过遥控指令关掉相应程序块的控制旗标,使该程序块的代码不参与星上程序的运行;
(5)当星务主机或者星载下位机接收到上注的与修改部分对应的更新程序块并通过星上自检和遥测验证正确后,通过遥控指令打开修改后程序块的控制旗标,使修改后程序块的代码参与星上程序的运行,完成星载计算机软件的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010532697 CN101980161B (zh) | 2010-11-01 | 2010-11-01 | 一种星载计算机软件的在轨更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010532697 CN101980161B (zh) | 2010-11-01 | 2010-11-01 | 一种星载计算机软件的在轨更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101980161A CN101980161A (zh) | 2011-02-23 |
CN101980161B true CN101980161B (zh) | 2013-03-13 |
Family
ID=43600665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010532697 Active CN101980161B (zh) | 2010-11-01 | 2010-11-01 | 一种星载计算机软件的在轨更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101980161B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207877A (zh) * | 2011-04-15 | 2011-10-05 | 中国科学院长春光学精密机械与物理研究所 | 空间相机在轨程序重注方法及其系统 |
CN103164242A (zh) * | 2013-02-01 | 2013-06-19 | 中国人民解放军国防科学技术大学 | 卫星星务软件上注方法 |
CN103777983B (zh) * | 2014-01-24 | 2016-09-21 | 航天东方红卫星有限公司 | 一种星载软件在轨维护及升级方法 |
CN103984566B (zh) * | 2014-02-21 | 2017-01-18 | 北京神舟航天软件技术有限公司 | 一种在轨细粒度的功能函数增加方法 |
CN103955411A (zh) * | 2014-05-21 | 2014-07-30 | 北京空间机电研究所 | 一种星载大容量fpga程序在轨上注及配置方法 |
CN104090788B (zh) * | 2014-06-27 | 2018-09-18 | 上海航天电子通讯设备研究所 | 一种基于载荷的星载软件配置和运行方法及系统 |
CN104536727B (zh) * | 2014-11-26 | 2018-08-10 | 上海新跃仪表厂 | 星敏感器软件在轨维护方法 |
CN104615532A (zh) * | 2015-01-04 | 2015-05-13 | 南京航空航天大学 | 基于VxWorks操作系统的航天软件在轨调试方法 |
CN106067840B (zh) * | 2016-05-25 | 2020-10-30 | 郭毅 | 一种在轨卫星的远程调试方法与系统 |
CN107168721B (zh) * | 2017-06-20 | 2020-07-31 | 中国电子科技集团公司第三十六研究所 | 星载多处理器软件集中存储加载装置、方法及更新方法 |
CN107612610B (zh) * | 2017-08-31 | 2019-10-22 | 航天东方红卫星有限公司 | 一种基于下位机的星载测控应答机自测试系统及方法 |
CN109213475B (zh) * | 2018-07-20 | 2022-04-01 | 北京航空航天大学 | 卫星多回路比对指令单元遥控源程序的人工智能书写方法 |
CN109245817A (zh) * | 2018-08-17 | 2019-01-18 | 北京工业大学 | 一种基于遥感应用管理协议的卫星管理系统 |
CN109189500B (zh) * | 2018-08-22 | 2021-11-16 | 航天东方红卫星有限公司 | 星载计算机应用软件的下载存储与引导加载方法及系统 |
CN109672470B (zh) * | 2018-12-28 | 2021-04-13 | 航天东方红卫星有限公司 | 一种小卫星星上软件上注和重构地面测试验证方法及系统 |
CN112003643B (zh) * | 2020-08-13 | 2022-04-19 | 航天科工空间工程发展有限公司 | 一种用于卫星在轨软件重构的数据上注方法 |
CN112527372A (zh) * | 2020-12-22 | 2021-03-19 | 中国科学院微小卫星创新研究院 | 一种卫星在轨软件的更新方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904722A (zh) * | 2006-07-06 | 2007-01-31 | 上海多丽影像设备有限公司 | 彩色扩印机相纸控制装置 |
CN101030146A (zh) * | 2007-04-10 | 2007-09-05 | 北京中星微电子有限公司 | 一种实现固件更新的方法和系统 |
CN101079732A (zh) * | 2007-05-21 | 2007-11-28 | 武汉虹信通信技术有限责任公司 | 基于ftp协议的嵌入式系统软件远程升级方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090019435A1 (en) * | 2007-07-12 | 2009-01-15 | Sauer-Danfoss Inc. | System and method for over the air programming |
-
2010
- 2010-11-01 CN CN 201010532697 patent/CN101980161B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904722A (zh) * | 2006-07-06 | 2007-01-31 | 上海多丽影像设备有限公司 | 彩色扩印机相纸控制装置 |
CN101030146A (zh) * | 2007-04-10 | 2007-09-05 | 北京中星微电子有限公司 | 一种实现固件更新的方法和系统 |
CN101079732A (zh) * | 2007-05-21 | 2007-11-28 | 武汉虹信通信技术有限责任公司 | 基于ftp协议的嵌入式系统软件远程升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101980161A (zh) | 2011-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101980161B (zh) | 一种星载计算机软件的在轨更新方法 | |
CN104090796B (zh) | 一种嵌入式设备程序更新方法和系统 | |
CN106020092B (zh) | 焊机远程监控系统 | |
CN106843038B (zh) | 一种遥感卫星图像处理载荷多任务主控系统 | |
US9876598B2 (en) | Switch for transmission of data between heterogeneous networks for aircraft | |
CN103917955A (zh) | 数据加载系统、便携式数据加载装置和用于将软件配置加载到飞机的方法 | |
CN103944629A (zh) | 一种卫星综合电子系统 | |
CN105262220B (zh) | 变电站智关机远动信息校核方法及系统 | |
CN103336249B (zh) | 一种导航卫星电源系统自主管理仿真验证系统 | |
CN103529820A (zh) | 一种适用于嵌入式设备的故障注入测试系统及测试方法 | |
CN103902305A (zh) | 基于ti dsp的软件远程加载与固化方法 | |
CN106020029A (zh) | 基于物联网的智能农业机械控制方法 | |
CN108932162A (zh) | 基于一体化星载计算机的多任务综合管理系统及处理方法 | |
CN110289902A (zh) | 一种星上软件的更新系统 | |
CN104503813A (zh) | 一种fpga远程加载大容量配置位流文件的方法 | |
CN102207877A (zh) | 空间相机在轨程序重注方法及其系统 | |
CN103347048A (zh) | 一种城市轨道交通信号系统的自动升级方法 | |
CN103885429B (zh) | 一种智能遥测轮询控制方法 | |
CN107797812A (zh) | 一种充电机远程在线升级方法及系统 | |
CN103901881B (zh) | 用于运载火箭等效器系统兼容多种测试状态的装置 | |
CN104484272B (zh) | 一种可在轨调试星载电子系统及在轨调试方法 | |
CN109189500A (zh) | 星载计算机应用软件的下载存储与引导加载方法及系统 | |
CN109188471B (zh) | 一种基于软件实现的卫星故障诊断方法 | |
CN103010039A (zh) | 一种电池管理系统引导加载方法 | |
CN102324963A (zh) | 一种基于代理机制的卫星任务连续服务方法 |
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 |