(北京空間飛行器總體設(shè)計部,北京 100094)
隨著我國航天技術(shù)的快速發(fā)展,航天器在軌任務(wù)越來越復(fù)雜,航天器智能自主功能變得越來越強大,星載軟件的質(zhì)量和可靠性直接影響航天器在軌使用壽命。航天器自主運行能力是考核航天器可靠性的重要標(biāo)準(zhǔn),星載軟件故障防護(hù)模式測試是直接檢驗星載軟件自主故障恢復(fù)能力和冗余設(shè)計的關(guān)鍵手段,如何對航天器系統(tǒng)級星載軟件故障模式進(jìn)行安全、有效、準(zhǔn)確、全面的測試設(shè)計成為航天器系統(tǒng)級測試設(shè)計的關(guān)鍵因素。
航天器系統(tǒng)級星載軟件測試涉及航天器全生命周期的總裝集成測試階段,即組裝、集成、試驗與測試(Assembly Integration Test,AIT)階段。如果把測試實施前的準(zhǔn)備工作分為:測試用例設(shè)計、測試文件編寫、測試設(shè)備研制、測試系統(tǒng)調(diào)試四部分,測試用例設(shè)計約占總工作量的40%[1-2]。星載軟件故障模式測試設(shè)計是利用故障注入測試技術(shù),對軟件的容錯性和健壯性進(jìn)行測試驗證,系統(tǒng)級星載軟件故障模式測試不僅是針對軟件本身邏輯正確性進(jìn)行驗證,還要在系統(tǒng)級層面對輸入故障激勵后的執(zhí)行機構(gòu)動作進(jìn)行確認(rèn)。
目前,軟件工程理論中故障注入技術(shù)(針對晶體管故障、門級故障等)已經(jīng)在航天器單機級軟件故障模式驗證中得到廣泛應(yīng)用[3-4],但礙于航天器系統(tǒng)級測試階段中無法提供基于上述技術(shù)的故障注入接口及故障模式驗證環(huán)境,需要研究適用于系統(tǒng)級故障防護(hù)模式測試驗證技術(shù)來滿足航天器系統(tǒng)級星載軟件故障防護(hù)模式測試需求。本文根據(jù)現(xiàn)有工程實踐經(jīng)驗,結(jié)合系統(tǒng)級故障模式測試設(shè)計理論,從基于原型的故障注入技術(shù)及故障注入實現(xiàn)方式兩方面進(jìn)行分析,總結(jié)了3種系統(tǒng)級故障注入技術(shù)的適用場景及優(yōu)缺點,可為航天器電測中的軟件測試設(shè)計提供參考。
由于被測對象的已知性以及測試需求的明確性,系統(tǒng)級軟件故障注入測試廣泛采用“面向?qū)ο蟆焙汀白韵露稀钡臏y試設(shè)計理念。利用地面測試設(shè)備產(chǎn)生的模擬故障信號作為輸入激勵注入被測系統(tǒng)中,通過觀察被測系統(tǒng)的響應(yīng)動作或報警信息驗證系統(tǒng)級軟件故障模式設(shè)計的正確性。系統(tǒng)級軟件故障模式測試與單機級、分系統(tǒng)級測試驗證不同點在于故障注入點的選取。針對系統(tǒng)級軟件故障模式測試中整星提供特定測試點的約束,故障信號激勵注入點僅能從系統(tǒng)設(shè)備采集終端、激勵信號傳輸總線及系統(tǒng)軟件內(nèi)部程序進(jìn)行選擇。
系統(tǒng)級軟件故障模式測試的難點在于以下四方面:
(1)整星測試結(jié)構(gòu)狀態(tài)對故障注入點的影響:整星合板狀態(tài)下,故障注入點在星體內(nèi),通過外接測試電纜引入故障激勵受到限制。
(2)故障時序性對故障注入技術(shù)的影響:對于強時序故障邏輯驗證,一個判讀周期的延時就有可能影響系統(tǒng)對故障響應(yīng)的判斷。
(3)故障模型復(fù)雜度對故障注入技術(shù)的影響:對于復(fù)雜系統(tǒng)故障邏輯驗證往往涉及多個激勵信號長時間相互作用,系統(tǒng)會采集多個信號的變化趨勢作為響應(yīng)動作的依據(jù),單一故障激勵的變化難以滿足系統(tǒng)故障模擬需求。
(4)故障注入安全性的影響:整星測試期間,響應(yīng)部件均為真實產(chǎn)品,當(dāng)系統(tǒng)做出故障響應(yīng)動作之前需要識別響應(yīng)部件的轉(zhuǎn)動、擺動以及切備份等動作是否會對整星狀態(tài)帶來影響。
軟件故障模式測試驗證設(shè)計的核心是對故障注入技術(shù)的研究。
所謂故障注入是指:向被測目標(biāo)系統(tǒng)注入人為設(shè)置的故障,該故障能夠觸發(fā)系統(tǒng)失效或者進(jìn)行冗余設(shè)置,通過監(jiān)測被測系統(tǒng),提取系統(tǒng)接收故障激勵后的動作與故障模式發(fā)生后設(shè)計預(yù)想動作進(jìn)行比對,從而檢查被測系統(tǒng)容錯機制的正確性[5]。
航天器系統(tǒng)級軟件故障注入原理如圖1所示[6]。
圖1 航天器系統(tǒng)級軟件故障注入原理Fig.1 Principle diagram of software fault injection for spacecraft system-level
故障注入技術(shù)分類方式可以從故障抽象級別、實驗所處系統(tǒng)開發(fā)階段、故障類型、實現(xiàn)方法等不同方面進(jìn)行劃分[7]。本文從故障注入對象角度出發(fā),分為基于仿真的故障注入技術(shù)及基于原型的故障注入技術(shù),如圖2所示。
基于仿真的故障注入技術(shù)主要適用于航天器單機級軟件故障模式驗證,該類技術(shù)需要對被測點、被測邏輯、被測功能建立軟件仿真模型,在模型中加入故障機制[8]。
基于原型的故障注入技術(shù)適用于航天器系統(tǒng)級軟件故障模式驗證,該類技術(shù)是在原有系統(tǒng)的基礎(chǔ)上,通過各種手段將故障激勵輸入被測系統(tǒng),通過檢測實際系統(tǒng)的響應(yīng)動作完成故障模式的驗證。基于原型的故障注入技術(shù)可分為3類:采集終端實現(xiàn)、總線介質(zhì)實現(xiàn)、軟件實現(xiàn)。
圖2 故障注入技術(shù)分類
采集終端實現(xiàn)的故障注入技術(shù)是指選取系統(tǒng)參數(shù)采集終端作為故障激勵的引入點,通過硬件設(shè)備或者工具直接模擬導(dǎo)致系統(tǒng)故障模式發(fā)生的電阻量、電壓量、電流量等。應(yīng)用此方法,需要將原有系統(tǒng)的采集終端接插件或者可插拔引腳與被測系統(tǒng)斷開,通過特定的轉(zhuǎn)接插頭及電纜將被測系統(tǒng)與故障模擬硬件設(shè)備連接,達(dá)到將故障引入被測系統(tǒng)的目的,如圖3所示。
圖3 采集終端實現(xiàn)故障注入示意
數(shù)據(jù)總線實現(xiàn)故障注入技術(shù)是指通過采用特定的總線接入技術(shù),在接收原總線數(shù)據(jù)的基礎(chǔ)上,通過故障注入激勵控制機制將需要的故障轉(zhuǎn)換成總線數(shù)據(jù)的形式再注回系統(tǒng)總線數(shù)據(jù)中,達(dá)到將故障引入被測系統(tǒng)的目的,如圖4所示。
軟件實現(xiàn)的故障注入技術(shù)是指通過可編輯腳本或者程序從系統(tǒng)應(yīng)用層入手,直接將故障注入系統(tǒng)軟件中;或者通過系統(tǒng)應(yīng)用層修改故障門限,達(dá)到滿足觸發(fā)故障模式的條件,不通過物理手段進(jìn)行實現(xiàn)。
圖4 總線介質(zhì)實現(xiàn)故障注入示意Fig.4 Schematic diagram of fault injection in bus media
采集終端實現(xiàn)故障注入技術(shù)為利用地面測試終端模擬發(fā)生故障情況下的輸入激勵,通過星上遙測采集設(shè)備將故障激勵通過數(shù)據(jù)總線直接送給星務(wù)軟件處理,不通過中轉(zhuǎn),不存在故障注入時延問題,適用于強時序性故障測試驗證。目前在熱控分系統(tǒng)、控制分系統(tǒng)等測試中被廣泛使用。
3.1.1 熱控分系統(tǒng)故障模式測試應(yīng)用
以熱控分系統(tǒng)熱敏電阻故障模式測試為例,蓄電池加熱回路有2個控溫?zé)崦綦娮瑁铍姵丶訜峄芈饭收弦笫钱?dāng)前控溫?zé)崦綦娮璐笥?80 ℃或小于-35 ℃時切換至另一控溫?zé)崦綦娮柽M(jìn)行控溫,如果另一個熱敏電阻也發(fā)生故障則停止切換,向地面發(fā)出報警信號。
對于熱敏電阻故障模式類型可以選擇采集終端實現(xiàn)技術(shù)也可以選擇總線介質(zhì)實現(xiàn)技術(shù),本節(jié)介紹選用采集終端實現(xiàn)技術(shù)的設(shè)計驗證方式。
熱敏電阻反映當(dāng)前測溫點溫度,模擬溫度故障即可以此為切入點,斷開遙測輸入端即采集終端接插件,利用熱敏電阻等效器對當(dāng)前故障模式電阻值進(jìn)行模擬注入。
熱敏電阻等效器連接示意圖如圖5所示,斷開星上遙測采集設(shè)備與熱敏電阻的接插件,將遙測采集設(shè)備與熱敏電阻等效器通過測試電纜連接。該設(shè)備通過工控機控制數(shù)控電阻阻值變化,達(dá)到模擬星上熱敏電阻故障模式的目的。在實際故障測試驗證中,分別設(shè)置等效器中主份控溫點為大于+80 ℃或小于-35 ℃時,觀察星上自主控溫?zé)崦綦娮柽x擇是否切換為備份控溫?zé)崦綦娮?,然后再設(shè)置等效器中備份控溫?zé)崦綦娮铻榇笥?80 ℃或小于-35 ℃時,是否停止切換并且下傳報警信號,即完成此故障模式測試驗證工作。
圖5 熱敏電阻等效器連接示意圖
3.1.2 控制分系統(tǒng)故障模式測試應(yīng)用
以控制分系統(tǒng)慣性姿態(tài)敏感器故障模式測試為例,某衛(wèi)星中配置4個陀螺,只要保證3個陀螺能夠正常工作,即可進(jìn)行姿態(tài)控制。陀螺故障主要有陀螺電機、力矩器、傳感器故障或者控制線路失效,導(dǎo)致陀螺漂移增大、輸出常零、加速度超差、飽和超差和陀螺數(shù)據(jù)不變化等[9]。
控制分系統(tǒng)故障模式測試時采用閉環(huán)測試,動力學(xué)仿真軟件是地面系統(tǒng)的核心,完成衛(wèi)星的姿態(tài)及軌道動力學(xué)計算、敏感器模型計算、控制接口信號采集及發(fā)送功能;姿態(tài)敏感器模擬部件設(shè)置驅(qū)動陀螺儀的激勵源,模擬陀螺儀輸出的陀螺信號源,模擬太陽敏感器輸出的太陽敏感器信號源等功能;執(zhí)行部件模擬器在地面測試中由于執(zhí)行機構(gòu)不能實際動作,因此采用動量輪模擬器等進(jìn)行模擬,其主要作用是采集姿態(tài)控制計算機(Attitude Control Computer,ACC)給出的姿態(tài)調(diào)整信號??刂频孛鏈y試系統(tǒng)如圖6所示。
圖6 控制地面測試系統(tǒng)Fig.6 Ground test system for attitude and orbit control subsystem
通過敏感器模擬部件設(shè)置常值輸出角度及輸出周期,模擬常零故障及飽和超差故障,對4個陀螺分別疊加隨機噪聲輸出,模擬加速度超差,可以驗證衛(wèi)星對陀螺數(shù)據(jù)有效性自主診斷和重構(gòu),當(dāng)診斷出某一陀螺出現(xiàn)故障時,剔除該陀螺,采用其它3個陀螺進(jìn)行姿態(tài)軌道控制。
通過動力學(xué)仿真軟件計算出的陀螺輸出信息上疊加常值漂移輸出,可以驗證衛(wèi)星陀螺漂移算法的正確性,當(dāng)設(shè)置多個陀螺故障時,控制系統(tǒng)自主進(jìn)入安全模式。
總線介質(zhì)實現(xiàn)故障注入技術(shù)與采集終端實現(xiàn)在故障注入方式上有本質(zhì)區(qū)別,將故障輸入激勵由遙測采集設(shè)備端轉(zhuǎn)移到星載數(shù)據(jù)總線,將真實輸入激勵的模擬轉(zhuǎn)移為總線傳輸數(shù)據(jù)的模擬,來實現(xiàn)滿足星載軟件故障防護(hù)觸發(fā)條件,驗證星載軟件故障防護(hù)處理的能力,本節(jié)以1553B總線故障注入系統(tǒng)為例進(jìn)行介紹。
1553B總線故障注入系統(tǒng)可以對1553B總線的協(xié)議層進(jìn)行故障注入,協(xié)議層故障包括同步頭錯誤、校驗位錯誤、消息替換故障注入3種類型,系統(tǒng)結(jié)構(gòu)和信息流如圖7所示。
圖7 1553B總線故障注入系統(tǒng)結(jié)構(gòu)及信息流Fig.7 Structural and signal flow of 1553B bus fault injection system
系統(tǒng)工作過程中有上行遙控指令信息流和下行遙測數(shù)據(jù)信息流2個通道實現(xiàn)信息的流轉(zhuǎn),遙控指令信息流采取透明轉(zhuǎn)發(fā)形式,遙測數(shù)據(jù)信息流采取截斷替換形式[10],具體如下。
(1)遙控上行數(shù)據(jù):總線控制器(BC)端通過總線發(fā)出指令→地面系統(tǒng)內(nèi)仿遠(yuǎn)程終端(RT)端板卡接收指令→系統(tǒng)內(nèi)部透明轉(zhuǎn)發(fā)→地面系統(tǒng)內(nèi)仿BC端發(fā)出指令→RT端接收總線指令。
(2)遙測下行數(shù)據(jù): 星載總線RT端將接收的原始遙測信息發(fā)送→地面系統(tǒng)仿BC端接收遙測信息→按照總線通信協(xié)議將模擬的故障信息替換原始數(shù)據(jù)→地面系統(tǒng)仿RT端將注入故障激勵的整幀總線數(shù)據(jù)發(fā)出→星載總線BC端接收帶有故障的遙測信息,完成故障注入過程。
1553B總線故障注入系統(tǒng)接入整星,需要將原數(shù)據(jù)總線與遠(yuǎn)程終端設(shè)備斷開,將總線故障注入系統(tǒng)輸出端與遠(yuǎn)程終端設(shè)備總線接插件電纜端進(jìn)行連接,將總線故障注入系統(tǒng)輸入端與遠(yuǎn)程終端設(shè)備總線接插件設(shè)備端進(jìn)行連接,完成地面系統(tǒng)串入整星系統(tǒng)操作,如圖8所示。
對于總線故障注入設(shè)備來說,故障轉(zhuǎn)發(fā)時延是一個大問題,為了不影響被測系統(tǒng)的正常運行及邏輯處理,需盡可能的將遙測數(shù)據(jù)轉(zhuǎn)發(fā)(包含故障激勵)控制在一個周期內(nèi),圖9為總線故障轉(zhuǎn)發(fā)時序邏輯,圖中1553B總線周期為T1(單位ms),從總線控制消息發(fā)出到故障注入轉(zhuǎn)發(fā)完畢全過程需要時間為T2(單位ms)。按照實際應(yīng)用情況,故障注入全過程可以在2個總線周期內(nèi)完成,對于強時序性故障邏輯驗證有一個總線周期的故障觸發(fā)誤差。
圖8 1553B總線故障注入系統(tǒng)Fig.8 1553B bus fault injection system
圖9 1553B總線故障注入系統(tǒng)時序邏輯分析Fig.9 Sequential logic analysis diagram of 1553B bus fault injection system
以熱控分系統(tǒng)熱敏電阻短路斷路故障為例,進(jìn)行實際應(yīng)用說明。當(dāng)系統(tǒng)中熱敏電阻發(fā)生斷路或者短路故障時,系統(tǒng)自動將故障熱敏電阻剔除,選用備份熱敏電阻進(jìn)行控溫。此種故障反映的熱敏電阻為極大值或者極小值,采集終端實現(xiàn)技術(shù)難以滿足該需求,而采用總線介質(zhì)實現(xiàn)技術(shù)則較輕松。通過總線數(shù)據(jù)注入模擬的熱敏電阻斷路或者短路遙測源碼值,完成熱敏電阻斷路短路故障功能驗證。
整星系統(tǒng)級層面軟件實現(xiàn)故障模式測試驗證有一定的條件限制,此方法主要應(yīng)用在由于總裝流程限制,衛(wèi)星各艙板閉合,無法連接測試電纜的情況下,通過內(nèi)存修改指令,將故障模式的系統(tǒng)默認(rèn)值進(jìn)行放寬處理,使其在正常信號激勵的情況下仍能觸發(fā)故障邏輯,驗證故障模式的正確性。該技術(shù)不涉及對遙測采集數(shù)據(jù)進(jìn)行修改及中轉(zhuǎn),能夠滿足強時序性故障模式驗證需求。
以熱控分系統(tǒng)熱敏電阻斷路短路故障為例,該技術(shù)實現(xiàn)如圖10所示。
圖10 內(nèi)存修改實現(xiàn)故障模式驗證邏輯圖Fig.10 Logic diagram of memory modification to implement failure mode verification
1個電阻的故障閾值在程序中表現(xiàn)為2個16位無符號整型數(shù),圖10中所給的地址為存儲2個16位閾值的起始地址,從該地址開始向后的連續(xù)4個地址內(nèi)存放的2個16位數(shù)據(jù)作為相應(yīng)的閾值。通過內(nèi)存修改指令,將故障閾值進(jìn)行適當(dāng)放寬,修改后閾值參考常溫下熱敏電阻溫度源碼進(jìn)行選定,就可以不通過外接設(shè)備完成熱敏電阻故障模式的驗證。
通過前3節(jié)對基于原型的故障注入技術(shù)在整星系統(tǒng)級故障模式測試驗證的應(yīng)用分析,本文提出的3種方法優(yōu)缺點如表1所示。表1中時序性是指被測系統(tǒng)軟件對接收故障激勵的響應(yīng)有效周期,在軟件測試需求中會明確提出,該指標(biāo)是反映系統(tǒng)軟件故障處理響應(yīng)速度的關(guān)鍵因素,影響系統(tǒng)級故障注入技術(shù)的應(yīng)用選擇。對于采集終端實現(xiàn)的故障注入技術(shù),故障激勵直接作用于采集終端,待接收到總線消息控制字后,采集終端將故障激勵在一個總線周期內(nèi)送給被測系統(tǒng)軟件,故障注入沒有時延,適用于強時序系統(tǒng)功能驗證。而總線介質(zhì)實現(xiàn)的故障注入技術(shù)經(jīng)3.2節(jié)分析后得出地面測試系統(tǒng)待接收到總線消息控制字后,被測系統(tǒng)軟件接收到故障激勵信號會有一個總線周期的延時,適用于弱時序系統(tǒng)功能驗證?;谲浖崿F(xiàn)的故障注入技術(shù),其根本是改變被測系統(tǒng)軟件對故障激勵的閾值,測試過程中不會帶來時延。
表1 系統(tǒng)級故障注入技術(shù)優(yōu)缺點
本文提出了3種適用于航天器系統(tǒng)級的故障注入技術(shù),并對其實現(xiàn)原理和實現(xiàn)方式進(jìn)行分析總結(jié)。以上3種故障注入技術(shù)已在各領(lǐng)域航天器整星綜合測試階段實際應(yīng)用。測試結(jié)果表明:3種基于原型的故障注入技術(shù)滿足航天器系統(tǒng)級軟件測試驗證需求,符合軟件測試覆蓋性、有效性、安全性設(shè)計要求,可以為整星結(jié)構(gòu)、系統(tǒng)故障響應(yīng)時序等諸多約束條件下系統(tǒng)級故障注入技術(shù)的選擇提供參考。對于本課題的進(jìn)一步深入研究建議如下:①總線介質(zhì)實現(xiàn)的故障注入技術(shù)可以從總線消息控制字與被測BC端消息字同步方面進(jìn)行突破,降低故障模擬響應(yīng)延時;②不局限于當(dāng)前對故障注入點的識別,研究新的故障注入途徑,變不可測故障模式為可測故障模式,提高系統(tǒng)級層面軟件功能地面驗證能力。