蘭天,朱瑪,彭松,陳百超,賈陽
北京空間飛行器總體設計部,北京 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備份方式保存器上時間,在任意時刻發生打斷時,軟件都能在啟動后正?;謴偷脚c實際時間相近的狀態。通過上述分析亦可知在N取值為1、2、3時,都存在因異常中斷而無法找到內容一致的相鄰備份,進而影響正?;謴推魃蠒r間的可能。因此,時間備份數量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獨立工作時的器上時間保護與重要數據保護問題,分別設計了相應的數據保護方法。
針對器上時間數據量小、占用空間少的特點,提出了基于多重備份的器上時間保護方法。通過調節備份數量和備份周期,可實現在任意一個時間備份對應的存儲區失效且器上時間保存過程在任意時刻被打斷后,軟件啟動時均能恢復到誤差可控的器上時間。
針對在有限存儲空間約束下提升延時指令存儲能力的需要,提出了基于公用存儲區復用的重要數據保護方法。通過設置公用存儲區并控制重要數據保存、恢復順序,確保任意重要數據項在保存過程中任意時刻被打斷后,軟件均能在存儲區內檢索到該數據項的完整可用備份。
上述方法在火面測控、能源雙重約束下可靠、高效地保障了祝融號火星車的業務延續性,可為后續面臨類似約束條件的星球表面探測器、行星際探測器的信息系統設計、軟件設計提供參考。