一種星載計(jì)算機(jī)的故障診斷方法
【專利摘要】本發(fā)明公開了一種星載計(jì)算機(jī)的故障診斷方法,通過軟硬件協(xié)同工作的方式完成星載計(jì)算機(jī)的故障診斷,包括:基于斷言的故障檢測以及硬件故障事件驅(qū)動(dòng)?;跀嘌缘墓收蠙z測包括:星載計(jì)算機(jī)的硬件系統(tǒng)提供硬件驅(qū)動(dòng)參數(shù)的操作接口和數(shù)值范圍,由軟件回讀并判斷;軟件對函數(shù)接口進(jìn)行輸入?yún)?shù)和狀態(tài)返回的檢測;通過斷言輸入?yún)?shù)的工作范圍,當(dāng)判定輸入?yún)?shù)超出閾值時(shí),以軟中斷或回調(diào)函數(shù)的方式拋擲異常,并在處理器的異常處理流程中完成故障診斷和恢復(fù);硬件故障事件驅(qū)動(dòng)包括:采用控制流、數(shù)據(jù)流的同步狀態(tài)反饋方式,以總線訪問的等待信號(hào)、錯(cuò)誤信號(hào)以及中斷信號(hào)三種觸發(fā)方式中斷處理器當(dāng)前運(yùn)行流程,并根據(jù)事件驅(qū)動(dòng)源、反饋信息進(jìn)行故障識(shí)別和恢復(fù)。
【專利說明】一種星載計(jì)算機(jī)的故障診斷方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及故障診斷【技術(shù)領(lǐng)域】,特別涉及一種星載計(jì)算機(jī)的故障診斷方法。
【背景技術(shù)】
[0002] 受空間環(huán)境中高能粒子的輻射、太陽耀斑以及高低溫差等不利因素,使得計(jì)算機(jī) 中的邏輯資源、存儲(chǔ)介質(zhì)易出現(xiàn)各類瞬時(shí)或者永久故障。空間飛行器高度的自主控制要求, 對復(fù)雜空間環(huán)境適應(yīng)能力的要求,在關(guān)鍵事件中持續(xù)不間斷工作的要求,需要具備星載電 子設(shè)備特別是核心控制計(jì)算部件的自主故障診斷和容錯(cuò)能力。
[0003] 故障診斷和容錯(cuò)技術(shù)主要是通過增加冗余信息,以備份、編碼、模式識(shí)別等方式達(dá) 到對設(shè)備故障的診斷和恢復(fù)?,F(xiàn)有的星載電子設(shè)備受規(guī)模、元器件選型等多種因素制約,目 前主要采用的方法包括多機(jī)自主切換、冷熱冗余,存儲(chǔ)資源的漢明編碼、三取二等方式。上 述方式有效保障了單機(jī)產(chǎn)品在故障后的最大運(yùn)行能力,對存儲(chǔ)資源的瞬時(shí)故障具有較好的 實(shí)時(shí)糾檢錯(cuò)能力。而在現(xiàn)代的星載電子設(shè)備的研制中,由于產(chǎn)品性能的提升、集成度和設(shè)計(jì) 規(guī)模的增加,大量大規(guī)模集成電路的使用,使得現(xiàn)有的診斷和容錯(cuò)方式已不能滿足星載電 子設(shè)備特別是星載計(jì)算機(jī)的應(yīng)用要求。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明針對現(xiàn)有技術(shù)存在的上述不足,提供了一種星載計(jì)算機(jī)的故障診斷方法, 本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn):
[0005] -種星載計(jì)算機(jī)的故障診斷方法,通過軟硬件協(xié)同工作的方式完成星載計(jì)算機(jī)的 故障診斷,包括:基于斷言的故障檢測,以及硬件故障事件驅(qū)動(dòng);
[0006] 基于斷言的故障檢測包括:
[0007] 星載計(jì)算機(jī)的硬件系統(tǒng)提供硬件驅(qū)動(dòng)參數(shù)的操作接口和數(shù)值范圍,由軟件回讀并 判斷;軟件對函數(shù)接口進(jìn)行輸入?yún)?shù)和狀態(tài)返回的檢測;通過斷言輸入?yún)?shù)的工作范圍, 當(dāng)判定輸入?yún)?shù)超出閾值時(shí),以軟中斷或回調(diào)函數(shù)的方式拋擲異常,并在處理器的異常處 理流程中完成故障診斷和恢復(fù);
[0008] 硬件故障事件驅(qū)動(dòng)包括:
[0009] 采用控制流、數(shù)據(jù)流的同步狀態(tài)反饋方式,以總線訪問的等待信號(hào)、錯(cuò)誤信號(hào)以及 中斷信號(hào)三種觸發(fā)方式中斷處理器當(dāng)前運(yùn)行流程,并根據(jù)事件驅(qū)動(dòng)源、反饋信息進(jìn)行故障 識(shí)別和恢復(fù)。
[0010] 較佳的,采用控制流、數(shù)據(jù)流的同步狀態(tài)反饋方式包括:
[0011] 對星載計(jì)算機(jī)的數(shù)據(jù)流按功能域或時(shí)鐘域進(jìn)行分割,分割得到若干功能單元,對 所分割的每個(gè)功能單元建立狀態(tài)機(jī),狀態(tài)機(jī)包括空閑態(tài)、工作態(tài)以及確認(rèn)態(tài)三種狀態(tài),對分 割點(diǎn)進(jìn)行控制流同步握手,同步握手包括狀態(tài)機(jī)的狀態(tài)確認(rèn)以及兩個(gè)功能單元之間的數(shù)據(jù) 通訊校驗(yàn),當(dāng)功能單元出錯(cuò)造成兩個(gè)功能單元之間的同步失敗或者通訊校驗(yàn)不正確時(shí),兩 個(gè)控制流同步握手失敗導(dǎo)致數(shù)據(jù)流無法鏈接,直至處理器總線訪問超時(shí),進(jìn)入總線訪問操 作異常流程。
[0012] 較佳的,分割得到若干功能單元包括:處理器譯碼相應(yīng)邏輯、主設(shè)備通訊控制邏 輯、從設(shè)備通訊控制邏輯、存儲(chǔ)控制邏輯以及接口訪問邏輯。
[0013] 較佳的,狀態(tài)機(jī)包括空閑態(tài)、工作態(tài)以及確認(rèn)態(tài)三種狀態(tài),三種狀態(tài)間的轉(zhuǎn)換條件 包括:當(dāng)前邏輯在空閑態(tài)下,檢測上級(jí)邏輯的啟動(dòng)流程標(biāo)識(shí)是否有效,以及下級(jí)邏輯是否處 于空閑態(tài),若判斷結(jié)果都為是則進(jìn)入工作態(tài),反之則不轉(zhuǎn)換;當(dāng)前邏輯在工作態(tài)下,檢測當(dāng) 前邏輯的工作流程是否結(jié)束,若判斷結(jié)果為是則進(jìn)入確認(rèn)態(tài),反之不轉(zhuǎn)換;當(dāng)前邏輯在確認(rèn) 態(tài)下,檢測上級(jí)邏輯的啟動(dòng)流程標(biāo)識(shí)是否無效,以及下級(jí)邏輯是否處于工作態(tài),若判斷結(jié)果 都為是則進(jìn)入空閑態(tài),反之則不轉(zhuǎn)換。
[0014] 較佳的,對于沒有總線等待標(biāo)識(shí)的處理器,在空閑態(tài)增加超時(shí)計(jì)數(shù)器,并在計(jì)數(shù)器 超過閾值時(shí)以中斷或總線錯(cuò)誤方式通知處理器。
【專利附圖】
【附圖說明】
[0015] 圖1所示的是本發(fā)明基于控制流的同步狀態(tài)反饋方式的流程圖;
[0016] 圖2所示的是本發(fā)明的狀態(tài)機(jī)示意圖;
[0017] 圖3所示的是本發(fā)明基于斷言的故障檢測的算法流程圖;
[0018] 圖4所示的是本發(fā)明事務(wù)級(jí)斷言的多數(shù)據(jù)源采集系統(tǒng)故障檢測示意圖。
【具體實(shí)施方式】
[0019] 以下將結(jié)合本發(fā)明的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述 和討論,顯然,這里所描述的僅僅是本發(fā)明的一部分實(shí)例,并不是全部的實(shí)例,基于本發(fā)明 中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施 例,都屬于本發(fā)明的保護(hù)范圍。
[0020] 為了便于對本發(fā)明實(shí)施例的理解,下面將結(jié)合附圖以具體實(shí)施例為例作進(jìn)一步的 解釋說明,且各個(gè)實(shí)施例不構(gòu)成對本發(fā)明實(shí)施例的限定。
[0021] 一種星載計(jì)算機(jī)的故障診斷方法,通過軟硬件協(xié)同工作的方式完成星載計(jì)算機(jī)的 故障診斷,包括:基于斷言的故障檢測,以及硬件故障事件驅(qū)動(dòng)。
[0022] 基于斷言的故障檢測是指處理器在外設(shè)的訪問時(shí)以交互響應(yīng)方式完成功能操作, 管理軟件通過端口操作訪問硬件功能接口,硬件系統(tǒng)響應(yīng)軟件操作并實(shí)時(shí)反饋控制狀態(tài), 管理軟件根據(jù)硬件反饋狀態(tài)進(jìn)行閾值的判定。當(dāng)數(shù)值超出閾值時(shí),管理軟件主動(dòng)拋擲異常。 對星載計(jì)算機(jī)的設(shè)備接口、通訊邏輯等簡單方式的功能接口,可由星載計(jì)算機(jī)的硬件系統(tǒng) 提供硬件驅(qū)動(dòng)參數(shù)的操作接口和數(shù)值范圍,由軟件回讀并判斷;軟件對函數(shù)接口進(jìn)行輸入 參數(shù)和狀態(tài)返回的檢測;通過斷言輸入?yún)?shù)的工作范圍,當(dāng)判定輸入?yún)?shù)超出閾值時(shí),以軟 中斷或回調(diào)函數(shù)的方式拋擲異常,并在處理器的異常處理流程中完成故障診斷和恢復(fù)。上 述的檢測方法可解決功能接口或通訊狀態(tài)的工作狀態(tài)判定,對于硬件中的復(fù)雜控制邏輯, 算法策略的實(shí)施,由于過程信息量大,故障的發(fā)生和解除過程短暫,使用處理器進(jìn)行信息的 采樣率無法滿足故障檢測的要求,為此,本發(fā)明提出一種事務(wù)級(jí)的故障檢測方法,采用了內(nèi) 建評估系統(tǒng)的功能測試方式,評估系統(tǒng)檢測功能邏輯并對過程的信息或信號(hào)狀態(tài)變換進(jìn)行 實(shí)時(shí)動(dòng)態(tài)監(jiān)測,對信息數(shù)值、信號(hào)狀態(tài)進(jìn)行"斷言",當(dāng)檢測到過程信息或信號(hào)狀態(tài)異常時(shí)進(jìn) 行錯(cuò)誤狀態(tài)的記錄。如圖4所示的多數(shù)據(jù)源采集設(shè)備中,采用多個(gè)緩存隊(duì)列進(jìn)行數(shù)據(jù)源的 存儲(chǔ),并實(shí)施調(diào)度策略通過調(diào)度器進(jìn)行數(shù)據(jù)的轉(zhuǎn)存,調(diào)度策略保證了各通道數(shù)據(jù)源數(shù)據(jù)的 接收能力,即緩存隊(duì)列不得出現(xiàn)數(shù)據(jù)溢出的情況,評估系統(tǒng)通過檢測緩存隊(duì)列的滿標(biāo)志信 號(hào)和寫隊(duì)列信號(hào),并"斷言兩個(gè)信號(hào)不同時(shí)有效",當(dāng)"斷言"失效時(shí),評估系統(tǒng)進(jìn)行錯(cuò)誤計(jì)數(shù) 并反饋給處理器或主控系統(tǒng)。處理器或主控單元檢測計(jì)數(shù)不為零時(shí),以軟件"斷言方式"拋 擲異常,并按上述方法進(jìn)入異常處理流程。
[0023] 在本發(fā)明中所述的"斷言"、"軟中斷"、"回調(diào)函數(shù)"皆為本領(lǐng)域的公知名稱及技術(shù), 本發(fā)明對此不做詳細(xì)贅述。
[0024] 主動(dòng)式的基于斷言的故障檢測是針對硬件設(shè)備驅(qū)動(dòng)實(shí)施的故障檢測方法,所檢測 邏輯為設(shè)備中由驅(qū)動(dòng)軟件直接操作的接口邏輯,對設(shè)備中自主工作的控制流、控制邏輯為 設(shè)備驅(qū)動(dòng)不可見部分。為此本發(fā)明按數(shù)據(jù)流向和控制方式將控制流分割為多個(gè)數(shù)據(jù)加工過 程,。被分割的多個(gè)數(shù)據(jù)加工過程在信息交互時(shí)通過控制狀態(tài)握手,通訊數(shù)據(jù)校驗(yàn)等方式同 步。控制邏輯前端即與處理器交互的控制邏輯通過處理器的等待控制信號(hào)、中斷信號(hào)、錯(cuò)誤 提示信號(hào)與處理器完成同步。當(dāng)數(shù)據(jù)流的控制鏈路某環(huán)節(jié)出現(xiàn)異常時(shí),相關(guān)的兩組控制邏 輯無法同步,造成該兩組控制邏輯失效,并最終影響整個(gè)數(shù)據(jù)流鏈路的同步,直至前端控制 邏輯與處理器的同步邏輯失效,引發(fā)處理器等待超時(shí)異?;蚴鼓茉O(shè)備錯(cuò)誤中斷,對沒有總 線等待狀態(tài)接口的處理器通過中斷或錯(cuò)誤標(biāo)志通知處理器,并通過管理軟件的異常處理實(shí) 施故障的恢復(fù)。如圖1所示,星載計(jì)算機(jī)的信息控制流程包括數(shù)據(jù)通訊處理、接口訪問操 作、信號(hào)處理、指令驅(qū)動(dòng)等功能。整個(gè)流程按功能種類或時(shí)鐘域的不同進(jìn)行了流程的分割, 分為處理器譯碼響應(yīng)邏輯,主設(shè)備通訊控制邏輯,從設(shè)備通訊控制邏輯,存儲(chǔ)控制邏輯以及 接口訪問邏輯。各部分邏輯功能說明如下 :
[0025] 處理器譯碼響應(yīng)邏輯:接收處理器的端口訪問操作,維護(hù)和響應(yīng)處理器的總線周 期,包括處理器等待信號(hào)(RDY)的交互。等待信號(hào)(RDY)是外設(shè)向處理器表明總線上數(shù)據(jù) 準(zhǔn)備好的標(biāo)志,當(dāng)?shù)却盘?hào)無效時(shí),處理器等待外設(shè)向總線提供數(shù)據(jù),直至數(shù)據(jù)準(zhǔn)備好或總 線周期超時(shí)。
[0026] 主設(shè)備通訊控制邏輯:接收經(jīng)處理器功能轉(zhuǎn)移后的操作指令,并啟動(dòng)外部通訊總 線完成與從設(shè)備的通訊交互。
[0027] 從設(shè)備通訊控制邏輯:維護(hù)與主處理器的通訊,并將總線發(fā)送的數(shù)據(jù)或命令傳送 至本地模塊的存儲(chǔ)控制邏輯。
[0028] 存儲(chǔ)控制邏輯:接收總線傳送的數(shù)據(jù)或命令,對總線數(shù)據(jù)進(jìn)行加工或?qū)γ钸M(jìn)行 轉(zhuǎn)譯,將數(shù)據(jù)或命令提交至接口訪問邏輯。
[0029] 接口訪問邏輯:執(zhí)行處理器的命令或進(jìn)行數(shù)據(jù)通訊的功能單元,完成與外部功能 接口的通訊交互,執(zhí)行或?qū)嵤﹣碜蕴幚砥鞯拿睢?br>
[0030] 星載計(jì)算機(jī)的接口訪問操作經(jīng)過了上述5個(gè)功能單元,每個(gè)功能單元建立如圖2 所示的狀態(tài)機(jī),狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換條件如表1所示。圖2中的空閑態(tài)和確認(rèn)態(tài)是本實(shí)施例 中的兩個(gè)同步點(diǎn)。在空閑態(tài)下,功能單元檢測上級(jí)邏輯的控制流程標(biāo)志啟動(dòng)包括數(shù)據(jù)有效 性的判定,并判斷下級(jí)邏輯單元是否處于可操作狀態(tài),僅當(dāng)兩個(gè)條件同時(shí)滿足時(shí)轉(zhuǎn)入工作 態(tài)。在確認(rèn)態(tài)下,功能單元檢測上級(jí)功能單元的啟動(dòng)標(biāo)識(shí)是否結(jié)束,并確認(rèn)下級(jí)流程是否進(jìn) 入工作狀態(tài),僅當(dāng)兩個(gè)條件均滿足時(shí)返回空閑態(tài)。對于處理器響應(yīng)邏輯,處理器的總線訪問 為該單元的流程啟動(dòng)標(biāo)識(shí),并在本單元為空閑狀態(tài)時(shí)響應(yīng)處理器的總線等待標(biāo)識(shí)(RDY)信 號(hào)。當(dāng)某功能單元因邏輯失效或數(shù)據(jù)校驗(yàn)錯(cuò)誤陷入空閑態(tài)時(shí),其上級(jí)功能單元死鎖于確認(rèn) 態(tài),當(dāng)某功能單元因故障陷入非空閑態(tài)時(shí),其上級(jí)邏輯死鎖于空閑態(tài)。依次類推直至處理器 響應(yīng)邏輯陷入死鎖,造成處理器總線等待標(biāo)識(shí)無效,直至處理器總線訪問超時(shí),處理器進(jìn)行 總線訪問操作異常流程。對于沒有總線等待標(biāo)識(shí)的處理器,在空閑態(tài)增加超時(shí)計(jì)數(shù)器,并在 計(jì)數(shù)器超過閾值時(shí),以中斷或總線錯(cuò)誤方式通知處理器。
【權(quán)利要求】
1. 一種星載計(jì)算機(jī)的故障診斷方法,其特征在于,通過軟硬件協(xié)同工作的方式完成星 載計(jì)算機(jī)的故障診斷,包括:基于斷言的故障檢測,以及硬件故障事件驅(qū)動(dòng); 所述基于斷言的故障檢測包括: 星載計(jì)算機(jī)的硬件系統(tǒng)提供硬件驅(qū)動(dòng)參數(shù)的操作接口和數(shù)值范圍,由軟件回讀并判 斷;軟件對函數(shù)接口進(jìn)行輸入?yún)?shù)和狀態(tài)返回的檢測;通過斷言輸入?yún)?shù)的工作范圍,當(dāng) 判定輸入?yún)?shù)超出閾值時(shí),以軟中斷或回調(diào)函數(shù)的方式拋擲異常,并在處理器的異常處理 流程中完成故障診斷和恢復(fù); 所述硬件故障事件驅(qū)動(dòng)包括: 采用控制流、數(shù)據(jù)流的同步狀態(tài)反饋方式,以總線訪問的等待信號(hào)、錯(cuò)誤信號(hào)以及中斷 信號(hào)三種觸發(fā)方式中斷處理器當(dāng)前運(yùn)行流程,并根據(jù)事件驅(qū)動(dòng)源、反饋信息進(jìn)行故障識(shí)別 和恢復(fù)。
2. 根據(jù)權(quán)利要求1所述的星載計(jì)算機(jī)的故障診斷方法,其特征在于,所述采用控制流、 數(shù)據(jù)流的同步狀態(tài)反饋方式包括: 對星載計(jì)算機(jī)的數(shù)據(jù)流按功能域或時(shí)鐘域進(jìn)行分割,分割得到若干功能單元,對所分 割的每個(gè)功能單元建立狀態(tài)機(jī),所述狀態(tài)機(jī)包括空閑態(tài)、工作態(tài)以及確認(rèn)態(tài)三種狀態(tài),對分 割點(diǎn)進(jìn)行控制流同步握手,所述同步握手包括狀態(tài)機(jī)的狀態(tài)確認(rèn)以及兩個(gè)功能單元之間 的數(shù)據(jù)通訊校驗(yàn),當(dāng)功能單元出錯(cuò)造成兩個(gè)功能單元之間的同步失敗或者通訊校驗(yàn)不正確 時(shí),兩個(gè)控制流同步握手失敗導(dǎo)致數(shù)據(jù)流無法鏈接,直至處理器總線訪問超時(shí),進(jìn)入總線訪 問操作異常流程。
3. 根據(jù)權(quán)利要求2所述的星載計(jì)算機(jī)的故障診斷方法,其特征在于,分割得到若干功 能單元包括:處理器譯碼相應(yīng)邏輯、主設(shè)備通訊控制邏輯、從設(shè)備通訊控制邏輯、存儲(chǔ)控制 邏輯以及接口訪問邏輯。
4. 根據(jù)權(quán)利要求2所述的星載計(jì)算機(jī)的故障診斷方法,其特征在于,所述狀態(tài)機(jī)包括 空閑態(tài)、工作態(tài)以及確認(rèn)態(tài)三種狀態(tài),三種狀態(tài)間的轉(zhuǎn)換條件包括:當(dāng)前邏輯在空閑態(tài)下, 檢測上級(jí)邏輯的啟動(dòng)流程標(biāo)識(shí)是否有效,以及下級(jí)邏輯是否處于空閑態(tài),若判斷結(jié)果都為 是則進(jìn)入工作態(tài),反之則不轉(zhuǎn)換;當(dāng)前邏輯在工作態(tài)下,檢測當(dāng)前邏輯的工作流程是否結(jié) 束,若判斷結(jié)果為是則進(jìn)入確認(rèn)態(tài),反之不轉(zhuǎn)換;當(dāng)前邏輯在確認(rèn)態(tài)下,檢測上級(jí)邏輯的啟 動(dòng)流程標(biāo)識(shí)是否無效,以及下級(jí)邏輯是否處于工作態(tài),若判斷結(jié)果都為是則進(jìn)入空閑態(tài),反 之則不轉(zhuǎn)換。
5. 根據(jù)權(quán)利要求4所述的星載計(jì)算機(jī)的故障診斷方法,其特征在于,對于沒有總線等 待標(biāo)識(shí)的處理器,在空閑態(tài)增加超時(shí)計(jì)數(shù)器,并在計(jì)數(shù)器超過閾值時(shí)以中斷或總線錯(cuò)誤方 式通知處理器。
【文檔編號(hào)】G06F11/07GK104050051SQ201410301310
【公開日】2014年9月17日 申請日期:2014年6月27日 優(yōu)先權(quán)日:2014年6月27日
【發(fā)明者】花秋琴 申請人:上海航天電子通訊設(shè)備研究所