8.2.2 软件功能设计

8.2.2 软件功能设计

根据星载计算机的功能需求,在现有硬件资源的基础上,完成顶层模块分解和时序划分后,分别开展各功能模块的设计。本节以常用的星载计算机软件功能为例进行说明。

1)加载监控功能

由于宇宙空间存在高能粒子辐射,为了确保程序存储的可靠性,通常将程序目标码存储在可靠性较高的存储介质中,如PROM、EEPROM、Flash等。由于PROM芯片空间较小、价格昂贵,且EEPROM和Flash运行速度较慢,因此,通常只用于存储具备引导高能和最小安全模式的加载监控软件,而主任务程序存储在EEPROM或Flash中,并通过三模冗余备份的方式提示系统的可靠性。

加载监控软件通常主要具备以下功能:

(1)主任务程序搬场。将存储在EEPROM或Flash中的程序三取二后加载到RAM中运行。

(2)主任务程序监控。查看软件复位异常情况,如看门狗咬狗次数等,确认软件程序存储是否出现异常(如三取二失败等)。

(3)安全模式。当主任务程序存储出现异常时,软件进入安全模式,接管整星的基本遥控、遥测、热控和在轨编程等功能,由地面根据相应的情况对软件进行故障检测后,采取相应的补救措施。

2)能源管理

卫星能源是卫星在轨运行的动力,能源安全是卫星在轨长期安全运行的基本保障。星载计算机系统有必要在卫星执行任务前进行能源约束计算,防止卫星能源不足导致任务不能正常执行或卫星处于危险状态,优先保障关键设备的供电安全。

星载计算机软件根据太阳能电池阵发电和蓄电池充放电参数情况,对剩余能源约束进行计算,在计算完毕后向地面反馈能源约束检查结果。在能源约束计算不通过时,自动按照用户优先级和任务优先级对任务进行调整,关闭非必要的能源消耗,或者地面提前判断能源供应异常后,通过直接指令的方式关闭相应的设备。

3)热控处理

由于太空中真空低温环境的原因,需要通过加热器对设备进行加热,使设备工作在一个合适的温度范围;同时又要避免设备过热情况发生,以确保卫星电子设备运行环境的安全。

软件通过读取热敏电阻采集对应的节点温度,根据设定的热控算法,自动进行加热器开关调节。软件可自主对热控回路进行控制,通过获取热敏电阻采集的温度值,与设定的热控阈值进行比较,根据比较结果发送加热器开关控制指令。地面也可以根据卫星下行的温度量遥测参数,进行地面人为干预,启动或关闭相应的加热器,或者调节加热器控制参数。

4)遥测数据采集

通过传感器测量卫星内部各个工程分系统、卫星的姿态、外部空间环境和有效载荷的工作状况,通过无线电方式,将这些参数传到地面站,供地面的科研人员进行分析研究,用来判断卫星的工作状况。遥测是一种用来监督、检查卫星上天后工作状况的唯一手段,也是判断故障部位、原因的唯一措施。

卫星各分系统需要采集的遥测参数包括两类:一类是采集设备通过终端设备硬件接点进行采集的硬件参数,如模拟量、温度量及双电平量等;另一类是采集设备通过串口或总线进行采集的软件参数,如数字量、串口参数和软件参数等。

遥测数据处理系统处理的下行数据主要是国际空间数据系统咨询委员会(CCSDS)标准格式的遥测数据帧,这些数据以数据流的形式发送给遥测数据处理软件。数据处理软件接收到这些数据后进行解包处理,得到最终的遥测参数数据。

由于卫星遥测参数的种类和数据量较多,将遥测参数按遥测参数速率分为固定区遥测和分包区遥测,固定区遥测随每帧遥测下传,分包区遥测源包下传速率可根据参数类别调整。

软件通常周期地采集下行遥测参数,根据遥测速率的不同设置相应的采集和下行周期。星载计算机软件周期的汇总和通过外部接口从各下位机采集的遥测参数,按照协议要求组包,通过FPGA接口传给信道关口处理,最终下行地面。

5)遥控数据分发

地面通过遥控指令控制卫星在轨运行状态,包括正常的业务工作指令和设备控制指令等。如当地面维护人员通过对遥测参数、姿态和轨道参数的研究和分析,发现航天器的轨道、姿态、某个工程分系统或有效载荷工作状况异常或出现故障,判断出故障部位和做出决策,地面向卫星发出有关命令修正轨道和姿态,调整分系统和有效载荷的运行参数。

卫星通过测控天线接收地面站发送的上行载波信号和下行载波信号。应答机解调出上行载波中的遥控副载波,将遥控副载波信号送中心遥控机进行处理。根据执行方式和功能的不同,遥控指令分为直接指令、间接指令、内部指令、注数指令和程控指令等。

(1)直接指令。主要控制卫星上各分系统加断电、开关机、复位等操作,由中心遥控机输出指令脉冲,以直接指令帧形式发送,不经过CPU软件的处理。

(2)间接指令。与直接指令互为备份,间接指令、内部指令和程控(载荷工作方式)指令可在星载数管计算机队列中缓存并按时序执行。

(3)注数指令。以遥控注数帧形式发送,遥控注数帧结构由引导码、地址同步字、方式字、帧数据域和帧差错控制组成。遥控注数的帧数据域部分采用CCSDS规范的遥控源包格式,帧差错控制采用循环冗余(CRC)检错码。

星载计算机软件通过中断响应遥控指令,在收到地面上注的间接指令、内部指令、程控指令等遥控指令后,解析CCSDS规范的遥控源包格式,确定指令的执行设备,然后通过外部接口将指令转发给各机构执行。

6)姿轨控处理

姿态和轨道控制系统(attitude and orbit control system)简称“姿轨控系统”,负责完成卫星姿态和轨道的控制任务,是卫星平台最重要的组成部分,也是整星中最重要的组成部分。作为实现控制功能的主体,姿轨控软件是整个姿轨控系统的核心。

姿轨控软件的主要功能是完成卫星姿态和轨道的控制,为卫星应用系统提供高精度和高可靠度的平台。卫星姿轨控软件功能通常包含敏感器数据采集处理、姿态计算、姿态机动控制、轨道计算、轨道控制、执行机构指令处理、电池阵驱动机构控制、软件状态监控、遥测遥控数据处理、系统故障诊断与重构与数管软件通信等。姿轨控软件组成如图8- 3所示。

图8-3 姿轨控软件组成示意图

7)时钟管理

随着卫星载荷功能、性能的不断提升,系统对时间精度和稳定度的要求越来越高,特别是GEO发射-LEO接收的双基地合成孔径雷达(SAR),对时间要求更为严格。

星载计算机主机通常需要产生和维护平台统一时钟,周期性地通过总线广播给各终端使用。由于晶振时钟的准确度和稳定度有限,长期积累后容易产生时钟偏差,因而需要时钟校正维护,控制误差在一定范围内。

目前,卫星星上时钟维护有授时和校时两种常用方式。授时有遥控授时和导航授时,是读取外部完整时间格式作为星上系统时钟的基点,仅在地面测试或在轨飞行中系统时钟切换、复位等非正常时操作。

校时有集中校时、均匀校时、GPS总线校时和GPS秒脉冲校时等方法。集中校时是指当星地时差超过限定范围由地面测控系统对星上注入时差值进行校时。均匀校时是指地面遥测根据时钟漂移规律,计算星上时钟变化率,周期性地进行一定补偿。GPS总线校时是指利用总线用户广播的时间,对星上时钟进行校时修正。GPS秒脉冲校时是指利用GPS秒脉冲信号,对星上时钟进行校时修正。

8)健康管理

由于卫星在大部分飞行时间内属于地面不可见状态,如果卫星在轨出现问题且不能自主恢复,那么只能等到入境时才能发现。等待地面诊断、确定处理措施、实施操作、观察效果直到故障排除,往往需要多轨的时间才能完全解决。

20世纪90年代,资源一号卫星首次采用基于计算机系统的自主健康管理设计,具备了一定的自主故障检测及重构能力。国内航天器经过30余年的发展,已经从原来单一的由各分系统(如电源、控制、推进系统、数管等)配置的故障诊断系统,向系统级状态监测、故障预测和故障修复发展,逐步形成航天器集成健康管理系统,从保障任务完成的系统顶层实现对航天器的故障综合检测与重构。近年来,星载计算机运算能力的大幅提升使得各分系统的数据处理和管理能力得到较大提高,这为星上数据自主管理的智能化提供了良好的硬件基础。此外,随着遥感卫星任务能力的大幅提升带来的卫星系统复杂性的增加,以及对于卫星“一重故障保业务连续、二重故障保航天器安全”的目标要求,对卫星自主健康管理能力的要求也提升到新的高度。

卫星自主健康管理的工作内容主要包括以下几个部分:

(1)健康管理参数配置及开关设置。各项健康管理功能的阈值、判决时长、判决逻辑和当班机等参数均存储在健康管理参数配置表中,并可通过地面上注修改;所有健康管理功能均各自独立并可由地面进行使能禁止控制。

(2)健康数据生成。数管软件汇集采集的硬通道遥测和各下位机传输的遥测并进行判断,当遥测不满足判读条件时生成对应的健康事件报告,同时生成反映卫星工作状态的健康字遥测。

(3)故障诊断与自主管理。由数管软件依据健康遥测自主判读结果进行故障的识别、诊断,并在地面使能的条件下,对明确处置措施且处置措施无风险的故障进行自主处理,并形成对应的事件报告。

(4)健康数据下传。将形成的卫星健康状态字、事件报告进行汇总,在通过实时信道立即下传的同时放入存储遥测中。卫星入境后,用最短的时间完成存储的健康数据下传。

9)容错设计

考虑卫星在轨运行的复杂空间环境和长期在轨运行不可维护性,星载计算机软件作为整星的控制核心,需要采取必要的容错设计措施保障系统长期在轨运行的稳定性。目前主要的软件容错设计包括如下:

(1)错误检测与纠正(error detection and correction,EDAC)设计。在空间电磁环境比较恶劣的情况下,一些大规模集成电路常常会受到干扰,导致不能正常工作。特别是像RAM这种利用双稳态进行存储的器件,往往会在强干扰下发生翻转,使原来存储逻辑发生翻转跳变,可能导致控制程序跑飞、存储的关键数据出错等。

可以采用EDAC电路来有效地减少或避免上述情况的出现。根据检错、纠错的原理,主要思想是在数据写入时,根据写入的数据生成一定位数的校验码,与相应的数据一起保存起来;当数据读出时,同时也将校验码读出,进行判决。如果数据出现一位错误则自动纠正,将正确的数据送出,同时将改正以后的数据回写覆盖原来错误的数据;如果数据出现两位错误则产生中断报告,通知CPU进行异常处理。

目前主流的星载计算机处理器均自带EDAC功能。软件在系统初始化时,须设置并启用EDAC纠错功能,并设计相应的异常处理函数,对EDAC一位错误和多位错误异常进行处理。对于处理器不具备EDAC功能的数据存储器,通常采用FPGA设计相应的EDAC纠错功能。在这种情况下,由于出现一位错误时FPGA自动纠正且缺乏通知CPU的机制,因此通常需要软件在背景任务中自主刷新维护,避免出现多位错误累计。

(2)在轨编程设计。软件在轨编程功能是用于卫星缺陷修复、功能变更和扩展、实现系统重构容错最重要的手段。在轨编程通常分为全局在轨编程、局部在轨编程和指定任意数据存储位置在轨编程。全局在轨编程即完成的执行程序镜像替换;局部在轨编程即函数模块在轨编程;指定任意数据存储位置在轨编程即指定任意数据存储地址数据内容修改。

①全局在轨编程。当程序存储出现大面积错误或者需要完整的重构时,可以采用全局在轨编程的方式进行替换。通过遥控的方式将新的执行程序镜像上注到内存中运行并确认无误后,写入指定的程序存储介质中,并由遥控指令指定使用新上注的程序运行。

②局部在轨编程。当发现个别函数出现错误时,地面可以通过局部在轨编程的方式进行函数修复。为了确保原始出厂版本程序存储的可靠性,局部在轨编程时通常不对原始程序存储进行修改,而是采用修改RAM后跳转的方式执行。具体步骤为:将上注的函数目标代码存储在内存中;修改函数入口程序,跳转到新上注的函数入口处执行;确认无误后,将其写入在轨编程专用的程序存储区;当系统发生复位后,地面可以指定采用原始的出厂版本,或者采用在轨编程的函数版本运行。

③指定任意数据存储位置在轨编程。当出现个别存储或程序参数错误时,可以通过指定任意数据存储位置在轨编程的方式修复。在执行时需要特别注意的是,指定任意数据存储位置在轨编程时,当前修复的数据或程序不能被Cache缓存,否则可能出现Cache异常。

10)星箭分离处理

通常卫星发射前在地面就会提前加电运行,但其他设备通常保持关机状态,因此在发射入轨前(包括发射过程中),星载计算机软件只做一些简单的数据处理。在发射入轨收到星箭分离信号后,星载计算机软件才正式进入在轨运行模式,首先执行太阳能电池阵帆板展开及对日定向、卫星姿态和轨道调整、各下位机与载荷单机依次开机等流程。

星载计算机通常采用GPIO电平信号的方式通知软件星箭分离状态,由于星箭分离信号为安全关键参数,因此需要采取防抖动、三模冗余等可靠性措施。同时,为了避免星箭分离信号在发射过程中由于火箭抖动误触发,通常软件还需要结合发射过程时间等多种信息综合判断当前是否真正触发了星箭分离信号,例如,必须同时满足星箭分离信号有效并且发射时刻的若干时间后才执行星箭分离信号后续流程,或者收到星箭分离信号之后延迟若干时间执行,或者加电运行若干时间后若尚未收到星箭分离信号则强制执行等。