CN102520977B - 一种航天器嵌入式运行程序加快上行方法 - Google Patents
一种航天器嵌入式运行程序加快上行方法 Download PDFInfo
- Publication number
- CN102520977B CN102520977B CN201110371867.4A CN201110371867A CN102520977B CN 102520977 B CN102520977 B CN 102520977B CN 201110371867 A CN201110371867 A CN 201110371867A CN 102520977 B CN102520977 B CN 102520977B
- Authority
- CN
- China
- Prior art keywords
- software
- address
- data
- ram
- spacecraft
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
一种航天器嵌入式运行程序加快上行方法,步骤:(1)设计实现维护软件;(2)设计实现上行注入的运行软件,即新的飞行软件,新的飞行软件链接时,代码段、数据段均定位于RAM中,代码段的起始地址为RAM中的地址A,RAM的最低端到地址A满足上行注入数据存储,地址A到RAM顶端地址间满足新飞行软件的代码段、数据段以及运行空间足够;(3)对步骤(2)中新的飞行软件进行处理,使得地面系统上行注入数据减少、过程加快;(4)按照维护软件制定的数据包格式,对步骤(3.5)生成的可执行代码进行处理,生成地面测控系统可上行的数据包,上行上述数据包,使新的飞行软件得以运行。
Description
技术领域
本发明涉及空间电子领域,尤其涉及航天器总体设计以及空间信息处理系统、方法。
背景技术
目前,国内航天器的飞行软件均固化于PROM中,一旦软件中发现错误将不能对PROM中的数据进行修改,只能利用RAM中的空间对飞行软件进行维护,修改部分程序或全部程序。利用航天器设备在工作时长期加电,RAM中数据可长期维持、不丢失的特点,保证被放置于RAM中的程序可长期运行。其中,有一种飞行软件维护的系统构架如图1所示:嵌入式计算机的CPU配备两个PROM区,其中PROM1固化飞行软件,当飞行软件出现错误时,地面系统可发送指令将CPU的程序存储区切换到PROM2,PROM2中固化的为一个小型的维护软件,可以接收地面上行注入的修正过的或具有新功能的软件程序数据包,并转存入RAM中,等到软件程序数据包上行完毕后,地面利用指令将程序跳转入RAM中运行。利用此方法,相当于废除掉了PROM1中固化的飞行软件,转而运行RAM中新注入的软件,达到了软件维护的目的。
遥控指令是控制航天器正常运行的重要手段,一般由地面测控系统负责加工,通过测控信道将电信号发送至航天器,控制各分系统的运行状态。早期的航天器遥控指令非常简洁,只包括3-20字节长度的指令码或数据,航天器对指令进行校验、译码并执行,仅限于设置开关和数据。但随着计算机技术和软件技术的发展,具有高度自治性和灵活性的实时嵌入式系统在国内的航天器中得到了广泛的应用。因此,遥控指令可控制、管理的范围急剧扩大,不仅仅可以控制硬件设备的运行,而且可以通过协议与航天器软件形成互动,共同完成各种类型的飞行任务。
目前,我国的测控数据的传输速率为1K-2K bps,而完成上述的软件维护需要上行传输的数据量可以达到300K-500K Bytes。由于我国地面测控系统的限制,这些数据不能连续不间断传输,必须分割成限定长度的数据包,进行多次上行,这样,很大的数据量再加上多次上行过程中需要比对、确认等原因造成的时间损耗,完成300K-500K Bytes数据的传输需要5-6个小时的时间。这是一个非常长的时间段。尽量缩短这一过程所占用的时间已成为当务之急,尤其是对于那些非静止轨道的航天器来说,测控可见时间段是有限的,减少大数据量遥控指令上行传输时间更是至关重要。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种航天器嵌入式运行程序加快上行方法,在现行地面测控体制下,可提高数据上行效率,缩短大数据量上行传输时间。
本发明的技术解决方案是:一种航天器嵌入式运行程序加快上行方法,包括下列步骤:
(1)设计实现维护软件,维护软件与航天器嵌入式飞行软件的关系要求维护软件运行时,飞行软件不运行,此时内存空间全部由维护软件控制;所述维护软件存储在RAM的高地址端;
(2)设计实现上行注入的运行软件,即新的飞行软件,新的飞行软件链接时,代码段、数据段均定位于RAM中,代码段的起始地址为RAM中的地址A,RAM的最低端到地址A满足上行注入数据存储,地址A到RAM顶端地址间满足新飞行软件的代码段、数据段以及运行空间足够;
(3)对步骤(2)中新的飞行软件进行处理,使得地面系统上行注入数据减少、过程加快;具体步骤:
(3.1)将步骤(2)生成的新飞行软件形成可执行代码;
(3.2)对步骤(3.1)形成的可执行代码进行压缩,保存为数据文件,压缩后的数据在该文件中以数组的形式存在;
(3.3)编辑一个辅助的软件代码文件,该软件需要对(3.2)形成的数据文件进行解压缩,解压缩后的数据存放于步骤(2)中所述的地址A到RAM最高端的区域,并从地址A依次向高端地址存储;解压缩完成后,跳转到地址A运行;
(3.4)将(3.3)的软件代码文件与(3.2)形成的数据文件进行编译、链接;链接时,代码段的起始地址应定位于内存的起始地址;
(3.5)将步骤(3.4)链接后的软件程序生成可执行代码;
(4)按照维护软件制定的数据包格式,对步骤(3.5)生成的可执行代码进行处理,生成地面测控系统可上行的数据包;具体包括以下步骤:
(4.1)根据地面测控系统上传数据的能力,将步骤(3.5)生成的可执行代码分割成数据包;
(4.2)地面发送遥控指令,将航天器切换到维护软件运行;
(4.3)依次向航天器上行注入步骤(4.1)分割形成的数据包,并从航天器遥测确认数据包被航天器维护软件正确处理;
(4.4)步骤(4.1)生成的所有数据包上行注入完成后,地面系统再上行命令,使维护软件跳转入内存空间最低端地址,自解压程序开始运行,将新的飞行软件代码自动解压缩,解压缩后的代码即存储于RAM地址A开始的空间,并跳转到地址A运行,即新的飞行软件得以运行。
本发明与现有技术相比有益效果为:
(1)本发明在图1所示的航天器飞行软件维护的系统构架下,PROM2中维护软件使用RAM地址高端的一段空间,在地面注入数据包完毕后,程序从维护软件跳转到RAM中的自解压执行,原来维护软件所使用的地址高端的空间可以被释放,重新被注入的新程序利用,RAM空间得到了充分的利用。如果维护软件使用RAM地址低端空间,则实现释放并重新利用是非常困难的。
(2)上行注入的新的软件程序对RAM空间利用的设计。目前,在我国的航天器上,RAM空间容量已不再成为限制技术应用的瓶颈。本发明巧妙应用了RAM的分段使用,使得解压缩程序和被注入的新程序成为两个不同的执行体,并在控制下得到顺次执行。使航天器上数据自解压的目标得到了实现。
(3)对上行注入的新的软件程序实施压缩和自解压的方法,达到运行程序加快上行的目的。对于航天器的大量上行数据,在地面进行压缩,在航天器上实现自解压,在我国测控数据传输速率低的现实情况下,传输时间为不进行数据压缩时的1/3~1/2,大大提高了数据传输效率。
附图说明
图1为一种飞行软件维护的系统构架图,本发明是基于这样的系统构架下产生的;
图2为本发明对RAM的分配使用图;
图3为本发明实施例方法流程图;
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明做出详细说明。
如图3所示,本方法发明的实施步骤如下:
101、设计、实现维护软件。图1为一种飞行软件维护的系统构架图,航天器嵌入式CPU配备了两个程序区PROM1和PROM2,分别固化了飞行软件和维护软件。在航天器发射时,运行飞行软件。在发现飞行软件严重错误不能完成在轨任务或用户需求变化需要进行较大调整时,可在地面控制下,切换到维护软件运行。实现本发明实施例首先应对图1中所示的维护软件进行合理设计,维护软件运行时,飞行软件不运行,释放了所使用的全部内存空间,内存空间则全部由维护软件控制,内存空间的使用策略对本发明是至关重要的。
维护软件具体包括以下要素:
101a、制定上行注入数据包格式,地面测控系统需按照此格式生成上行数据包,维护软件需按照此格式接收来自地面的数据。例如一种上行注入数据包格式如下表:
注:
1.指令序号为本条指令在整个航天器指令中的排序,便于维护软件辨识;
2.数据包长度为本条指令数据包的长度,包括指令序号、数据包长度本身、数据包序列号、本报数据写入内存起始地址、本包数据长度、数据序列、指令数据包校验和等部分的数据总长度,以字节为单位。
3.数据包序列号为多次上行注入数据包的排序,从0开始依次计数,便于维护软件判别数据包的连续性,保证接收数据的完整性。
4.本包数据写入内存起始地址为数据写入内存的开始位置;
5.本包数据长度为本指令中数据序列的总长度,以字节为单位;
6.数据序列为依次写入内存的数据;
7.指令数据包校验和为指令序号到数据序列所有数据的累加和,保留低2字节。
101b、维护软件需要具备的功能包括:接收地面上行注入;能够根据格式定义对数据的有效性进行检查,抛弃不正确的数据包,并通过航天器遥测通知地面该结果;对于正确的数据包,应根据格式定义,将数据序列存储于图2所示的RAM中地址A以下空间,从最低端地址顺序存储;能够接收地面的执行新注入程序的命令,并跳转入RAM空间最低端地址执行。
101c、维护软件在链接时,应将自身所使用的数据区以及堆栈区放置于内存高端地址,如图2所示的内存地址B之上的空间;内存地址B之下的空间用于存储上行注入程序数据以及上行注入程序解压缩后的运行空间。
101d、维护软件应固化在航天器嵌入式计算机系统中。
关于维护软件目前航天器的嵌入式计算机系统中都涵盖,对于本领域技术人员来讲,只要知晓本发明对维护软件的要求,就能够采用不同的实现方式实现,是公知技术,此处关于维护软件的具体设计实现代码不进行赘述。
102、设计、实现上行注入的运行软件,即新的飞行软件。该软件是在维护完成后实际运行的新程序,可能完成新的功能需求,异或是对原有飞行软件错误进行了更改。具体包括以下要素:
102a、消除原有飞行软件中的错误或针对新的需求进行了设计了开发。
102b、软件在链接时,代码段、数据段均定位于RAM中,并且代码段的起始地址应为图2所示的地址A;整个软件的代码段、数据段以及运行空间应在地址A到RAM最高端地址间,
此时不用考虑地址B之上的空间已经利用,因为该软件运行时,维护软件已经失去了意义,不再需要运行了,可以对地址B之上的空间进行覆盖。
新的飞行软件为地面新开发的,被压缩后不能运行,必须配备解压缩程序,才能得以被解压缩。为了加快上行,上行注入数据即地面注入的为自解压程序以及被压缩后的新的飞行软件,存储于RAM中最低端地址到地址A之间,即自解压程序以及被压缩后的新的飞行软件存储空间不能超过地址A。在满足条件的情况下,A的值应尽量小,因为解压缩后,新的飞行软件运行空间在地址A之上,最低端地址到地址A之间的空间不能再被应用,A的值应尽量小避免空间的浪费。
103、对102步骤生成的上行注入的新的运行软件进行处理,达到地面系统上行注入数据减少、过程加快的目的。具体步骤包括:
103a、将102步骤生成的上行注入的运行软件形成可执行代码。
103b、利用工具对103a形成的可执行代码进行压缩,保存为数据文件,压缩后的数据在该文件中以数组的形式存在。目前,数据压缩技术比较成熟,本文不对此压缩算法进行限定,压缩算法选用的原则为:具有很高的压缩比;不能对数据有所损坏;容易利用软件实现。例如:LZSS算法。
103c、编辑一个软件代码文件,完成功能包括:对103b形成的数据文件中保存的数组进行解压缩,解压缩后的数据从图2所示内存地址A开始,依次向高端地址空间存储;解压缩完成后,跳转到地址A运行。此时不用考虑地址B之上的空间已经利用,因为该软件运行时,维护软件已经失去了意义,不再需要运行了,可以对地址B之上的空间进行覆盖。
103d、将103c形成的软件代码文件与103b形成的数据文件进行编译、链接。可执行程序代码段的起始应定位于内存的最低端地址,应保证最低端地址到地址A之间的空间可以对其进行存储。
103e、将103d步骤链接后的软件程序生成可执行代码。
104、按照101a步骤制定的数据包格式,对103e步骤生成的可执行代码进行处理,生成地面测控系统可上行的数据包。具体包括以下步骤:
104a、由于我国地面测控系统的限制,103e步骤生成的可执行代码一般不能连续不间断传输至航天器,必须分割成限定长度的数据包,进行多次上行。本步骤需要按照101a步骤规定的数据包格式以及地面测控包长度限制,对103e步骤生成的可执行代码进行分割,形成地面测控系统可上行的数据包。
104b、地面发送遥控指令,将航天器切换到维护软件运行,即运行图1PROM2中的软件。
104c、依次向航天器上行注入104a所生成的数据包,并从航天器遥测确认数据包被航天器维护软件正确处理,即维护软件已正确将数据写入目标地址。
104d、104a所生成的数据包上行注入全部完成后,地面系统需要再上行命令,使维护软件跳转入内存空间最低端地址运行。自解压程序开始运行,将新的飞行软件代码自动解压缩,解压缩后的代码即存储于RAM地址A开始的空间,并跳转到地址A运行,即新的飞行软件得以运行。
本发明实施例提供的航天器嵌入式运行程序加快上行方法,通过对目标程序代码进行压缩,航天器上实施自解压的方式,使得上行运行程序数据量大大减少,达到了加快上行的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替代,都应涵盖在本发明的保护范围内。
本发明未详细说明部分属于本领域技术人员公知常识。
Claims (1)
1.一种航天器嵌入式运行程序加快上行方法,其特征在于包括下列步骤:
(1)设计实现维护软件,维护软件与航天器嵌入式飞行软件的关系要求维护软件运行时,飞行软件不运行,此时内存空间全部由维护软件控制;所述维护软件存储在RAM的高地址端;
(2)设计实现上行注入的运行软件,即新的飞行软件,新的飞行软件链接时,代码段、数据段均定位于RAM中,代码段的起始地址为RAM中的地址(A),RAM的最低端到地址(A)满足上行注入数据存储,新飞行软件的代码段、数据段以及运行空间应在地址(A)到RAM高地址端间;
(3)对步骤(2)中新的飞行软件进行处理,使得地面系统上行注入数据减少、过程加快;具体步骤:
(3.1)将步骤(2)生成的新飞行软件形成可执行代码;
(3.2)对步骤(3.1)形成的可执行代码进行压缩,保存为数据文件,压缩后的数据在该文件中以数组的形式存在;
(3.3)编辑一个辅助的软件代码文件,该软件需要对步骤(3.2)形成的数据文件中保存的数组进行解压缩,解压缩后的数据存放于步骤(2)中所述的地址(A)到RAM最高端的区域,并从地址(A)依次向高端地址存储;解压缩完成后,跳转到地址(A)运行;
(3.4)将步骤(3.3)的软件代码文件与步骤(3.2)形成的数据文件进行编译、链接;链接时,代码段的起始地址应定位于内存的起始地址,保证最低端地址到地址(A)之间的空间足够存储;
(3.5)将步骤(3.4)链接后的软件程序生成可执行代码;
(4)按照维护软件制定的数据包格式,对步骤(3.5)生成的可执行代码进行处理,生成地面测控系统可上行的数据包;具体包括以下步骤:
(4.1)根据地面测控系统上传数据的能力,按照数据包格式以及地面测控包长度限制,将步骤(3.5)生成的可执行代码分割成数据包;
(4.2)地面发送遥控指令,将航天器切换到维护软件运行;
(4.3)依次向航天器上行注入步骤(4.1)分割形成的数据包,并从航天器遥测确认数据包被航天器维护软件正确处理;
(4.4)步骤(4.1)生成的所有数据包上行注入完成后,地面系统再上行命令,使维护软件跳转入内存空间最低端地址,自解压程序开始运行,将新的飞行软件代码自动解压缩,解压缩后的代码即存储于RAM地址(A)开始的空间,并跳转到地址(A)运行,即新的飞行软件得以运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110371867.4A CN102520977B (zh) | 2011-11-22 | 2011-11-22 | 一种航天器嵌入式运行程序加快上行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110371867.4A CN102520977B (zh) | 2011-11-22 | 2011-11-22 | 一种航天器嵌入式运行程序加快上行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102520977A CN102520977A (zh) | 2012-06-27 |
CN102520977B true CN102520977B (zh) | 2014-11-19 |
Family
ID=46291919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110371867.4A Active CN102520977B (zh) | 2011-11-22 | 2011-11-22 | 一种航天器嵌入式运行程序加快上行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102520977B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648809A (zh) * | 2017-01-10 | 2017-05-10 | 上海航天控制技术研究所 | 一种卫星星载软件的启动方法 |
CN109783279B (zh) * | 2019-01-15 | 2022-07-29 | 北京临近空间飞行器系统工程研究所 | 一种飞行参数自适应的嵌入式软件内存数据动态加载方法 |
CN112783523B (zh) * | 2021-01-18 | 2024-07-23 | 四川腾盾科技有限公司 | 一种多余度飞机管理计算机软件空中加载方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101849249A (zh) * | 2007-06-05 | 2010-09-29 | 空中客车运营公司 | 采集、记录和使用航空器中已捕捉数据的设备和方法 |
US8032865B2 (en) * | 2001-07-26 | 2011-10-04 | Kyocera Corporation | System and method for field diagnosis of wireless communications device system software |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7987164B2 (en) * | 2008-01-09 | 2011-07-26 | Oracle International Corporation | Method and system for speeding up rebuild of user-defined indexes during partition maintenance operations in the database systems |
-
2011
- 2011-11-22 CN CN201110371867.4A patent/CN102520977B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032865B2 (en) * | 2001-07-26 | 2011-10-04 | Kyocera Corporation | System and method for field diagnosis of wireless communications device system software |
CN101849249A (zh) * | 2007-06-05 | 2010-09-29 | 空中客车运营公司 | 采集、记录和使用航空器中已捕捉数据的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102520977A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102520977B (zh) | 一种航天器嵌入式运行程序加快上行方法 | |
US6624762B1 (en) | Hardware-based, LZW data compression co-processor | |
CN108052355B (zh) | 星载载荷单元软件在轨重组方法 | |
KR101759658B1 (ko) | 메모리 장치 및 메모리 시스템 | |
CN101290628B (zh) | 一种数据文件更新存储方法 | |
US6611902B2 (en) | Information processor and information processing method | |
CN103677869A (zh) | 无线传感器网络节点远程代码更新系统及方法 | |
US11513783B2 (en) | Control apparatus, program update system, and program update method | |
CN103309767A (zh) | 一种客户端日志处理方法和装置 | |
CN108415718B (zh) | 一种应用于星载软件在线更新的BootLoader设计方法 | |
KR20090019819A (ko) | 시행착오에 의한 에러 보정 디코딩 | |
EP0633668B1 (en) | Data compression apparatus | |
CN104364765A (zh) | 分布式数据存储系统中的数据存储和维护的方法以及对应设备 | |
CN113271139A (zh) | 一种星载fpga软件在轨重构方法 | |
US8108762B2 (en) | Operating method and circuit for low density parity check (LDPC) decoder | |
US8782328B2 (en) | Method for transmitting program codes to a memory of a control device, particularly for motor vehicles | |
CN103279397B (zh) | 一种星载延时指令全部保存与恢复的实现方法 | |
CN104144179A (zh) | Onu设备的升级系统及方法 | |
TWI288349B (en) | Apparatus and method for dynamic program decompression | |
US9274900B2 (en) | Method and apparatus for updating firmware | |
CN112379887A (zh) | 一种flink state状态迁移方案 | |
Evans et al. | Implementing the New CCSDS Housekeeping Data Compression Standard 124.0-B-1 (based on POCKET+) on OPS-SAT-1 | |
CN102752312B (zh) | 一种批量解压缩swf文件的方法 | |
US11190206B2 (en) | Compression and decompression of time series data | |
US20040103359A1 (en) | Dynamic real time generation of 3GPP turbo decoder interleaver sequence |
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 |