一種基于數(shù)字虛擬技術(shù)的星載嵌入式數(shù)據(jù)通訊故障動態(tài)注入系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于數(shù)字虛擬技術(shù)的星載嵌入式數(shù)據(jù)通訊故障動態(tài)注入系統(tǒng)及方法,應(yīng)用于星載嵌入式計算機軟件系統(tǒng)的底層通訊容錯機制評測,適用于不同芯片架構(gòu)的星載嵌入式計算機內(nèi)置軟件通訊功能的可靠性驗證與容錯測試,以及動態(tài)條件下的通訊故障復(fù)現(xiàn)與快速定位。
【背景技術(shù)】
[0002]隨著計算機系統(tǒng)應(yīng)用到航天領(lǐng)域,對于軟件系統(tǒng)的容錯和可靠性評價成了整個航天系統(tǒng)研制的重要環(huán)節(jié)。通過對軟件系統(tǒng)容錯機制的測試和評估,可以得到其容錯算法和機制的正確性和有效性,以此判斷系統(tǒng)是否達到了宇航級的高可靠性設(shè)計要求。當前,容錯評價的方法很多,但主要有三種方法:分析模型法、現(xiàn)場錯誤數(shù)據(jù)分析法和故障注入方法。分析模型法需要對目標系統(tǒng)進行必要的化簡和假設(shè),對可靠性缺乏定量分析,因而無法真實準確地對系統(tǒng)的可靠性進行評估;現(xiàn)場錯誤數(shù)據(jù)分析法需要大量的實驗數(shù)據(jù)積累,時間成本上難以接受;故障注入技術(shù)作為能加速系統(tǒng)失效的方法,可以較精確地得出系統(tǒng)覆蓋率和錯誤潛伏期等參數(shù),已經(jīng)被廣泛地應(yīng)用于容錯機制檢測。通過對注入故障后加速系統(tǒng)發(fā)生故障和失效的過程進行監(jiān)測和分析,可大大縮短對目標軟件系統(tǒng)可靠性和容錯特性的評測結(jié)果獲得周期。
[0003]目前,實現(xiàn)故障注入的方法有硬件故障注入、軟件故障注入和仿真故障注入三種。軟件故障注入根據(jù)一定的故障模型,通過修改目標系統(tǒng)內(nèi)存單元或處理器內(nèi)部的寄存器值來模擬硬件故障的發(fā)生。其主要優(yōu)點是無需復(fù)雜的實驗裝置,實現(xiàn)成本低、可在編譯階段和程序運行時注入故障等。主要不足是對目標程序的運行時間、占用空間等造成影響。硬件故障注入是以物理手段直接將故障注入到目標系統(tǒng)的硬件中,通過附加硬件對目標系統(tǒng)的作用,使目標系統(tǒng)的正常硬件環(huán)境受到影響,從而產(chǎn)生故障。目前硬件實現(xiàn)的故障注入的研究大多集中于芯片管腳級,采用向管腳級施加電壓、重粒子輻射或電磁干擾等手段將故障引入目標系統(tǒng)。該方法的主要優(yōu)點是注入的故障接近實際情況,能夠較好地模擬實際的硬件故障,實驗過程中無需專門開發(fā)故障注入模型。其主要不足是實驗裝置復(fù)雜、費用高,對目標系統(tǒng)硬件容易造成損傷等。仿真故障注入是通過利用某種標準硬件描述語言(如常用的VHDL)為測試系統(tǒng)建立硬件仿真模型,然后在模擬模型中增加故障注入機制,其優(yōu)點是不需要任何特殊的硬件,對注入的故障可以精確地監(jiān)控,不足是開發(fā)工作量大,需要對原始系統(tǒng)進行完整仿真模型的建立?;诜抡婀收献⑷敕椒m然存在一定的不足,但是對于航天星載計算機在軌維護和可靠性增長具有較好的實施性和時效性。針對航天這類要求高可靠性的領(lǐng)域,仿真故障注入能夠快速實現(xiàn)某些特定故障場景的重建,不存在對目標系統(tǒng)可訪問性的限制,可以精確監(jiān)控所注入的故障位置和時間,尤其是在星載計算機動態(tài)運行下的動態(tài)過程下故障注入后能全面觀測系統(tǒng)內(nèi)部狀態(tài)變化,這是其它現(xiàn)有故障注入方法難以實現(xiàn)的。
[0004]面向?qū)嵨锵到y(tǒng)的物理故障注入目前依然是軟件系統(tǒng)可靠性評估的重要手段,然而當代嵌入式芯片的高集成度、多種芯片混合電路、封裝嚴密等特點限制了這類物理故障注入方法的可訪問性。此外,傳統(tǒng)基于實物的故障注入測試過程均采用物理時間,難以進行加速測試,尤其是當故障頻繁激發(fā)則更顯得無能無力;測試過程中的狀態(tài)保存、恢復(fù),以及特定測試場景的重建都較為困難,對包含硬件內(nèi)部狀態(tài)設(shè)置的特定場景復(fù)現(xiàn)將變現(xiàn)得異常困難,這非常不利于星上在軌故障的地面快速復(fù)現(xiàn)和定位,以及事后的異常分析,造成可靠性分析和增長在某些場合下難以開展。此外,采用實物方式的故障注入過程中很難了解系統(tǒng)內(nèi)部行為,也不利于及時發(fā)現(xiàn)和定位被測系統(tǒng)中系統(tǒng)級和底層錯誤。
【發(fā)明內(nèi)容】
[0005]本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種基于數(shù)字虛擬技術(shù)的星載嵌入式數(shù)據(jù)通訊故障動態(tài)注入系統(tǒng)及方法,解決嵌入式星載計算機數(shù)據(jù)通訊可靠性評測,是一種簡單、經(jīng)濟、可控的多類型的故障注入技術(shù),且兼具軟件故障注入和仿真故障注入二者的優(yōu)點。
[0006]本發(fā)明技術(shù)解決方案:一種基于數(shù)字虛擬技術(shù)的星載嵌入式數(shù)據(jù)通訊故障動態(tài)注入系統(tǒng),包括:星務(wù)模擬單元、底層硬件通信接口虛擬單元和故障注入單元;
[0007]星務(wù)模擬單元:分別讀取不同外部單機系統(tǒng)的通訊傳輸協(xié)議的屬性描述配置文件,以獲取協(xié)議的名稱、幀頭、幀長和接收對象等約定信息。按照協(xié)議名稱再各自讀取相應(yīng)的單機字節(jié)流轉(zhuǎn)化協(xié)議配置文件,獲取傳輸物理量在字節(jié)流中的位置、字節(jié)長度和字節(jié)流操作碼。基于既定的通訊傳輸協(xié)議配置文件,首先在宿主機上對實際通訊配置文件中讀取到的物理量進行存儲空間動態(tài)生成,該存儲空間地址連同它的物理量名稱構(gòu)成通訊變量查詢鏈表,實現(xiàn)了對具體通訊過程中所有物理量的查詢和賦值等數(shù)據(jù)管理功能。另外,星務(wù)模擬單元還對被控對象進行數(shù)學(xué)模型仿真,通過接受外部控制指令計算得到仿真變量結(jié)果值。將上述數(shù)學(xué)模型輸出變量的地址和它的物理量名稱一起構(gòu)成模型變量查詢鏈表,實現(xiàn)對模型輸出變量的查詢和遍歷賦值等數(shù)據(jù)管理功能。對前述所得到的通訊變量查詢鏈表和模型變量查詢鏈表,進行物理量名稱索引匹配操作,實現(xiàn)通訊物理量與數(shù)學(xué)模型輸出量的存儲地址關(guān)聯(lián),形成新的關(guān)系映射表而使得數(shù)學(xué)模型計算結(jié)果能實時刷新通訊過程中物理量;最后,所得到的關(guān)系映射表將輸入給底層硬件通信接口虛擬單元;
[0008]底層硬件通信接口虛擬單元:接收來自于星務(wù)模擬單元輸出的關(guān)系映射表,遍歷上述關(guān)系映射表中所有物理量,按照既定的通訊打包協(xié)議對上述物理量進行字節(jié)流轉(zhuǎn)化,將所得到的信息字節(jié)流按照正確讀寫時序傳輸給外部控制系統(tǒng);同時,也將接收外部控制系統(tǒng)傳送進來的信息字節(jié)流,按照通訊解包協(xié)議進行物理量的正確解析;
[0009]故障注入單元:通過與外部控制系統(tǒng)共享內(nèi)存能對來自底層硬件通信接口虛擬單元輸入的信息字節(jié)流進行讀寫操作。首先,經(jīng)外部控制系統(tǒng)對底層硬件通信接口虛擬單元傳輸信息字節(jié)流的解析,故障注入單元接收到按照解包協(xié)議正確提取出物理量。如果在外部控制系統(tǒng)動態(tài)運行過程中滿足故障激發(fā)條件將會觸發(fā)軟中斷,在中斷處理過程中故障注入單元調(diào)用用戶定制的回調(diào)故障函數(shù),從而在物理信息流上疊加故障響應(yīng),實現(xiàn)預(yù)定類型故障的準確激發(fā);接著,將疊加有故障行為的物理信息流回送給外部控制系統(tǒng)中,進而改變或影響外部控制系統(tǒng)的正常通訊行為;最后,對字節(jié)流解析后疊加有故障響應(yīng)的物理變量進行顯示,以確定故障注入前后的行為影響。
[0010]所述星務(wù)模擬單元包括:協(xié)議傳輸變量管理模塊、模型計算模塊、模型輸出變量管理模塊和數(shù)據(jù)池模塊;其中:協(xié)議傳輸變量管理模塊負責在宿主機上動態(tài)生成協(xié)議傳輸?shù)奈锢碜兞看鎯臻g,然后連同其物理名構(gòu)建通訊變量查詢映射鏈表;模型計算模塊數(shù)值負責模擬被控對象的運行狀態(tài),并實時接收外部控制指令仿真計算得到數(shù)值結(jié)果,而模型計算模塊的輸出仿真變量將作為模型輸出變量管理模塊的輸入;模型輸出變量管理模塊負責將模型計算模塊輸出變量的地址連同其物理量名,構(gòu)成模型變量查詢映射鏈表;數(shù)據(jù)池模塊分別接受協(xié)議傳輸變量管理模塊形成的通訊變量查詢映射鏈表和模型輸出變量管理模塊生成的模型變量查詢映射鏈表,完成上述變量查詢映射鏈表的索引匹配計算,實現(xiàn)模型計算模塊輸出量與協(xié)議傳輸物理變量在物理存儲空間上的關(guān)聯(lián),計算模型仿真結(jié)果將能夠?qū)崟r刷新協(xié)議傳輸物理量的數(shù)值,并能夠滿足不同通訊協(xié)議的數(shù)據(jù)傳輸需求。
[0011 ]所述底層硬件通信接口虛擬單元包括:通訊數(shù)據(jù)打包與解包操作模塊和外圍通訊接口數(shù)據(jù)讀寫控制模塊。通訊數(shù)據(jù)打包與解包操作模塊接收來自于星務(wù)模擬單元輸出的關(guān)系映射表,遍歷上述關(guān)系映射表中物理量,并按照打包協(xié)議進行字節(jié)流轉(zhuǎn)換處理;或者接收外部控制系統(tǒng)回送的控制字節(jié)流信息,按照解包協(xié)議將字節(jié)流信息提取出實際物理控制量,并賦值給關(guān)系映射表中對應(yīng)的物理量;外圍通訊接口數(shù)據(jù)讀寫控制模塊則基于通訊過程的主被動模式,按照正常時序?qū)⑼ㄓ崝?shù)據(jù)打包與解包操作模塊中生成的字節(jié)流發(fā)送到外部控制系統(tǒng);另外,也可接收外部控制系統(tǒng)輸出的控制信息字節(jié)流,經(jīng)協(xié)議解包后發(fā)送給星務(wù)模擬單元,控制模型計算模塊的數(shù)值仿真運算過程,構(gòu)成數(shù)據(jù)信息回路的閉環(huán);最終,實現(xiàn)了外部控制系統(tǒng)與外圍分系統(tǒng)之間的數(shù)據(jù)通訊雙向傳輸模擬。
[0012]所述故障注入單元包括:故障事件分發(fā)模塊、回調(diào)函數(shù)注冊與激發(fā)控制模塊、結(jié)果輸出模塊;回調(diào)函數(shù)注冊與激發(fā)控制模塊將用戶定制的故障描述函數(shù)進行注冊,形成故障函數(shù)調(diào)用索引表而作為故障事件分發(fā)模塊的輸入,一旦故障觸發(fā)條件滿足便會通過軟中斷實現(xiàn)外部控制系統(tǒng)控制跳轉(zhuǎn),進入到事先預(yù)定好的軟中斷處理過程中;故障事件分發(fā)模塊將在軟件中斷處理函數(shù)中取得故障函數(shù)調(diào)用表控制權(quán),正確計算出回調(diào)故障函數(shù)的入口處位置,然后執(zhí)行用戶定制的回調(diào)故障函數(shù);由于故障注入單元與外部控制系統(tǒng)基于共享內(nèi)存機制,對底層硬件通信接口虛擬單元傳輸進來的通訊信息流擁有相同的控制權(quán);最終,通過執(zhí)行回調(diào)故障函數(shù)將在通