梁中堅 高振良 胡萍 李渝昕 薛小龍 丁琳
(1北京空間飛行器總體設計部,北京 100094)(2北京遙測技術研究所,北京 100076)(3空間電子信息技術研究院,西安 710100)
硬X射線調制望遠鏡(HXMT)衛(wèi)星實現(xiàn)了對宇宙X射線的探測,其中數(shù)據(jù)存儲系統(tǒng)的主要功能是完成有效載荷和衛(wèi)星平臺數(shù)據(jù)的接收、處理、記錄、存儲以及回放。對于存儲介質,早期的星上存儲設備主要是磁帶機或其它磁存儲器,目前星上存儲設備主要使用靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)和FLASH 器件[1-3]。HXMT衛(wèi)星使用了NAND型FLASH器件作為核心的存儲介質,其主要優(yōu)點是掉電時數(shù)據(jù)不丟失,單片存儲容量大。但其存在讀寫速度較慢,寫數(shù)據(jù)前必須進行擦除操作,不能按字節(jié)操作等問題[4],因此需要合適的系統(tǒng)設計,從前端的數(shù)據(jù)復接編碼到后端的控制存儲等一系列的環(huán)節(jié)保證來解決這些問題。在數(shù)據(jù)的處理、格式編排、編碼、控制存儲等操作上,使用了SRAM型的現(xiàn)場可編程門陣列(FPGA)來實現(xiàn)。從任務特點上看,常規(guī)低軌遙感衛(wèi)星一般是短時成像后將圖像數(shù)據(jù)記錄到存儲器中,而HXMT衛(wèi)星是對空間中不同目標的不同能量射線進行探測,因此需要長期記錄,并對不同的載荷數(shù)據(jù)分類進行存儲。常規(guī)低軌遙感衛(wèi)星的載荷數(shù)據(jù)(例如一副圖像)是確定數(shù)據(jù)量的,在存儲時會以一定的數(shù)據(jù)率記錄,而HXMT衛(wèi)星隨觀測目標的不同,數(shù)據(jù)率會有近百倍的差別,需要具備對不同數(shù)據(jù)率的適應能力。此外,科學探測數(shù)據(jù)較圖像數(shù)據(jù)有更高的準確性和可靠性要求,因此必須對空間中的高能粒子給系統(tǒng)造成的影響,尤其是單粒子效應造成的錯誤進行防護[5]。
本文對HXMT衛(wèi)星數(shù)據(jù)存儲系統(tǒng)的需求進行了分析,并針對工作模式靈活豐富和在軌長期工作下的高可靠性存儲這兩個最主要特點的設計及驗證情況進行了說明。
HXMT衛(wèi)星數(shù)據(jù)存儲系統(tǒng)主要包括數(shù)據(jù)處理器和固態(tài)存儲器兩臺設備,數(shù)據(jù)處理器主要完成所有存儲數(shù)據(jù)的復接、AOS格式編排、低密度奇偶校驗(LDPC)信道編碼、加擾以及數(shù)據(jù)存儲或回放流向的控制,固態(tài)存儲器主要完成各類數(shù)據(jù)正確穩(wěn)定的分區(qū)記錄、存儲和回放。數(shù)據(jù)存儲系統(tǒng)組成及主要接口如圖1所示。
圖1 數(shù)據(jù)存儲系統(tǒng)組成及主要接口示意圖Fig.1 Sketch of DSS composition and major interface
在HXMT衛(wèi)星中,需要進行存儲的數(shù)據(jù)包括兩大類。
第一類是有效載荷分系統(tǒng)的科學數(shù)據(jù)和工程數(shù)據(jù),包括高能科學數(shù)據(jù)包1/2/3、高能工程數(shù)據(jù)包1/2/3、中能科學數(shù)據(jù)包、低能科學數(shù)據(jù)包、低能工程數(shù)據(jù)包共9類數(shù)據(jù),經LVDS接口傳送給數(shù)據(jù)處理器,在AOS格式編排、循環(huán)冗余校驗(CRC)、LDPC信道編碼及加擾后送固態(tài)存儲器存儲。其中,科學數(shù)據(jù)包的數(shù)據(jù)率隨不同的觀測源變動,存放在固態(tài)存儲器的B、C、D分區(qū);工程數(shù)據(jù)的數(shù)據(jù)率不發(fā)生變化,存放在固態(tài)存儲器的A分區(qū)。
第二類是來自整星各分系統(tǒng)的所有遙測數(shù)據(jù)和輔助數(shù)據(jù),共53類,總數(shù)據(jù)率約為49 kbit/s,由數(shù)管分系統(tǒng)整理后經1553總線傳送給數(shù)傳控制單元,數(shù)傳控制單元再經422接口傳到數(shù)據(jù)處理器,然后再完成AOS格式編排、CRC校驗、LDPC信道編碼及加擾后送固態(tài)存儲器存儲,存放在固態(tài)存儲器的A分區(qū)(見表1)。
任務要求在觀測最強爆發(fā)源時,衛(wèi)星數(shù)據(jù)存儲系統(tǒng)通過數(shù)據(jù)下傳和星上存儲,可以滿足不少于3天的數(shù)據(jù)平衡能力。以最大數(shù)據(jù)量來考慮,衛(wèi)星24 h連續(xù)觀測時,產生載荷科學數(shù)據(jù)約636.1 Gbit的數(shù)據(jù),載荷工程數(shù)據(jù)約0.31 Gbit的數(shù)據(jù),以及衛(wèi)星平臺數(shù)據(jù)約3.96 Gbit的數(shù)據(jù)。平均每天約24.7%的時間會經過南大西洋異常區(qū),此時載荷科學數(shù)據(jù)會明顯減少,則實際每天產生的最大數(shù)據(jù)量約為636.1×(1-24.7%)+0.31+3.96=483.25 Gbit≈483 Gbit。以日平均過境時間3000 s的80%可用于數(shù)傳來計算,單站時用120 Mbit/s的數(shù)傳碼速率每天可下傳數(shù)據(jù)約120×3000×80%×7/8=252000 Mbit≈246 Gbit(7/8為所用LDPC碼的編碼效率)。HXMT衛(wèi)星數(shù)據(jù)存儲系統(tǒng)設計的存儲量為571.5 Gbit×2,則從表1中可以看出,若只用主份或備份(571.5 Gbit),則可以保證連續(xù)2.4天的爆發(fā)源觀測,將未下傳的數(shù)據(jù)存儲后再逐步下傳;若同時啟用主份和備份(1143 Gbit),則最多可以保證連續(xù)4.8天的爆發(fā)源觀測,將未下傳的數(shù)據(jù)存儲后再逐步下傳(見表2)。
表1 數(shù)據(jù)存儲區(qū)域及數(shù)據(jù)率Table 1 Data storage partition and data rate
HXMT衛(wèi)星有效載荷全天時觀測生成了大量的數(shù)據(jù),數(shù)據(jù)存儲系統(tǒng)工作模式設計的主旨就是在考慮衛(wèi)星故障模式的基礎上,盡可能的提高數(shù)據(jù)應用的時效性和準確性,更便利地滿足用戶需求。因此在設計上,除了最基本的記錄模式和傳統(tǒng)的全盤回放模式、分區(qū)回放模式,還增加了按時間回放、按地址回放的檢索回放模式,以及記錄和回放同時工作的模式。針對載荷數(shù)據(jù)類型多、數(shù)據(jù)率動態(tài)變化大的特點,以及可能出現(xiàn)的某些通道數(shù)據(jù)的故障等問題,設計了存儲空間重新分配、下傳優(yōu)先級調整的模式。又針對NAND型FLASH存儲芯片可能出現(xiàn)的壞塊問題以及地面測試的需求[6],設計了擦除模式和自檢模式。各模式間轉換關系如圖2所示。
圖2 數(shù)據(jù)存儲系統(tǒng)工作模式轉換示意圖Fig.2 Sketch of DSS work modes transferring
數(shù)據(jù)存儲系統(tǒng)在正常上電或復位初始化后會自動進入記錄模式,以保證在故障出現(xiàn)時,數(shù)據(jù)存儲系統(tǒng)能盡快地記錄衛(wèi)星狀態(tài)以輔助排除故障和定位原因,以及盡快地開始業(yè)務運行。衛(wèi)星在軌正常工作期間,會一直處于記錄模式,當需要進行數(shù)據(jù)下傳時,會根據(jù)星上自主產生或地面上注的回放指令,按要求回放數(shù)據(jù),變?yōu)檫呌涍叿拍J?在軌一般不會使用單回放模式。在回放形式上,為用戶提供了如下4種子模式。
(1)全盤回放。全盤回放從最高優(yōu)先級分區(qū)的回放斷點處開始,按照優(yōu)先級從高到低的順序依次回放4個分區(qū)數(shù)據(jù),各分區(qū)回放均從本分區(qū)回放斷點處開始,至各分區(qū)當前記錄的位置處結束。待4個分區(qū)回放一遍則自動停止回放。
(2)分區(qū)回放。分區(qū)回放從本分區(qū)回放斷點處開始,至本分區(qū)當前記錄的位置處結束,本分區(qū)回放一遍則自動停止回放。
(3)按時間回放。根據(jù)按時間回放指令中指定的時間段和對應的分區(qū)號,一段接一段的進行數(shù)據(jù)的回放,可以回放A、B、C、D這4個分區(qū)的至多4個時間段的數(shù)據(jù),回放一遍則自動停止回放。
(4)按地址回放。根據(jù)按地址回放指令中指定的起止地址段和對應的分區(qū)號,一段接一段的進行數(shù)據(jù)的回放,可以回放A、B、C、D這4個分區(qū)的至多4個地址段的數(shù)據(jù),回放一遍則自動停止回放。
此外,固態(tài)存儲器采用各個分區(qū)單獨循環(huán)記錄的方式,當某分區(qū)數(shù)據(jù)記滿時,會從分區(qū)起始地址覆蓋記錄,保證星上存放最新的數(shù)據(jù)。
HXMT衛(wèi)星于2017年6月15日發(fā)射升空,于2017年6月16日4點數(shù)據(jù)存儲系統(tǒng)加電工作,之后除了配合相關功能測試以及2017年9月數(shù)日的大規(guī)模太陽耀斑事件有過關機操作外,一直處于連續(xù)工作狀態(tài)。到2018年7月15日,衛(wèi)星數(shù)據(jù)存儲系統(tǒng)共記錄存儲數(shù)據(jù)約112 Tbits,固態(tài)存儲器主份存儲區(qū)覆蓋記錄存儲約200次,共實現(xiàn)2439次回放數(shù)據(jù)下傳,存儲的數(shù)據(jù)未出現(xiàn)錯誤。
由于載荷全天時的對空間進行科學探測,產生載荷數(shù)據(jù),因此要求衛(wèi)星的數(shù)據(jù)存儲系統(tǒng)同樣也得長期工作。對于這種特點,首先對存儲的數(shù)據(jù)采用了RS糾錯編譯碼和增加冗余芯片的方式來保證數(shù)據(jù)的可靠安全存儲。此外,為防護單粒子翻轉效應造成的錯誤,數(shù)據(jù)存儲系統(tǒng)還采用了“三模冗余+定時刷新”的措施。在數(shù)據(jù)處理器的AOS編碼模塊和LDPC編碼模塊,以及固態(tài)存儲器的控制模塊和存儲模塊的實現(xiàn)上,使用了SRAM型的FPGA,采用三模冗余的方式來加強抗單粒子翻轉的能力,通過三備份多數(shù)表決來抑制單粒子翻轉對程序或數(shù)據(jù)造成的錯誤。再使用對單粒子事件免疫的反熔絲型FPGA對SRAM型的FPGA進行定時刷新,及時糾正已發(fā)生的單粒子翻轉造成的錯誤,保證系統(tǒng)長期、連續(xù)、穩(wěn)定運行。
為驗證數(shù)據(jù)存儲系統(tǒng)對單粒子翻轉錯誤的防護能力,開展了軟件注錯試驗和輻照試驗對“三模冗余+定時刷新”的設計進行驗證。
1)軟件注錯試驗
設計了軟件注錯平臺,包括控制計算機、注錯控制器、目標FPGA系統(tǒng)、地面檢測設備,其組成結構如圖3所示。控制計算機主要實現(xiàn)注入錯誤的位置及速率的上層控制及統(tǒng)計地面檢測設備的結果;注錯控制器主要承擔了注入錯誤的功能,按照控制計算機的指令實現(xiàn)對目標FPGA系統(tǒng)的注錯;目標FPGA系統(tǒng)包括程序功能使用的SRAM型的FPGA及用于定時刷新的反熔絲型FPGA;地面檢測設備用于接收并判斷目標FPGA系統(tǒng)的輸出結果[7-8]。
圖3 軟件注錯平臺示意圖Fig.3 Sketch of software fault injection platform
試驗設計了3種不同的樣本程序來對比對單粒子翻轉錯誤的防護性能,試驗樣本情況見表3。
表3 試驗樣本程序情況Table 3 Condition of test samples
表3中,M0為未采用防護措施的版本,即不進行三模冗余和定時刷新的版本;M1為只進行定時刷新但不進行三模冗余的版本;M2為產品實際設計的狀態(tài),即進行三模冗余+定時刷新的版本。
注錯采用隨機的方式,通過軟件注錯平臺設置注錯的幀個數(shù)以及每幀內的注錯比特個數(shù)后,注錯軟件自動隨機選擇注錯幀及注錯位置,并以幀為單位進行注錯。針對上述3個樣本,對其幀個數(shù)、每幀注錯數(shù)以及注錯時間間隔進行相同的設置,在同樣的注錯條件下,檢測目標FPGA系統(tǒng)發(fā)生看門狗復位的次數(shù)。通過對比復位次數(shù)來比對各樣本之間容錯能力的差別。為了增強測試結果的可信度,對每個樣本進行10次注錯測試,將結果取平均值作為每個樣本的測試結果。
試驗結果見表4。由表4可知,樣本M1的容錯能力為樣本M0的2.7倍,樣本M2的容錯能力約為樣本M0的22.3倍。說明采用三模冗余+定時刷新防護措施后,對目標受邏輯錯誤干擾的容錯能力提高為未采取防護措施的22.3倍。
表4 注錯試驗測試結果Table 4 Result of software fault injection test
2)輻照試驗
利用軟件注錯平臺中的目標FPGA系統(tǒng)進行輻照試驗,試驗組成如圖4所示。
圖4 輻照試驗示意圖Fig.4 Sketch of radiation test
試驗束流粒子為Bi離子,能量為923.2 MeV,折算后其線性能量傳遞(LET)為99.9 MeV·cm2/mg,射程為53.7μm,束斑面積為2.2 cm×2.2 cm,能夠覆蓋器件的晶片區(qū)域。受試器件的單粒子翻轉閾值約為2 Me V·cm2/mg左右,因此試驗粒子能夠誘發(fā)受試器件發(fā)生單粒子翻轉,并且翻轉概率能夠達到該器件的最大翻轉概率。
輻照試驗同樣使用了表3的3種試驗樣本程序,對每個樣本進行了5次重復試驗,通過出現(xiàn)故障時已經注入的粒子注量來衡量樣本對單粒子翻轉的容錯能力,粒子注量越多,則代表該樣本對單粒子翻轉的容錯能力越強。
試驗結果見表5。由表5可知,樣本M1的容錯能力為樣本M0的1.7倍,樣本M2的容錯能力約為樣本M0的36.7倍。說明采用三模冗余+定時刷新防護措施后對目標受單粒子翻轉效應干擾的容錯能力提高為未采取防護措施的36.7倍。這個結果在數(shù)量級上與注錯試驗的2.7倍和22.3倍一致,兩個試驗也相互印證了試驗方法的有效性和結果的可信度。
表5 輻照試驗測試結果Table 5 Result of radiation test
HXMT衛(wèi)星數(shù)據(jù)存儲系統(tǒng)實現(xiàn)了有效載荷和衛(wèi)星平臺數(shù)據(jù)的接收、處理、記錄、存儲以及回放。針對載荷數(shù)據(jù)類型多、數(shù)據(jù)率動態(tài)變化大的特點,為方便用戶使用,設計了記錄、全盤回放、分區(qū)回放、按時間回放、按地址回放、存儲空間重新分配、下傳優(yōu)先級調整、自檢、擦除等工作模式;針對在軌長期工作下的高可靠性存儲的要求,設計了“三模冗余+定時刷新”的防護措施。通過軟件注錯試驗、輻照試驗,以及在軌長期連續(xù)運行的結果表明:HXMT衛(wèi)星的數(shù)據(jù)存儲系統(tǒng)靈活性高、可靠性好、運行穩(wěn)定,完全滿足用戶需求,為HXMT衛(wèi)星科學目標的實現(xiàn)奠定了基礎,也可為后續(xù)空間科學衛(wèi)星或有類似需求航天器的數(shù)據(jù)存儲系統(tǒng)的設計和驗證提供參考。
參考文獻(References)
[1]朱巖.基于閃存的星載高速大容量存儲技術的研究[D].北京:中國科學院空間科學與應用研究中心,2006 Zhu Yan.Research on high-speed and high-capacity storage technology onboard based on flash[D].Beijing:Center for Space Science and Applied Research,Chinese Academy of Sciences,2006(in Chinese)
[2]陳斌,沈衛(wèi)華,朱巖,等.嫦娥二號衛(wèi)星大容量存儲器設計[J].航天器工程,2011,20(5):99-104 Chen Bin,Shen Weihua,Zhu Yan,et al.Design of solid state recorder for Chang’e-2 orbiter[J].Spacecraft Engineering,2011,20(5):99-104(in Chinese)
[3]王鳳陽,王寧.基于固態(tài)硬盤的星載海量存儲陣列研究與設計[J].航天器工程,2014,23(6):69-74 Wang Fengyang,Wang Ning.Research and design of onboard mass memory array based on SSD disk[J].Spacecraft Engineering,2014,23(6):69-74(in Chinese)
[4]胡劍平,李強,熊建林,等.固態(tài)記錄設備在航天器中的應用及發(fā)展趨勢[J].遙測遙控,2017,38(6):1-6 Hu Jianping,Li Qiang,Xiong Jianlin,et al.Application and development trend of solid state recorder in spacecrafts[J].Tracking and Command,2017,38(6):1-6(in Chinese)
[5]譚維熾,胡金剛.航天器系統(tǒng)工程[M].北京:中國科學技術出版社,2009 Tan Weizhi,Hu Jingang.Spacecraft systems engineering[M].Beijing:China Science and Technology Press,2009(in Chinese)
[6]張勝勇,高世杰,吳志勇,等.基于FPGA的NAND Flash壞塊處理方法[J].計算機工程,2010,36(6):239-243 ZhangShengyong,Gao Shijie,Wu Zhiyong,et al.Bad block handle method of NAND Flash memory based on FPGA[J].Computer Engineering,2010,36(6):239-243(in Chinese)
[7]王新升,黃振遠,梁斌.一種基于Vx Works的星載計算機軟件故障注入方法研究[J].航天控制,2010,28(5):84-88 Wang Xinsheng,Huang Zhenyuan,Liang Bin.A software-implemented fault injection method for onboard computer based on VxWorks[J].Aerospace Control,2010,28(5):84-88(in Chinese)
[8]彭俊杰.基于軟件故障注入的星載系統(tǒng)可靠性評測[D].哈爾濱:哈爾濱工業(yè)大學,2005 Peng Junjie.Dependability evaluation on onboard system by software fault injection[D].Harbin:Harbin Institute of Technology,2005(in Chinese)