董振輝 王向暉 穆強(qiáng) 潘莉 韋涌泉
(北京空間飛行器總體設(shè)計(jì)部,北京 100094)
高分三號(hào)衛(wèi)星中央單元多分區(qū)引導(dǎo)的設(shè)計(jì)與驗(yàn)證
董振輝 王向暉 穆強(qiáng) 潘莉 韋涌泉
(北京空間飛行器總體設(shè)計(jì)部,北京 100094)
針對(duì)某遙感衛(wèi)星靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)芯片故障導(dǎo)致中央單元(CTU)主機(jī)無法啟動(dòng)的問題,高分三號(hào)(GF-3)衛(wèi)星數(shù)管CTU軟件設(shè)計(jì)了一種靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)芯片故障模式下的多分區(qū)引導(dǎo)方法。通過在可編程只讀存儲(chǔ)器(PROM)中增加一個(gè)應(yīng)急故障處理軟件分區(qū),在SRAM芯片部分故障情況下,CTU軟件能夠從正常CTU軟件分區(qū)跳轉(zhuǎn)到應(yīng)急故障處理軟件分區(qū),并引導(dǎo)CTU軟件進(jìn)入應(yīng)急故障處理模式。在該模式下執(zhí)行SRAM芯片故障檢測(cè)和正常CTU軟件在軌注入,使CTU使用SRAM芯片無故障區(qū)域運(yùn)行正常CTU軟件。在GF-3衛(wèi)星中,對(duì)該方法進(jìn)行了軟件實(shí)現(xiàn)和驗(yàn)證,結(jié)果表明:此方法可在中央處理單元SRAM芯片部分故障情況下,提供一種挽救方案,從而避免采取單一的切換備機(jī)處理措施導(dǎo)致CTU主機(jī)徹底不能使用的問題,提高了數(shù)管分系統(tǒng)的可靠性。
高分三號(hào)衛(wèi)星;中央單元;多分區(qū);引導(dǎo);數(shù)管分系統(tǒng)
高分三號(hào)(GF-3)衛(wèi)星數(shù)管分系統(tǒng)中央單元(CTU)以高性能容錯(cuò)計(jì)算機(jī)為核心,完成數(shù)管分系統(tǒng)自身的指揮調(diào)度和狀態(tài)管理,并對(duì)衛(wèi)星數(shù)據(jù)流進(jìn)行控制和自主管理[1-2]。CTU的CPU板為A、B雙機(jī)冷備份設(shè)計(jì),每個(gè)單板由CPU、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、可編程只讀存儲(chǔ)器(PROM)及相應(yīng)電路等組成,SRAM為40 bit位寬,支持錯(cuò)誤檢測(cè)與糾正(EDAC)。
部分國內(nèi)外航天器計(jì)算機(jī)系統(tǒng)的SRAM存儲(chǔ)器采用單份設(shè)計(jì),一旦發(fā)生故障,將嚴(yán)重影響計(jì)算機(jī)系統(tǒng)的正常功能,甚至無法運(yùn)行。通過增加冗余存儲(chǔ)器芯片,可在一定程度上解決該問題,但是也帶來了成本和功耗增加的問題[3]。某遙感衛(wèi)星在軌曾發(fā)生過CTU中A機(jī)SRAM讀寫異常故障,最終CTU切換到B機(jī)工作。導(dǎo)致該問題的原因最終定位于SRAM器件故障,而引發(fā)該故障的最大可能原因,為空間環(huán)境效應(yīng)或者器件缺陷引發(fā)的個(gè)體偶發(fā)失效[4-5]。由于采用相同單份SRAM設(shè)計(jì),對(duì)GF-3衛(wèi)星數(shù)管分系統(tǒng)展開針對(duì)性設(shè)計(jì),主動(dòng)應(yīng)對(duì)在軌可能發(fā)生的SRAM故障情況,在硬件設(shè)計(jì)不變的基礎(chǔ)上,提出了一種在PROM中增加一個(gè)應(yīng)急故障處理軟件分區(qū)的多分區(qū)引導(dǎo)方案。該方案使CTU軟件盡可能地避開SRAM故障區(qū)域,挖掘故障芯片的使用潛力,使挽救故障數(shù)管計(jì)算機(jī)系統(tǒng)成為可能。
GF-3衛(wèi)星CTU軟件最初的SRAM自檢策略為:向SRAM中寫入固定標(biāo)識(shí),之后回讀數(shù)據(jù)并比較一致性,若發(fā)現(xiàn)回讀數(shù)據(jù)與寫入數(shù)據(jù)不一致,則認(rèn)為自檢失敗。主機(jī)SRAM自檢失敗后的處理措施為CTU切到備機(jī)運(yùn)行,主機(jī)后續(xù)將無法使用。但是在這種情況下,主機(jī)的SRAM芯片可能僅僅是部分區(qū)域故障,而理論上只要剩余內(nèi)存資源足夠,軟件就可能繼續(xù)運(yùn)行[6]。
由于GF-3衛(wèi)星修改CTU硬件設(shè)備的成本較高且周期較長,因此一種可行的方案是,在GF-3衛(wèi)星單個(gè)PROM的空閑區(qū)域中,增加一個(gè)應(yīng)急故障處理軟件分區(qū),在檢測(cè)到SRAM故障后跳轉(zhuǎn)到該分區(qū)運(yùn)行應(yīng)急故障處理軟件,檢測(cè)SRAM的故障情況并實(shí)施在軌維護(hù)[7],從而挽救發(fā)生SRAM故障的主機(jī)。
應(yīng)急故障處理軟件需要與正常CTU軟件一起固化到PROM中,且運(yùn)行過程中需要使用少量SRAM,因此,需要CTU的PROM和SRAM具有一定的余量。統(tǒng)計(jì)GF-3衛(wèi)星的PROM和SRAM的資源使用情況見表1。
表1 GF-3衛(wèi)星PROM和SRAM余量統(tǒng)計(jì)Table 1 PROM and SRAM residual statistics of GF-3
其中,PROM為只讀器件,只要PROM空間能夠存儲(chǔ)下應(yīng)急故障處理軟件,那么應(yīng)急故障處理軟件就可以正常啟動(dòng),因此應(yīng)急故障處理軟件固化到PROM的二進(jìn)制文件所占空間(約為30 kbyte)必須小于GF-3衛(wèi)星PROM的空閑空間。
GF-3衛(wèi)星SRAM空間尚有較多余量,應(yīng)急故障處理軟件運(yùn)行過程中僅使用少量SRAM(約為3 kbyte),因此可以通過固定劃分,保證正常CTU軟件和應(yīng)急故障處理軟件使用不同的SRAM地址范圍。
高分三號(hào)PROM固化內(nèi)容最初只有PROM啟動(dòng)程序[8]、CTU應(yīng)用軟件和CTU系統(tǒng)軟件,采用多分區(qū)引導(dǎo)設(shè)計(jì)后,原固化內(nèi)容作為分區(qū)1,部分空閑PROM區(qū)域作為分區(qū)2用于固化應(yīng)急故障處理軟件。分區(qū)1和分區(qū)2使用不重合的PROM空間及SRAM空間,兩個(gè)分區(qū)運(yùn)行的軟件各自獨(dú)立編譯生成二進(jìn)制固化文件,最終合并成一個(gè)固化文件并燒寫到PROM芯片。
正常CTU軟件運(yùn)行過程中,發(fā)現(xiàn)SRAM不可糾正錯(cuò)后自動(dòng)復(fù)位,復(fù)位過程中執(zhí)行SRAM自檢,自檢不通過情況下,是否跳轉(zhuǎn)至應(yīng)急故障處理軟件由硬件切機(jī)使能禁止決定。若硬件切機(jī)使能則備機(jī)啟動(dòng)并關(guān)閉主機(jī),應(yīng)急故障處理軟件不會(huì)被執(zhí)行,若硬件切機(jī)禁止則寫切機(jī)端口無效,最終運(yùn)行應(yīng)急故障處理軟件。
應(yīng)急故障處理軟件運(yùn)行后,將SRAM故障檢測(cè)信息通過遙測(cè)實(shí)時(shí)下傳,地面根據(jù)SRAM故障情況制定在軌維護(hù)方案,通過遙控手段上注新的正常CTU軟件的二進(jìn)制數(shù)據(jù)至SRAM非故障區(qū)域,最后通過跳轉(zhuǎn)指令跳轉(zhuǎn)至新的正常CTU軟件運(yùn)行。通過多分區(qū)引導(dǎo)方案處理SRAM故障示意如圖1所示。
1)對(duì)正常CTU軟件的修改
應(yīng)急故障處理軟件在CTU正常啟動(dòng)的情況下不會(huì)運(yùn)行,不需要修改CTU應(yīng)用軟件和系統(tǒng)軟件,僅需修改PROM啟動(dòng)程序,增加SRAM故障情況下跳轉(zhuǎn)到應(yīng)急故障處理軟件的操作,修改內(nèi)容包括:
(1)SRAM自檢不通過時(shí),PROM啟動(dòng)程序的原設(shè)計(jì)為直接寫切機(jī)端口。采用多分區(qū)引導(dǎo)方案后,改為當(dāng)SRAM自檢不通過時(shí),延時(shí)30 s再寫切機(jī)端口(延時(shí)期間復(fù)位“看門狗”,地面可在該期間發(fā)送切機(jī)禁止指令),之后延時(shí)400 ms(若切機(jī)使能,備機(jī)可在400 ms內(nèi)完成關(guān)主機(jī)操作)跳轉(zhuǎn)到應(yīng)急故障處理軟件分區(qū)。
(2)修改啟動(dòng)過程中的SRAM自檢范圍,PROM啟動(dòng)程序的原設(shè)計(jì)為自檢整片SRAM,采用多分區(qū)引導(dǎo)方案后,改為只檢查正常CTU軟件使用的前1024 kbyte。
2)應(yīng)急故障處理軟件的實(shí)現(xiàn)
應(yīng)急故障處理軟件為一個(gè)獨(dú)立軟件,其所具備的功能如表2所示。
表2 CTU應(yīng)急故障處理軟件功能Table 2 CTU emergency fault handling software functions
由表2可見,受PROM空間余量和SRAM使用最小化原則的限制,CTU應(yīng)急故障處理軟件僅包含了最簡化的數(shù)管遙測(cè)遙控功能,并提供了完備的SRAM自檢和在軌維護(hù)功能。CTU應(yīng)急故障處理軟件的外部接口如圖2所示。
CTU應(yīng)急故障處理軟件為不使用操作系統(tǒng)的小型軟件,采用主循環(huán)加陷阱處理的編程方式進(jìn)行設(shè)計(jì)。啟動(dòng)后首先執(zhí)行初始化,之后進(jìn)入主循環(huán)加陷阱處理的運(yùn)行模式。其中,系統(tǒng)初始化和引導(dǎo)功能在僅上電或復(fù)位時(shí)運(yùn)行一次,陷阱處理功能僅在發(fā)生陷阱時(shí)運(yùn)行,其余功能模塊均在主循環(huán)中順序執(zhí)行。主循環(huán)中完成遙測(cè)功能、遙控功能和內(nèi)存自檢功能,其軟件運(yùn)行邏輯流程如圖3所示。
CTU多分區(qū)引導(dǎo)方案僅在CTU主機(jī)SRAM故障后,地面試圖恢復(fù)主機(jī)功能時(shí)使用,不作為主機(jī)故障后的即時(shí)應(yīng)急處理措施。即主機(jī)SRAM故障后應(yīng)優(yōu)先切備機(jī),待地面進(jìn)行充分的分析且通過備機(jī)采取了整星安全措施后,再運(yùn)行應(yīng)急故障處理軟件,檢測(cè)具體故障區(qū)域,制定主機(jī)挽救方案。具體在軌實(shí)施方法如下。
(1)CTU默認(rèn)切機(jī)使能,SRAM芯片故障后主機(jī)自動(dòng)復(fù)位,復(fù)位過程中SRAM自檢失敗后先切換到備用機(jī),待將衛(wèi)星設(shè)置為安全狀態(tài)后,再發(fā)送切主機(jī)指令和切機(jī)禁止指令,使主機(jī)運(yùn)行應(yīng)急故障處理軟件。
(2)通過應(yīng)急故障處理軟件完成主機(jī)SRAM的故障檢測(cè)后,將結(jié)果通過遙測(cè)下傳給地面,之后地面發(fā)送切機(jī)使能指令和切備機(jī)指令,衛(wèi)星通過CTU備機(jī)繼續(xù)正常工作。
(3)在使用CTU備機(jī)工作期間,地面根據(jù)SRAM故障檢測(cè)結(jié)果,生成能夠在SRAM無故障區(qū)運(yùn)行的正常CTU軟件的二進(jìn)制數(shù)據(jù),并制作在軌維護(hù)指令。
(4)發(fā)送切主機(jī)指令和切機(jī)禁止指令,使主機(jī)運(yùn)行應(yīng)急故障處理軟件,并通過應(yīng)急故障處理軟件將正常CTU軟件的二進(jìn)制數(shù)據(jù)注入到SRAM無故障區(qū),最后發(fā)送跳轉(zhuǎn)指令,跳轉(zhuǎn)到新上注的正常CTU軟件運(yùn)行,SRAM芯片故障處理結(jié)束。
多分區(qū)引導(dǎo)方案為GF-3衛(wèi)星研制后期臨時(shí)增加的可靠性設(shè)計(jì)方案,受系統(tǒng)資源的限制,在使用過程中的約束與限制如下。
(1)應(yīng)急故障處理軟件只有基本的遙測(cè)、遙控及在軌維護(hù)功能,不具備正常CTU軟件的星務(wù)管理、整星數(shù)據(jù)服務(wù)、程控等功能。
(2)應(yīng)急故障處理軟件只將部分?jǐn)?shù)管軟遙測(cè)以及雙遠(yuǎn)置單元(DRTU)采集的整星模擬量遙測(cè)下傳,不支持下傳其它分系統(tǒng)的總線遙測(cè)數(shù)據(jù)。
(3)遙控功能僅支持處理包含單個(gè)指令單元的遙控塊,指令單元類型僅限于ON/OFF指令、總線指令、總線設(shè)置指令,在軌維護(hù)指令以及跳轉(zhuǎn)指令,不支持延時(shí)指令功能,不支持轉(zhuǎn)發(fā)其它分系統(tǒng)的遙控注入數(shù)據(jù)。
(4)若應(yīng)急故障處理軟件數(shù)據(jù)段所在的SRAM區(qū)也發(fā)生故障,應(yīng)急故障處理軟件不一定能正常運(yùn)行。
(5)根據(jù)應(yīng)急故障處理軟件的自檢結(jié)果,若SRAM存儲(chǔ)單元大面積發(fā)生故障,或者SRAM存儲(chǔ)單元故障區(qū)域較多且分散,制作在SRAM無故障區(qū)運(yùn)行的正常CTU軟件二進(jìn)制數(shù)據(jù)的難度較大,只能放棄修復(fù)或者功能降級(jí)修復(fù)。
當(dāng)一些制約條件不存在時(shí),本文提出的方法可以在應(yīng)急故障處理軟件中實(shí)現(xiàn)更多功能。
在圖4所示測(cè)試環(huán)境[10]中,將多分區(qū)引導(dǎo)固化文件燒寫到CTU的PROM芯片中進(jìn)行了測(cè)試驗(yàn)證,驗(yàn)證內(nèi)容包括:
(1)測(cè)試SRAM故障情況下,正常CTU軟件跳轉(zhuǎn)到應(yīng)急故障處理軟件的功能是否正常。
(2)測(cè)試應(yīng)急故障處理軟件的各項(xiàng)功能是否正常。
測(cè)試過程中,通過ERC32仿真器在CTU的SRAM芯片中人為制造雙比特錯(cuò)的方式,模擬在軌發(fā)生SRAM器件故障的情況。測(cè)試結(jié)果表明,在模擬SRAM故障的情況下,正常CTU軟件分區(qū)無法啟動(dòng)運(yùn)行,在地面控制下CTU進(jìn)入應(yīng)急故障處理軟件分區(qū)運(yùn)行,應(yīng)急故障處理軟件各項(xiàng)功能正確。
本文針對(duì)某遙感衛(wèi)星在軌發(fā)生SRAM故障的問題,以GF-3衛(wèi)星為例,在不修改中央處理單元硬件的基礎(chǔ)上,設(shè)計(jì)了一種多分區(qū)引導(dǎo)方案。該方法為遙感衛(wèi)星中央處理單元首次在軌應(yīng)用,可在SRAM芯片部分故障情況下,檢測(cè)故障區(qū)域,實(shí)施在軌維護(hù),恢復(fù)正常CTU軟件的功能,從而避免采取單一的切機(jī)處理措施導(dǎo)致故障CTU主機(jī)徹底不能使用的問題,提高了數(shù)管計(jì)算機(jī)系統(tǒng)的可靠性,可為后續(xù)衛(wèi)星設(shè)計(jì)提供參考。
References)
[1]趙思陽,張紅軍,董杰,等.高分二號(hào)衛(wèi)星數(shù)管分系統(tǒng)設(shè)[J].航天器工程,2015,24(z2):97-100 Zhao Siyang,Zhang Hongjun,Dong Jie,et al.Design of Gaofen-2 satellite OBDH subsystem[J].Spacecraft Engineering,2015,24(z2):97-100(in Chinese)
[2]何熊文,孫勇.一種衛(wèi)星數(shù)管中心計(jì)算機(jī)軟件的工程實(shí)現(xiàn)[J].航天器工程,2007,16(5):47-53 He Xiongwen,Sun Yong.Engineering realization of software in central terminal unit of satellite data management system[J].Spacecraft Engineering,2007,16(5):47-53(in Chinese)
[3]朱瑪,劉云鶴,劉寧,等.高分四號(hào)衛(wèi)星信息流設(shè)計(jì)[J].航天器工程,2016,25(z1):37-43 Zhu Ma,Liu Yunhe,Liu Ning,et al.Design of information flow for GF-4 satellite[J].Spacecraft Engineering,2016,25(z1):97-100(in Chinese)
[4]范基坪,焦健,趙海濤,等.導(dǎo)航衛(wèi)星單粒子軟錯(cuò)誤影響建模與仿真方法[J].北京航空航天大學(xué)學(xué)報(bào),2016,42(5):1008-1015 Fan Jiping,Jiao Jian,Zhao Haitao,et al.SEU soft error effect modeling and simulation method for navigation satellite[J].Journal of Beijing University of Aeronautics and Astronautics,2016,42(5):1008-1015(in Chinese)
[5]張昊,王新升,李博,等.微小衛(wèi)星單粒子閂鎖防護(hù)技術(shù)研究[J].紅外與激光工程,2015,44(5):1444-1449 Zhang Hao,Wang Xinsheng,Li Bo,et al.Research on single event latchup protection technology for micro-satellite[J].Infrared and Laser Engineering,2015,44(5):1444-1449(in Chinese)
[6]江建慧,朱為國.嵌入式存儲(chǔ)器的內(nèi)建自測(cè)試和內(nèi)建自修復(fù)[J].同濟(jì)大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,32(8):1050-1056 Jiang Jianhui,Zhu Weiguo.Survey on built-in self-test and built-in self-repair of embedded memories[J].Journal of Tongji University(Natural Science),2004,32(8):1050-1056(in Chinese)
[7]安軍社,劉艷秋,孫輝先.軟件的動(dòng)態(tài)維護(hù)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2003,29(2):238-239 An Junshe,Liu Yanqiu,Sun Huixian.Implementation of on-board software maintenance[J].Computer Engineering,2003,29(2):238-239(in Chinese)
[8]王亞剛.嵌入式Bootloader機(jī)制的分析與移植[J].計(jì)算機(jī)工程,2010,36(6):267-269 Wang Yagang.Analysis and transplant of embedded bootloader mechanism[J].Computer Engineering,2010,36(6):267-269(in Chinese)
[9]王向暉,王同桓,李寧寧,等.一種AOS遙測(cè)源包多路調(diào)度算法[J].航天器工程,2011,20(5):83-87 Wang Xianghui,Wang Tonghuan,Li Ningning,et al.An efficient scheduling algorithm of multiplexing TM service based on the AOS[J].Spacecraft Engineering,2011,20(5):83-87(in Chinese)
[10]董振輝,侯春青,郭堅(jiān),等.一種航天器軟件進(jìn)程堆棧使用深度的動(dòng)態(tài)檢測(cè)方法[J].航天器工程,2017,26(1):85-90 Dong Zhenhui,Hou Chunqing,Guo Jian,et al.Dynamic detection method of spacecraft software process stack used depth[J].Spacecraft Engineering,2017,26(1):85-90(in Chinese)
Multi-partition Boot Design and Verification of GF-3 Satellite CTU
DONG Zhenhui WANG Xianghui MU Qiang PAN Li WEI Yongquan
(Beijing Institute of Spacecraft System Engineering,Beijing 100094,China)
The failure of SRAM chip in a remote sensing satellite has caused the current central terminal unit(CTU)failed to boot up,GF-3 satellite central terminal unit software designed a multi-partition boot method under the fault mode of SRAM chip.By adding an emergency fault handling program partition in the PROM,in the case of SRAM chip part failure,center terminal unit software will jump from normal program partition to emergency fault handling program partition,and lead the central terminal unit into emergency fault handling mode.In this mode,the SRAM chip fault detection and on-board software maintenance are executed,so that the central terminal unit can run the normal CTU program using the SRAM trouble-free zone.In GF-3,this method is realized and verified,the result shows that the method provides a rescue plan in the case of central terminal unit SRAM part failure,so avoiding the single switching measure which will cause the current CTU to be completely unusable,and improves the reliability of the on board data handling subsystem.
GF-3 satellite;center terminal unit(CTU);multi-partition;boot;on board data handling subsystem
2017-10-20;
2017-11-16
國家重大科技專項(xiàng)工程
董振輝,男,工程師,從事航天器星載軟件設(shè)計(jì)工作。Email:564760683@qq.com。
V443
A
10.3969/j.issn.1673-8748.2017.06.020
(編輯:李多)