更全的杂志信息网

一种基于文件的嵌入式星载软件在轨升级方法

更新时间:2016-07-05

引 言

随着航天器寿命的增长和任务难度的加大,星载软件的复杂度越来越高,需要具备在轨重构和更新能力,以应对可能出现的任务扩展和软件潜在缺陷[1]。星载软件在轨维护是指地球站对航天器在轨飞行过程中所碰到的困难,包括飞行软件在飞行过程中暴露缺陷的纠正。

星载软件通常固化在只读存储器中,只具备有限的RAM区数据在轨维护能力[2],部分高轨长寿命航天器设计了独立在轨维护模式[3],在处理器8位模式下,将上注的新程序写到RAM区实现软件整体升级维护。由于只能在RAM区进行数据更改,以上在轨维护方法存在掉电丢失的问题,并且在软件整体升级过程中,星载系统处于在轨维护模式,不具备整星服务功能,存在潜在风险。

为实现星载软件持久化的在轨维护,需要使用在线可编程器件,常用的有EEPROM和FLASH。参考文献[4]提出了在可编程存储器条件下基于VxWorks操作系统的在轨维护方案,可实现VxWorks下的目标码持久化维护,但不具有通用性。参考文献[5]提出了基于增量链接的星载软件在轨更新方法,可实现通用系统下星载软件的在轨维护操作,对空间环境中存储器异常状态下软件升级问题以及星载软件配置数据重构问题缺少考虑。

本文分析了近年来星载软件在轨维护案例,提出了一种基于文件系统的星载软件在轨维护方法,实现软件映像可靠存储、程序和配置数据分离、软件整体升级可回退以及程序局部维护持久化,为长寿命航天器软件在轨维护策略提供了参考。

对模型进行模拟计算,可得在设计极限荷载和锚杆预拉力作用下基础各部位受力及位移变形情况,锚杆等效应力及竖向位移图、高强灌浆层第一主应力及第三主应力云图、基础混凝土第一主应力及第三主应力云图如图5—图10所示。根据应力分布云图,可以得到高强灌浆层下部附近区域、下锚板上、下部附近区域等应力,相应区域混凝土第一主应力变化曲线如图11—图13所示。

1 星载软件在轨维护特点分析

针对星载软件在轨维护特点,提出了基于文件系统的星载软件在轨维护方法。如图1所示,星载软件系统由引导软件、文件系统、应用软件映像文件、配置数据文件和补丁文件组成。其中应用软件、配置数据文件和补丁文件存在文件系统中。在此软件结构划分下,星载软件在轨维护分为软件整体升级、配置数据重构和程序局部维护三类。

根据所选传感器的工作特点,通过调节果园红外测温系统与被测物体的距离,本系统可以测量果园内环境温度、树冠层温度、树叶温度和果实温度等。在上位机用Visual C++工具编写监控软件,对被测物体进行长时间监控,并存储和分析相关数据。

引导软件映像直接存储在存储器中,系统上电后最先运行,完成系统初始化,加载文件系统,从文件系统中读取引导配置项,选择加载的应用软件映像,加载执行补丁文件,完成应用软件的启动。

表1 星载软件在轨维护案例

序 号维护原因维护内容补丁数量圈次需求1载荷参数优化数据2012提高平台可靠性代码2013载荷参数优化数据514故障处理整体40555故障处理数据41

通过上表可以看出,星载软件在轨维护的原因主要是设备参数调试优化和故障处理;软件配置数据的更改占据在轨维护的大部分项目;多数在轨维护的补丁较少,能在一次地面站测控区内完成,但软件整体维护的补丁较多,需要多次地面站测控上注。

2 基于文件系统的在轨维护方法

2.1 软件结构划分

不同于一般的地面系统软件,星载软件在轨维护具有较多的条件限制:星地测控时段短,通信速率小,要求在轨维护必须在有限的时间内完成;空间环境复杂,星载软件可靠性要求高,需要应对可编程存储器部分存储单元数据反转或失效的风险;关键星载软件负责整星平台热控、电源等关键业务,要减少在轨维护期间系统服务的停止时间,维护失败时应能及时回退到以前的版本。

图1 基于文件系统的星载软件系统结构

表1列出了近年国内遥感卫星数管分系统软件在轨维护的情况。测控圈次需求是依据在轨维护补丁数量和一个圈次内测控站能上注的指令条数计算而得。假设一次地面站测控8 min,每5 m上注一条在轨维护指令。

由于引导软件是系统的入口程序,直接存储在存储器上,没有冗余存储措施,任何存储单元的损坏都会导致系统失效,同时引导软件功能固定,几乎不需要在轨维护,因此引导软件应固化在可靠性高的只读存储器中。

文件系统是存储维护应用软件映像、配置数据和补丁数据的载体。文件系统可屏蔽底层可编程存储器的物理特性,提供高可靠的数据存储和维护服务。

配置数据文件保存了星载软件运行时所需要的参数信息,与星载应用软件程序分开存储管理,需要时不必修改软件逻辑功能,仅通过地面上注手段在轨修改配置数据文件,可实时在航天器正常运行状态下对信息流进行动态重构。

星载软件映像文件是星载软件的主体部分,被引导软件搬移到RAM区运行。星载软件映像一般比较大,采用压缩存储的方式[6],可显著减少在轨维护时上注数据的时间。

补丁文件存储了内存修改指令,在应用软件映像搬移到RAM后,执行内存修改指令可以修改RAM的程序代码,实现局部软件持久化更新。

2.2 文件系统设计

入学教育是一项全面系统的工程,要依靠学校统筹教学资源、协调院系以及相关部门共同参与才能推进,现实情况多是研究生入学教育仅由学生工作部门承担,或者是依托培养院系自行设计完成,学校职能部门、学院系所教师、导师团队、在校学生等均普遍缺乏参与意识,使研究生入学教育越来越被边缘化。而且传统的适应性、集体式的入学教育并不能满足研究生的个体发展需求,无法适应人才培养的需要,需要系所、实验室、科研团队等更多与研究生实际学习生活联系更为紧密的队伍参与到入学教育中来。

ROMFS是只读文件系统,文件以线性结构顺序存储在存储器中,支持目录文件和符号链接,需要更新文件时,只能对整个文件系统进行修改,不符合星载软件在轨维护需要减少数据上注量的要求。

本方法中,所有的在轨维护操作均以修改文件系统中文件的形式实现,因此文件系统的存储结构和可靠性非常重要。常见的嵌入式文件系统包括JFFS2、ROMFS和znFAT等。

Research on Local Natural Gas Power Development and Flexible HVDC Connection with Mainland for Islands YUAN Kanglong,XU Feng,LI Junjie(73)

JFFS2使用日志技术保证了文件在线更新过程中元数据的一致性[7],但是实现复杂,需要在RAM中重新建立文件系统结构本身,挂载时间长,需要的内存资源大,不适合应用在计算资源有限的星载设备系统上。

znFAT是在FAT32 基础上优化的文件系统,znFAT 超级块中不仅记录着存储设备的类型、容量,还包括文件系统的卷标、保留空间、每簇(文件系统存储单位)大小、文件分配表个数和大小等重要参数;文件/目录项用来记录文件和目录的相关信息,类似于“索引”,可以通过信息查询找到数据开始的位置;FAT表记录了所有数据的链表式关系,通过FAT表可以查询到数据存储链表,找到完整的数据。znFAT实现简单,增加了数据校验和三模冗余功能,提高了数据的可靠性[8],适合应用在星载软件系统中。

2.3 星载应用软件整体升级

图2 引导配置文件数据结构

采用文件系统存储管理数据,可在星上存储多份星载应用软件映像,由引导软件根据引导配置文件数据选择加载需要的应用软件映像。星载软件需要进行在轨整体升级时,在原应用软件运行的状态下,接收地面上注的指令,在文件系统中创建保存新的星载软件映像文件,修改引导配置文件,指示引导软件下次启动新版本的软件映像。

星载计算机开始运行后,引导软件读取引导配置文件,获取应用软件引导配置项,选择默认的应用软件版本进行加载。引导配置文件的结构如图2所示,包含默认引导配置项索引和引导配置项列表。每个引导配置项包括需要加载的应用软件映像名称、应用软件映像是否压缩标识、搬移到RAM区地址、搬移后长度、入口地址以及搬移后数据校验和。默认引导配置项索引指示默认加载引导配置项列表中的第几项。

引导软件加载应用程序流程如图3所示。引导软件根据引导配置文件将相应的应用软件映像解压或直接搬运到对应的RAM区,进行数据校验,如果引导软件在搬移应用软件映像后发现校验数据不正确,则选择引导配置列表中前一项尝试进行加载。加载正常后,读取补丁文件,获取需要执行的补丁指令,将补丁数据修改到对应的RAM区,完成应用软件的搬移和修改操作,最后跳到RAM区应用软件入口位置处运行。当所有应用软件校验异常或文件系统加载失败时,引导软件还需要完成基本的遥控遥测功能,从地面接收指令,修改RAM区数据,完成应用软件在RAM中的运行维护,在该模式下与现有的在轨维护操作类似,但只用在存储器严重损坏、文件系统崩溃的极端情况。

图3 引导软件加载应用程序流程

2.4 配置数据重构

配置数据修改是星载软件在轨维护的一项重要内容,通过使用文件系统配置数据与应用程序分离存储。需要时不必修改软件逻辑功能,仅通过地面上注手段在轨修改配置信息文件,可实现在航天器正常运行状态下对信息流进行动态重构。

星载软件初始化时,需要挂载文件系统,通过文件名称获取配置数据内容。对于系统在运行中需要频繁使用的一些配置数据,为避免每次从文件系统中读取数据耗费时间,在内存中申请缓冲区保存从文件中读取的数据,同时可能还需要根据配置数据组织运行时的数据结构。当航天器状态发生变化,需求更新配置参数时,通过上注修改配置数据文件,星载软件运行时使用的数据可能没有更新,需要通过进行局部的数据初始化完成实时信息重构。当星载软件再次重新运行进行初始化时,使用的配置数据即为新的内容。

设备:不锈钢托盘;不锈钢盆;纱布;蒸锅;烘箱;微波干燥机;不锈钢粉碎机;200目筛;量筒;温度计;电子分析天平,德国赛多利斯;电热恒温干燥箱,陕西欣鹏教育科技有限公司;数控恒温水浴锅,陕西欣鹏教育科技有限公司;真空冷冻干燥机,宁波新芝Scientz-18ND;手动压片机,上海有建电子科技有限公司 。

2.5 程序局部维护

传统的在轨维护指令在星载软件运行时接收执行,作用范围受限,某些系统初始化过程中一次性执行的代码无法通过该方式修改,并且系统复位重启后需要地面重新上注。本方法采用在引导软件加载应用程序后执行内存修改指令,实现了修改范围的全覆盖以及补丁的持久保存。

为避免软件整体升级上注数据时间过长,采用在程序加载时自动打补丁的方式进行程序局部维护。补丁文件存储了内存修改指令,与传统的在轨维护指令类似[9],用于改写指定内存区的数据。通过在空白区注入新的指令代码,将旧代码区的函数调用引向新代码的方式,实现程序区的局部代码更新。

Android提供了SQLiteDatebase代表了一个数据库,一旦应用程序获得了代表指定数据库的SQLiteDatebase对象,就可以通过该对象来进行管理和操作数据库。

由于补丁是直接修改内存中的代码映像数据,一般针对某个特定的应用软件版本,所以补丁需要与特定的软件版本绑定。当引导软件完成应用软件映像加载后,找到该映像名称对应文件夹下的所有补丁文件执行内存修改操作。

齐齐哈尔大学于春梅教授做了《达斡尔族对我国边疆地区经济开发的贡献》的报告,报告中首先阐述了黑龙江流域上、中游地区以及精奇里江(今结雅河)一带的达斡尔氏族部落对该地区的经济开发,及其与后金、清朝政府联系的加强,继而较为详细地阐述了嫩江流域达斡尔族在农业、畜牧业、副业(如狩猎、放木排、采伐“柳条通”、捕鱼、采药等)、手工业、商业等经济领域所取得的成就。

3 试验验证

基于某遥感型号星载计算机平台测试环境[10],对所提出的星载软件在轨维护方案进行试验,主要针对补丁大小、更新操作执行情况和异常情况进行测试。

3.1 更新操作试验

原始版本应用软件逻辑程序目标代码为150 KB,压缩后为72 KB,配置数据文件大小为10 KB。进行3次修改,分别修改配置数据、程序局部修改和软件映像整体升级。表2显示了软件维护的试验结果,包括修改文件数量、修改内容以及补丁大小。试验结果表明,该方法的维护操作正确,更新结果能持久化保存,配置参数维护和局部维护的补丁数量远小于整体升级的补丁数量,整体升级补丁小于目标码大小。

表2 在轨维护应用试验结果

版 本维护内容修改文件数量补丁/KB更新结果1配置数据12正常1局部代码44正常2软件整体274正常

3.2 软件映像异常情况试验

存储器的数据错误由文件系统进行三模冗余校验纠正,本试验不再验证。试验采用直接修改应用软件映像校验和的方式模拟软件映像文件异常。试验中将应用软件新版本中的校验修改为异常值,复位后引导软件将旧版本的应用软件启动加载,表明在软件更新异常时,系统能够自动回退引导以前版本的应用软件。

根据监控发现疑点下发疑点信息后,各单位的信息反馈是确定是否存在问题的重要判断依据,也是及时解决问题的前提。因此,要进一步完善动态监控疑点信息核查和反馈制度,监控部门要对监控疑点及时整理、及时下达、限时反馈、督促整改;预算单位应认真核查疑点信息反映的情况,真实、完整的反馈信息,对存在的问题立即整改,对体制、机制方面的问题要分析上报。监控部门对反馈信息仍存在质疑的,应采取现场检查等方式进行核查,确保准确反映存在的问题。

结 语

本文提出了一种基于文件系统的星载软件在轨维护方法。该方法将软件的维护操作归结为对文件的更新操作,实现简单,能够完成对星载软件的任意修改更新,避免了软件维护过程中系统服务功能缺失的问题,针对常用的数据重构和程序局部维护,减少了上注数据时间,同时能够在映像存储异常时自动回退到前序版本。本方法高效可行,具有较好的可靠性,可以应用在航天器各种软件系统中。

参考文献

[1] 张然峰,郝贤鹏,金龙旭,等.空间相机软件在轨重注方法研究与实现[J].光机电信息,2011,28(6):30-34.

[2] 何熊文,孙勇.一种卫星数管中心计算机软件的工程实现[J].航天器工程,2007,16(5):47-53.

[3] 刘鑫,韦涌泉,冯国平,等.高分四号卫星数管分系统设计及在轨验证[J].航天器工程,2016,25(增刊1):93-98.

[4] 安军社,刘艳秋,孙辉先.软件的动态维护与实现[J].计算机工程,2003,29(2):238-239.

[5] 汪宏浩,王慧泉,金仲和.基于增量链接的可回滚星载软件在轨更新方法[J].浙江大学学报:工学版,2015,49(4):724-731.

[6] 常为领,云晓春,李超,等.无损压缩算法LZSS的分块性能研究[J].计算机研究与发展,2012(49):165-172.

[7] 顾宝根,顾喜梅.日志结构的嵌入式文件系统研究[J].计算机工程与设计,2004,25(6):915-917.

[8] 贾露娟,李文新,夏加高,等.星载嵌入式容错文件系统的设计与实现[J].计算机技术与发展,2015,25(10):49-53,58.

[9] 何熊文.一种通用遥控注入数据格式的设计与应用[J].航天器工程,2008,17(1):94-99.

[10] 郭坚,付连芳,翟君武.一种星载软件系统测试环境的设计[J].计算机测量与控制,2005,13(5):499-502.

韦涌泉,董振辉,张红军
《单片机与嵌入式系统应用》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号