本發(fā)明屬于計算機(jī),具體涉及一種ima系統(tǒng)主從機(jī)制實(shí)現(xiàn)方法及系統(tǒng)。
背景技術(shù):
1、綜合模塊化航電(ima,integrated?modular?avionics)系統(tǒng)是一種集成化的模塊化航空電子系統(tǒng),被廣泛用于現(xiàn)代飛機(jī)中。它將原本分散在飛機(jī)中各個子系統(tǒng)的電子設(shè)備整合到一個統(tǒng)一的平臺上,以提高系統(tǒng)的可靠性、靈活性和維護(hù)性。ima系統(tǒng)的核心思想是將不同的航空電子功能模塊化,并以標(biāo)準(zhǔn)化的方式進(jìn)行集成。每個功能模塊都具有自己的計算和通信能力,并通過高速數(shù)據(jù)總線進(jìn)行交互。這樣,各個模塊之間可以獨(dú)立開發(fā)、測試和更新,而不會相互干擾。同時,ima系統(tǒng)還提供了可靠的冗余機(jī)制,以確保系統(tǒng)在故障情況下的穩(wěn)定運(yùn)行。通過使用ima系統(tǒng),飛機(jī)制造商可以減少飛機(jī)的重量和復(fù)雜性,提高飛機(jī)的靈活性和適應(yīng)性。此外,ima系統(tǒng)還支持軟件定義的功能,使飛機(jī)的功能可以根據(jù)需求進(jìn)行定制和擴(kuò)展,而無需進(jìn)行硬件更改,這為飛機(jī)的更新和升級提供了更便捷的方式。隨著ima技術(shù)的發(fā)展,分布式集成模塊化航電(dima,distributed-ima)開始在航電系統(tǒng)中應(yīng)用,基于總線技術(shù),將一個ima系統(tǒng)分割成若干子ima系統(tǒng),各子系統(tǒng)之間通過總線進(jìn)行數(shù)據(jù)通信和系統(tǒng)交聯(lián),能夠解決ima系統(tǒng)將所有計算資源集中與某區(qū)域的問題。圖1描述的是一個典型的dima平臺,其硬件架構(gòu)由一系列通用處理單元(gpu,general?processing?unit)和信號處理模塊(dspm,digital?signal?processing?module)組成,各處理模塊通過網(wǎng)絡(luò)交換機(jī)進(jìn)行數(shù)據(jù)交互。dima系統(tǒng)使用多個處于同步收發(fā)信息和處理數(shù)據(jù)的熱備份狀態(tài)的功能模塊,當(dāng)主模塊故障時,需要進(jìn)行故障識別和故障隔離,然后通過仲裁啟用其中一個熱備份模塊接替原故障模塊繼續(xù)支撐系統(tǒng)功能,實(shí)現(xiàn)無縫切換,保障系統(tǒng)功能完成性,提高系統(tǒng)的可靠性。以兩臺互為熱備份的ima子系統(tǒng)為例,實(shí)際使用過程中,這兩臺ima子系統(tǒng)需要實(shí)現(xiàn)主從機(jī)制,均正常工作時,其中一臺設(shè)備為主,另一臺為從。當(dāng)工作在主模式的設(shè)備發(fā)生故障時,工作在從模式的設(shè)備需要切換為主模式,完成預(yù)定的系統(tǒng)功能。如何確保系統(tǒng)能夠正確地工作在主從模式,并順利完成工作狀態(tài)的轉(zhuǎn)換至關(guān)重要。
2、ima系統(tǒng)的主備切換一般需要依賴外圍的硬件環(huán)境,例如總線網(wǎng)絡(luò)的心跳信號、硬件信號等。僅使用心跳信號或者硬件信號的檢測機(jī)制存在可靠性不高的問題,以圖1為例,如果dpm1和dpm2只依賴于總線網(wǎng)絡(luò)的心跳信號,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)異常時,會導(dǎo)致dpm1和dpm2處于競爭狀態(tài),同時切換為主工作模式,從而引發(fā)系統(tǒng)工作異常。依賴網(wǎng)絡(luò)心跳還意味著gpu1和gpu2之間的通信必須以交換機(jī)正常工作為前提,如果系統(tǒng)上電后交換機(jī)在gpu1和gpu2開始搶權(quán)之后才正常工作,則可能導(dǎo)致gpu1和gpu2主從切換機(jī)制失敗。依賴總線網(wǎng)絡(luò)還存在適配的問題,afdx網(wǎng)絡(luò)或者光纖通道網(wǎng)絡(luò)均需要針對網(wǎng)絡(luò)消息進(jìn)行定制,增加系統(tǒng)設(shè)計的協(xié)調(diào)難度。
技術(shù)實(shí)現(xiàn)思路
1、為了解決ima子系統(tǒng)實(shí)現(xiàn)主從機(jī)制可靠性較低的問題,本發(fā)明提出了一種ima系統(tǒng)主從機(jī)制實(shí)現(xiàn)方法及系統(tǒng),分別在gpu1和gpu2設(shè)計兩路rs422電平接口,其中一路設(shè)計為離散量,另一路設(shè)計為標(biāo)準(zhǔn)rs422接口,用于兩個gpu應(yīng)用軟件之間的心跳信號收發(fā)。通過軟硬件配合的方式,綜合判斷離散量信號和標(biāo)準(zhǔn)rs422通信發(fā)送的心跳信號,實(shí)現(xiàn)ima系統(tǒng)主從切換功能,所述技術(shù)方案如下:
2、第一方面,提供一種ima系統(tǒng)主從機(jī)制實(shí)現(xiàn)系統(tǒng),包括:gpu1和gpu2,gpu1和gpu2通過網(wǎng)絡(luò)交換機(jī)進(jìn)行網(wǎng)絡(luò)交聯(lián),并通過兩路rs422總線接口直連,一路設(shè)計為離散量,采用輸入端上拉,在無遠(yuǎn)端連接的情況下輸入邏輯“1”;另一路設(shè)計為標(biāo)準(zhǔn)rs422接口,用于兩個gpu應(yīng)用軟件之間的心跳信號收發(fā)。
3、第二方面,提供一種ima系統(tǒng)主從機(jī)制實(shí)現(xiàn)方法,用于第一方面所述的ima系統(tǒng)主從機(jī)制實(shí)現(xiàn)系統(tǒng),所述方法包括:
4、步驟1、gpu1和gpu2上電后,執(zhí)行搶權(quán)操作;
5、步驟2、進(jìn)入“從模式”狀態(tài)的gpu在檢測到主gpu進(jìn)入故障狀態(tài)后會切換到“主模式”;
6、步驟3、“進(jìn)入“主模式”狀態(tài)的gpu在出現(xiàn)故障后,觸發(fā)主從切換流程,進(jìn)入“從模式”工作狀態(tài)。
7、可選地,步驟1包括:
8、兩個gpu上電后均需要多次讀取離散量狀態(tài)并進(jìn)行判斷,以確定是否開始搶權(quán):對于每個gpu,當(dāng)應(yīng)用軟件檢測到輸入的離散量為“0”時確定當(dāng)前系統(tǒng)已經(jīng)存在主控單元,則應(yīng)用軟件讀取rs422數(shù)據(jù)并判斷主控工作狀態(tài);當(dāng)rs422數(shù)據(jù)符合預(yù)設(shè)條件時應(yīng)用軟件確定主控工作狀態(tài)正確,并控制本gpu直接轉(zhuǎn)入從模式工作狀態(tài);否則,進(jìn)入搶權(quán)狀態(tài);
9、根據(jù)預(yù)先定義的主從關(guān)系對兩個gpu的邏輯電路計數(shù)器分別設(shè)置不同的倒計時值,默認(rèn)主gpu的倒計時值mt小,默認(rèn)從gpu的倒計時值st大;
10、正常啟動后,默認(rèn)為主gpu的邏輯電路計時器首先清零,同時邏輯電路發(fā)送中斷指令到處理器,處理器分發(fā)相應(yīng)的中斷信息到應(yīng)用軟件,應(yīng)用軟件接收到該中斷信息時認(rèn)為本gpu已經(jīng)成功搶權(quán)到主控權(quán),此時應(yīng)用軟件發(fā)送模式切換命令到邏輯電路,邏輯電路設(shè)置本gpu的工作模式為主模式,并設(shè)置rs422輸出的離散量為“0”,啟動主控權(quán)維護(hù)看門狗計時器;
11、作為主的gpu的應(yīng)用軟件通過rs422總線以32bit為單位,從0開始步進(jìn)為1發(fā)送本地心跳信息到對端的應(yīng)用軟件,以通知對端gpu本方已經(jīng)獲取到控制權(quán);
12、默認(rèn)為從的gpu的邏輯電路檢測到輸入的離散量為“0”后,停止計數(shù),并上報中斷指令到處理器,處理器設(shè)置本gpu的工作狀態(tài)為從模式,同時設(shè)置軟件工作模式為從,輸出離散量繼續(xù)保持為“1”,同時通過rs422接口周期發(fā)送本地心跳信息到主端gpu。
13、可選地,步驟2包括:
14、工作在“從模式”的gpu周期接收并判斷工作在“主模式”的gpu通過rs422總線發(fā)送的心跳信息以及輸入離散量狀態(tài),以檢測主gpu控制權(quán)的維護(hù)以及運(yùn)行狀態(tài)是否正常;當(dāng)主gpu控制權(quán)的維護(hù)以及運(yùn)行狀態(tài)不正常,確定主gpu出現(xiàn)故障;當(dāng)主gpu出現(xiàn)故障后,無法正常喂狗導(dǎo)致看門狗超時后,會導(dǎo)致從gpu無法正常接收到rs422心跳信息并檢測到輸入的離散量為“1”;
15、工作在“從模式”的gpu根據(jù)rs422心跳信息以及離散量綜合判斷后切換到“主模式”工作狀態(tài),設(shè)置rs422輸出的離散量為“0”,啟動主控權(quán)維護(hù)看門狗計時器,此時,工作在“從模式”的gpu變?yōu)橹鱣pu;
16、主gpu的應(yīng)用軟件進(jìn)入“主模式”工作狀態(tài),通過rs422總線發(fā)送本地的心跳信息給另外一gpu。
17、可選地,步驟3包括:
18、工作在“主模式”的gpu通過rs422周期性輸出本gpu的心跳信息,并給底層邏輯電路喂狗,啟動主動權(quán)維護(hù)功能,保持輸出的離散量為“0”;當(dāng)工作在“主模式”的gpu出現(xiàn)故障后,無法正常周期性輸出rs422心跳信息,也無法正常喂狗;
19、工作在“主模式”的gpu的邏輯電路在看門狗超時后將輸出的離散量設(shè)置為“1”,并保持t秒,然后復(fù)位本gpu;
20、復(fù)位啟動后的gpu進(jìn)入初始上電狀態(tài),重新進(jìn)入搶權(quán)模式;
21、復(fù)位啟動后,由于已經(jīng)存在工作在“主模式”的gpu,本gpu將切換為“從模式”工作狀態(tài)。
22、可選地,t等于1,保持1秒鐘是為了讓工作在“從模式”下的gpu有足夠的時間檢測到輸入的離散量為“1”。
23、可選地,st=mt*3。
24、可選地,mt為1秒,st3為秒。
25、可選地,啟動主控權(quán)維護(hù)看門狗計時器時,時間為0.5秒。
26、本發(fā)明應(yīng)用于直升機(jī)ima系統(tǒng)主從切換,可滿足機(jī)載環(huán)境下對軟硬件應(yīng)用的高可靠性需求,由于采用了心跳信號結(jié)合離散量的雙保險機(jī)制,當(dāng)心跳信號通信線路或者離散量信號線路單獨(dú)發(fā)生故障時,能夠確保系統(tǒng)工作在預(yù)先設(shè)計的工作狀態(tài)下,不會破壞系統(tǒng)的主從工作機(jī)制。當(dāng)主模塊發(fā)生故障時,心跳信號無法正常發(fā)送,離散量信號會被設(shè)置為“1”,此時啟用熱備份模塊接替故障模塊繼續(xù)維持平臺功能,實(shí)現(xiàn)硬件模塊的無縫切換,經(jīng)實(shí)驗(yàn)驗(yàn)證,本發(fā)明完全滿足型號研制使用需求,是保證平臺功能完整性和提高平臺可靠性的基礎(chǔ)。