兰天,朱玛,彭松,陈百超,贾阳
北京空间飞行器总体设计部,北京 100094
中国深空探测始于嫦娥工程,通过嫦娥一号到嫦娥五号任务,相继突破了地月系轨道设计、测控数传、月面软着陆、月面巡视探测、月面无人自动采样返回等一系列关键技术[1-2]。通过天问一号探测器开展首次火星探测,在一次任务中同时实现对火星的“绕、落、巡”,中国成功将探测领域拓展到行星际空间[3-5]。目前,祝融号火星车已成功完成了预定探测目标,正在稳步实施后续拓展任务。
火星与地球间单向光行时最长达23min,且在任务期间存在日凌/凌日天文现象,地月系航天器准实时遥控备保程控的操控模式无法应用于火星任务。天问一号由环绕器、着陆器和祝融号火星车等三部分组成,环绕器为着陆器和火星车提供进入、下降、着陆(entry,descent and landing,EDL)过程和火面巡视探测的中继服务[6]。在单个通信弧段的中继数据量上,天问一号探测器的水平已能与欧美匹敌,但由于尚不具备类似美国的火星中继网络(Mars relay network,MRN)[7-8],任务过程中的整体中继数据量仍明显受限。
由于火星与太阳距离远、火面沙尘天气等因素,火面太阳光强在最优情况下也不超过地球轨道光强的43%。且由于质量限制,祝融号火星车太阳翼尺寸、蓄电池容量相对有限。在火面实施巡视任务的过程中,火星车内除系统管理单元(system management unit,SMU)长期加电工作外,其他设备均为短期加电。在某些极端工况下,如重度沙尘天气,火星车会将全部设备断电,自主进入休眠状态。为在少量的测控支持和严酷的环境下确保着陆、巡视等关键任务的成功,实现火星车的可靠生存和高效探测,需要火星车能够自主实现环境感知、路径规划、科学探测、故障诊断等功能,成为具备强大的自主运行控制能力的火星移动智能体[9-11]。由于需要进行复杂、多样的自主运行控制,祝融号火星车需要具备比以往地月系探测器更强的重要数据保存、恢复能力。
航天器重要数据通常包括器上时间[12-16]、延时指令序列[17-18]和系统配置参数[19-20]等。针对重要数据的保护,需结合飞行任务特点,从保存、恢复两个维度进行设计。地月系探测器在任务过程中能够得到多弧段、低延时、高速率的测控支持,因此可适度缩小其重要数据总量,在发生故障时依靠地面遥控恢复器上状态。同时,由于能源充裕,此类航天器能够支持内部信息网络上多台智能设备长期并行工作,因此重要数据保护一般优先采用基于信息网络的分布式重要数据保护架构[16-20]。
和上述航天器相比,祝融号火星车的重要数据保护设计需要解决两个新问题:一是由于能源平衡的约束,能够长期加电且具备重要数据保护能力的设备只有SMU,SMU在发生复位、切机时需依靠自身恢复器上时间;二是由于测控条件的约束,SMU需要通过有限的存储资源,在保存数据量确定的系统配置参数的同时,尽可能多地保存延时指令,为地面飞控提供更大的灵活性。
本文首先从空间独立性、时间独立性方面对航天器重要数据保护的设计要点进行了分析。在此基础上,从祝融号火星车重要数据保存、恢复的实际需要出发,建立了一种分布式与集中式相结合的重要数据保护架构。在SMU集中存储整车重要数据,SMU以外的其他设备需要保存、恢复重要数据时,由SMU通过器内信息网络向其提供服务。同时,SMU不再依赖其他设备,而是通过SMU内部存储资源保存、恢复自身重要数据。针对器上时间恢复需要,提出了一种基于多重备份的器上时间保护方法。通过调节时间备份数量和时间保存周期,实现了低消耗、高可靠、误差可控的器上时间自恢复。针对延时指令保护数据量优化需求,提出了一种基于公用存储区复用的重要数据保护方法,按照数据相关性将重要数据分组,为各组重要数据分配专用存储区,各组重要数据间复用公用存储区,在保证任意时刻发生复位、切机后各组数据都有至少一份完整可用数据备份的同时,有效提升了延时指令存储能力。通过上述设计,在祝融号火星车上实现了高效、可靠的重要数据保护,为火星车在火面的长期可靠生存和高效科学探测提供了有力支撑。
火星车的自主运行控制依赖于其内部的智能化电子设备。在电子设备判定自身不能继续正常运行时,需通过切机、复位、加断电等手段进行主动故障干预,以恢复正常运行状态。同时,电子设备还存在因外因,如母线电压波动,导致被动重启的可能。为保证航天器业务连续性,即在启动后延续启动前的工作状态,需将业务所需数据作为重要数据,在电子设备运行过程中进行动态保存,在电子设备重启时依据备份数据恢复工作状态。
为在重要数据恢复时至少有一份完整可用的数据备份,考虑到设备外部故障打断重要数据保存过程的可能,需在重要数据保护设计中确保各个重要数据备份的空间独立性和时间独立性。空间独立性是指各份重要数据存储在相互独立的空间,不会因其中某一个存储空间的异常导致其他备份连带受损。时间独立性是指需保证在时序上串行的刷新不同重要数据备份,以避免因保存过程异常中断导致多个备份同时受损。在中国地月系航天器的重要数据保护设计中,一般将重要数据经器内信息网络保存到多个不同设备,并在同一时间仅维护特定的数据备份,确保了各份重要数据的空间独立性和时间独立性。
祝融号火星车内信息网络组织结构如图1所示。
图1 祝融号火星车器内信息网络组成示意
从图1中可见,祝融号火星车器内信息网络由一条一级总线和三条二级总线组成,巡视器控制总线为一级总线,机构控制总线、载荷控制总线和巡视器感知总线为二级总线。SMU与载荷管理单元(payload management unit,PMU)、导航控制单元(guidance navigation control computer,GNCC)及测控通信单元挂接在一级总线上,由SMU实施总线控制。SMU通过机构控制总线实现对双轴定向天线、太阳翼、感知桅杆和车体移动的驱动控制;PMU通过载荷控制总线实现对各载荷的控制;GNCC通过感知总线实现对各相机的控制。
受限于火面能源约束,火星车信息网络内的各设备除SMU长期加电工作外,其他设备均按照任务规划短时加电工作,分时实现探测、感知、移动、通信等动作。在极端情况下,如重度沙尘天气,SMU还会根据能源预警自主进入休眠状态,等待光照好转后再次唤醒工作。针对这一特点,设计由SMU通过巡视器控制总线为GNCC、PMU提供重要数据保护;同时,SMU不依赖GNCC、PMU,而是通过内部存储资源实现自身重要数据保护。
目前在航天器上广泛应用的存储芯片主要有闪存(Flash)存储器和磁阻式随机存取存储器(magneto resistive random access memory,MRAM)2大类。Flash存储器容量较大,适用于大量数据的存储,但存在写入次数的限制。MRAM是一种以磁电阻性质来存储数据的随机存储器,具有非挥发性、随机存储、高读写速度、耗电量低、最小芯片面积、可以无限擦写等各种优良特性,具有极高的可靠性。考虑到SMU负责保存的重要数据(尤其是器上时间)变化频率快,选择采用两片存储容量为8192byte的MRAM芯片作为实施重要数据保护的存储器件,两个芯片相互独立、互为备份。
在该架构下,火星车重要数据保护设计需要解决的关键问题是如何基于MRAM实现器上时间和延时指令的可靠、高效保护。
针对基于MRAM实现器上时间自恢复的需要,设计了一种基于多重备份的器上时间保护方法,其备份与恢复过程如图2所示。
图2 火星车器上时间的备份与恢复过程
如图2所示,Tsave是器上时间备份周期,Tbreak是复位、切机时刻;TLastSave是复位、切机发生前最近一次器上时间保存完成时刻;Trecovery是软件启动后开始恢复器上时间的时刻;Tstart是从复位、切机事件到开始器上时间恢复动作的时间间隔。
火星车在正常工作时按照Tsave周期刷新MRAM中的N个器上时间备份,按照备份1~备份N的顺序从前向后顺次写入。在SMU复位、切机后依靠这些时间备份完成时间恢复。之所以需要多个时间备份,是因为在恢复时间时,不仅要确认时间数据格式的正确性,还需确认该数据的完整性,而这可以通过备份间的相互印证来实现。
在上述过程中,火星车器上时间恢复的误差为
terror=Tstart+(Tbreak-TLastSave)
(1)
式中:terror为SMU器上时间恢复误差,它是由于在SMU复位、切机时没有可靠的外部时间参考源而产生的。该误差分为两部分:一是软件启动耗时Tstart,二是复位、切机发生时刻与上一次器上时间保存时刻间的时间波动(Tbreak-TLastSave)。
第一部分误差Tstart可修正,通过地面测量获得初始化各分支耗时并固化在软件中,软件在初始化过程中于各逻辑分支点设标志,在器上时间恢复时根据标志计算实际耗时。由于复位、切机时刻随机,第二部分误差(Tbreak-TLastSave)无法修正,但可通过调整器上时间备份周期Tsave对其误差范围进行控制。综合考虑祝融号火星车各项功能需要,将器上时间备份周期Tsave设定为1s。
在通过上述误差调节手段控制器上时间恢复误差的同时,还需通过多个时间备份间的比较来确认所使用的器上时间备份的有效性,基于多重备份的有效性确认流程如图3所示。
图3 基于多重备份的时间备份有效性确认流程
如图3所示,软件按照器上时间备份的保存顺序,首先从主份MRAM中读出所有器上时间备份,并从前向后逐份比对相邻两份时间备份是否一致,若一致则通过该时间备份完成时间恢复。若主份MRAM中所有相邻的时间备份都不一致,则再次尝试依靠备份MRAM中时间备份恢复时间。若从主份、备份MRAM中恢复时间都失败,则维持当前时间不变,并针对时间恢复失败进行相应的故障处置。
在时间保存过程中发生SMU复位、切机时,会导致多个时间备份中的某份处于半新半旧状态,当两个相邻备份内容一致时,这两个备份必然都为完整的时间备份,而在一个MRAM中,由写入顺序可保证较新的时间备份在前,较旧的时间备份在后。
该方法对时间备份有效性的识别能力与时间备份数量的取值有关,对4备份情况下时间保存恢复情况进行分析,如图4所示。
图4 在不同时刻打断4备份时间保存对时间恢复的影响
如图4所示,软件在保存时连续向相应存储位置写入4个器上时间备份。TA至TI对应保存过程中可能发生复位、切机的不同时刻。TA、TI为时间保护操作开始前和结束后的某时刻;TC、TE和TG分别为备份1、2、3的保存完成时刻;TB、TD、TF和TH分别为备份1、2、3、4保存过程中的某时刻。对各时刻发生打断对时间备份有效性的影响分析如下:
1)在TA时刻打断时,4个备份均为完整旧备份,软件启动后可恢复到较早时间;
2)在TB、TC时刻打断时,备份1与后3个备份不同,软件可根据备份2、3将时间恢复为较早时间;
3)在TD时刻打断时,备份1(新)、2(半新半旧)、3(旧)各不相同,软件可根据备份3、4将时间恢复为较早时间;
4)在TE、TF、TG、TH、TI时刻打断时,备份1、2已更新为新的状态,软件可将时间恢复为较新时间。
可见,以4备份方式保存器上时间,在任意时刻发生打断时,软件都能在启动后正常恢复到与实际时间相近的状态。通过上述分析亦可知在N取值为1、2、3时,都存在因异常中断而无法找到内容一致的相邻备份,进而影响正常恢复器上时间的可能。因此,时间备份数量N的取值应为不小于4的正整数。
考虑MRAM器件部分损坏导致备份中有1份无法正确保存时间的可能,进一步对6备份情况下时间保存恢复情况进行分析,如图5所示。
图5 在不同时刻打断6备份时间保存对时间恢复的影响
如图5所示,软件在保存时连续向相应存储位置写入6个器上时间备份。TA至TE对应保存过程中可能发生复位、切机的不同时刻。对6个备份中的任意一个备份因硬件原因失效的场景下,不同时刻发生打断对时间恢复的影响进行分析:
1)在备份1、2、5、6中任意一个失效时,6个备份中皆存在4个连续的有效备份区,根据前述4备份的分析可知,此时在任意时刻发生打断时,均能实现器上时间的正常恢复;
2)在备份3失效时,若打断发生在TA时刻,软件可通过备份1、2恢复为较旧时间;若打断发生在TB、TC、TD时刻,软件可通过备份4、5恢复为较旧时间;若打断发生在TE及以后时刻,软件可通过备份1、2恢复为较新时间;
3)在备份4失效时,若打断发生在TA时刻,软件可通过备份1、2恢复为较旧时间;若打断发生在TB、TC时刻,软件可通过备份2、3恢复为较旧时间;若打断发生在TD时刻,软件可通过备份5、6恢复为较旧时间;若打断发生在TE及以后时刻,软件可通过备份1、2恢复为较新时间。
可见,在4个时间备份的基础上增加时间备份数量N有助于增强对MRAM内局部硬件故障的鲁棒性。备份数量的变化会对器上时间恢复最大时延和存储资源消耗等2个指标有一定影响,且与备份数量成线性关系。由于时间数据量少、比较逻辑简单,采用6备份与4备份相比,重要数据最大恢复时间增加65μs,重要数据存储资源消耗增加12byte。更大的时间备份数量虽可获得更高的鲁棒性,但考虑到SMU上2片MRAM同时出现故障的概率极小,因此在祝融号火星车上选择时间备份数量为6份。
火星车SMU内的两片MRAM互为备份关系,每片MRAM的存储容量为8192byte。其中部分空间用于存储器上时间备份、引导信息等数据,实际重要数据可用空间为7960byte。在这有限的空间内,火星车需要在保存长度为2560byte的系统配置参数(含GNCC、PMU重要数据)的同时,实现对延时指令的重要数据保护。若采用传统的双重备份方式,能用于存储延时指令的空间仅有1414byte(去掉6byte格式开销)。
祝融号火星车在落火初期生存状态建立过程中的备保状态设置和在火面巡视过程中的探测任务都需要以延时指令方式上注,SMU在复位、切机后能够恢复的延时指令数据量直接影响火星车的运行安全和探测效率。为提升延时指令重要数据保护能力,提出了一种专用存储区与公用存储区相结合的重要数据保护方法。
首先,统筹考虑数据量、数据刷新率和存储资源限制,将重要数据按照相关性分为多个组。在存储空间内为每组重要数据分配一个专用存储区,为所有重要数据设置公用存储区。在重要数据保存时,通过“先公用区、后专用区”的写入时序,确保在任意时刻发生复位、切机后各组重要数据的公用区和专用区内都有至少一份完整可用备份,如图6所示。
图6 基于存储区复用的MRAM空间分配
从图6中可见,软件将一片MRAM划分为1个公用区和M个专用区。以组为单位保存重要数据,每组重要数据都包括数据标识、数据长度和校验3部分格式,每项2byte,共6byte。对重要数据分组时,需将具有相关性的重要数据分在同组中,以确保重要数据恢复后的软件工作状态不存在逻辑冲突。各组重要数据彼此间的数据标识相互独立,可通过数据标识识别重要数据。组内数据长度可变,但总数据量不可超出相应存储区的数据容量。公用区与专用区数据容量的关系约束为
(2)
式中:SC为公用区数据容量;SP(i)为第i个专用区的数据容量,i={1,2,3,…,M}。在设计时,应确保专用区最大数据容量不大于公用区数据容量。数据存储空间的使用效率为
(3)
式中:R为重要数据存储空间使用效率。由于公用区数据容量等于各个专用区容量的最大值,因此基于存储区复用的重要数据保护方法对存储空间的使用效率不会低于50 %(双重备份方式的存储效率)。
在存储空间紧张时,可细分重要数据项以降低专用区最大存储容量需求,进而控制公用区的尺寸以提升存储空间使用效率。在祝融号火星车上应用此方法时,以提升延时指令存储空间为目标,因此设计公用区的数据容量为
(4)
式中:SMRAM为单片MRAM中重要数据可用存储空间;Sconfig为除延时指令外火星车其他重要数据的总数据量,根据计算将火星车公用区设为2700byte,刨除6字节格式开销,能够保存最大长度为2694byte的延时指令。由于火星车重要数据总数据量小于2700byte,因此将除延时指令外的重要数据划分为几份不会影响延时指令最大存储能力。
综合考虑数据的逻辑相关性,将火星车的重要数据分为4组定长度重要数据:系统综合重要数据(含GNCC、PMU重要数据)、自主热控重要数据、步进电机重要数据和移动装置重要数据。
在保存时,先存重要数据,后存延时指令,软件在时间线上逐个分组实施动作,如图7所示。
图7 重要数据保存过程
从图7中可见,软件在保存某组重要数据时,要按照“先公用区、后专用区”的顺序向MRAM写入重要数据。与此对应,在恢复重要数据时也要按照“先公用区、后专用区”的顺序从MRAM恢复重要数据。
由于公用区中同一时刻最多仅能存储一份完整的重要数据或延时指令备份,因此在恢复重要数据时,首先读取公共区的数据标识,判断是否为当前想要获取的重要数据。若数据标识匹配,进一步按照长度读出完整数据并检查校验;若数据标识不匹配,则跳至该数据的专用区再次尝试恢复重要数据。当从公用区、专用区恢复重要数据的尝试都失败时,使用相应数据对应的默认值。
在重要数据保存过程中,设备的复位、切机、加断电会造成某个重要数据备份处于半新半旧状态。以第i组重要数据为例,对此过程中重要数据备份有效性变化进行分析,如图8所示。
图8 不同时刻打断重要数据保存对重要数据恢复的影响
从图8中可见,TA、TB、TC、TD、TE为复位、切机、加断电等动作可能发生的时间点。其中,TA、TE分别为第i组重要数据保存动作过程前、后某时刻,TC为向公共区写入动作完成后、未开始向专用区写入动作的时刻,TB、TD分别为向公用区、专用区写入重要数据过程中的某时刻。按照时间顺序,公用区、专用区内数据内容变化如下:
1)在TA时刻,第i组数据向公用区写入开始前,公用区内为其他数据,专用区i中为第i组数据的旧状态;
2)在TB时刻,第i组数据向公用区写入过程中,公用区内数据从前向后被第i组数据的新状态覆盖,专用区i中为第i组数据的旧状态;
3)在TC时刻,第i组数据向公用区写入完成时刻,公用区内为第i组数据完整的新状态,专用区i内为第i组数据的旧状态;
4)在TD时刻,第i组数据向专用区i写入过程中,专用区内数据从前向后被第i组数据新状态覆盖,公用区内为第i组数据的新状态;
5)在TE时刻,第i组数据向专用区i写入完成时刻,公用区、专用区i内存储的都是第i组数据的新状态;
6)随着后续数据的写入,公用区内容被其他数据覆盖,专用区i内保持第i组数据的新状态不变。
当外部异常打断发生在TA、TC、TE等时刻时,软件复位后皆可以从公共区或专用区恢复第i组重要数据;当外部异常打断发生在TB时刻时,可从专用区恢复第i组重要数据;当外部异常打断发生在TD时刻时,可从公用区恢复第i组重要数据。
可见,基于公用存储区复用的重要数据保护方法可确保设备在任意时刻发生复位、切机、加断电时,再次启动后皆能成功恢复重要数据。
基于祝融号火星车SMU的软、硬件支持,采用基于多重备份的器上时间保护方法和基于公用存储区复用的重要数据保护方法,实现了分布式与集中式相结合的重要数据保护架构。在单片MRAM内,设置6个器上时间备份,时间保存周期设为1s。将重要数据拆分为5个数据组,并为其建立5个专用区和1个公用区:系统综合重要数据专用区占用1024byte,自主热控重要数据专用区占用512byte,步进电机重要数据专用区占用512byte,移动装置重要数据专用区占用512byte,延时指令序列专用区占用2700byte,公用区占用2700byte。
根据火星车硬件实际情况对全数字仿真平台进行配置,在其上模拟硬件故障,以验证所提方法对器上时间和重要数据的保护效果[21]。基于全数字平台的器上时间保护的测试结果如表1所示。
表1 器上时间保护方法应用效果
在测试过程中,模拟了无硬件异常、仅单个时间备份失效、仅单片MRAM失效、单片MRAM失效且正常的MRAM中有单个时间备份失效等共4类工况。在每类工况下重复进行500次测试,随机复位以在不同时间点打断器上时间保存过程。经测试,在这4类工况下,本文所提的器上时间保护方法均能成功恢复器上时间,时间恢复误差在0.13s~0.91s之间。需要说明的是,最大时间恢复误差难以在随机测试中测得,需要通过在时间保存时刻增加复位操作的特殊版本测试程序进行测试。经测试,极端工况下基于多重备份的器上时间保护方法的最大恢复时间误差为1s,等于时间保存周期,符合预期。
在进行表1中器上时间恢复测试的同时,并行开展了重要数据恢复的测试,测试结果如表2所示。
表2 重要数据保护方法应用效果
经测试,基于公用存储区复用的重要数据保护方法每次均能成功恢复重要数据,结果符合预期。
将本文提出的重要数据保护方法与双重备份方法的实施效果进行了比较,结果如表3所示。
表3 本方法与双重备份方法的重要数据保护效果比较
从表3中第1、3行可见,在相同的MRAM空间限制下,基于公用存储区复用的重要数据保护方法在实现与双重备份方法相同的重要数据保护效果的同时,将延时指令最大存储容量从双重备份方法的1414byte提升到2694byte,增加了1280byte,存储能力上升90.5 %,存储空间利用效率从双重备份方法的50 %提升到了66 %。由于延时指令恢复数据量的增加,本文所提方法的重要数据恢复时间有相应增加。
从表3中第2、3行可见,双重备份方法要实现与基于公用存储区复用的重要数据保护方法相同的保护能力,需要MRAM提供额外的2560byte的空间支持,且此时两种方法的重要数据恢复时间相当。
在上述测试基础上,在天问一号探测器的真实硬件环境下,通过故障模飞验证了火星车重要数据保护功能。经测试,在各种故障工况下SMU、GNCC、PMU等设备均能正常恢复重要数据和器上时间,验证了分布式与集中式相结合的重要数据保护架构为祝融号火星车提供业务延续性保障的能力。
针对祝融号火星车的业务连续性保障需要,设计了一种分布式与集中式相结合的重要数据保护架构。在该架构基础上,针对在SMU独立工作时的器上时间保护与重要数据保护问题,分别设计了相应的数据保护方法。
针对器上时间数据量小、占用空间少的特点,提出了基于多重备份的器上时间保护方法。通过调节备份数量和备份周期,可实现在任意一个时间备份对应的存储区失效且器上时间保存过程在任意时刻被打断后,软件启动时均能恢复到误差可控的器上时间。
针对在有限存储空间约束下提升延时指令存储能力的需要,提出了基于公用存储区复用的重要数据保护方法。通过设置公用存储区并控制重要数据保存、恢复顺序,确保任意重要数据项在保存过程中任意时刻被打断后,软件均能在存储区内检索到该数据项的完整可用备份。
上述方法在火面测控、能源双重约束下可靠、高效地保障了祝融号火星车的业务延续性,可为后续面临类似约束条件的星球表面探测器、行星际探测器的信息系统设计、软件设计提供参考。