本發(fā)明適用于臨近空間艇載計(jì)算機(jī)領(lǐng)域,尤其涉及一種臨近空間艇載計(jì)算機(jī)多CPU系統(tǒng)自適應(yīng)重構(gòu)方法。
背景技術(shù):
:平流層飛艇是一種輕于空氣的浮空器,依靠空氣浮力駐空,可以長(zhǎng)期懸浮于任意地理位置的平流層高空,全天候連續(xù)工作,特別適合我國(guó)國(guó)土與邊境地區(qū)的對(duì)地觀測(cè)應(yīng)用。艇載計(jì)算機(jī)相當(dāng)于飛艇的大腦,作為飛艇平臺(tái)的綜合管理中心,將導(dǎo)航控制、環(huán)境控制、數(shù)傳和天線、遙測(cè)遙控以及能源和推進(jìn)各個(gè)分系統(tǒng)組成一個(gè)有機(jī)的整體,完成任務(wù)規(guī)劃要求的飛行任務(wù)、載荷任務(wù),及時(shí)采集和下傳遙測(cè)數(shù)據(jù)、載荷信息,執(zhí)行地面測(cè)控站的遙控指令,是空中和地面指揮系統(tǒng)的聯(lián)系樞紐。因此,艇載計(jì)算機(jī)的性能直接影響到飛艇平臺(tái)完成任務(wù)的性能優(yōu)劣,其可靠性決定了飛艇的生存能力。平流層飛艇長(zhǎng)期駐空?qǐng)?zhí)行任務(wù)的特點(diǎn),增加了艇載計(jì)算機(jī)執(zhí)行任務(wù)期間出現(xiàn)故障錯(cuò)誤的概率,為了保證飛行安全,要求艇載計(jì)算機(jī)應(yīng)具有功能完善、性能優(yōu)秀、高穩(wěn)定性與可靠性指標(biāo)。為了提高艇載計(jì)算機(jī)的可靠性,單純依靠提高元器件及部件的質(zhì)量和提高裝配工藝質(zhì)量很難達(dá)到要求,因而需要從艇載計(jì)算機(jī)的體系結(jié)構(gòu)入手,采用冗余設(shè)計(jì),并配以合適的容錯(cuò)控制策略,以保證飛行管理及控制的正確進(jìn)行。艇載計(jì)算機(jī)容錯(cuò)方案的選擇受到體積、功耗的限制,既不能過(guò)于復(fù)雜,又必須保證一定的可靠性。在機(jī)載或星載計(jì)算機(jī)的容錯(cuò)方案中,常用的冗余方式有:二余度、三余度及四余度。美國(guó)的F16戰(zhàn)斗機(jī)采用了四余度數(shù)字計(jì)算機(jī)系統(tǒng),著名的高空長(zhǎng)航時(shí)偵察無(wú)人機(jī)“全球鷹”,采用了雙模冗余飛行控制計(jì)算機(jī),高空偵打一體無(wú)人機(jī)“捕食者”采用了三余度飛行控制計(jì)算機(jī)系統(tǒng)(參見(jiàn)文獻(xiàn)[1]GregLoegering,DavidEvans.Theevolutionoftheglobalhawk&maldavionicssystems.Proceedingofthe18thDigitalAvionicsSystemsConference,1999,10(2):24~29;文獻(xiàn)[2]RichardR.Grafton.Predatorunmannedairvehiclesystem.SPIEConfernceonairbornereconnaissanceXXIII,1999,7:53~63;文獻(xiàn)[3]StephenACambone,KennethJKrieg,PeterPace,etal.UnmannedAircraftSystems(UAS)roadmap.OfficeoftheSecretaryofDefense,2005:1~77.)哈爾濱工業(yè)大學(xué)“試驗(yàn)衛(wèi)星一號(hào)”星載計(jì)算機(jī)選用了雙余度系統(tǒng)(參見(jiàn)文獻(xiàn)[4]:向琳吳翔虎廖明宏崔剛楊孝宗微小衛(wèi)星星務(wù)計(jì)算機(jī)系統(tǒng)的容錯(cuò)控制策略研究[J].宇航學(xué)報(bào).2005.27(3):400-403),中科院“創(chuàng)新一號(hào)”衛(wèi)星星載計(jì)算機(jī)采用了雙機(jī)熱備控制策略(參見(jiàn)文獻(xiàn)[5]王平孫寧李華旺包海超尹曾山小衛(wèi)星星載容錯(cuò)計(jì)算機(jī)系統(tǒng)軟硬件設(shè)計(jì)[J]宇航學(xué)報(bào).2006.27(3):412-415)。南京航空航天大學(xué)開(kāi)發(fā)了無(wú)人機(jī)分布式雙余度飛控計(jì)算機(jī)(參見(jiàn)文獻(xiàn)[6]張志文.雙通道余度飛行控制計(jì)算機(jī)關(guān)鍵技術(shù)研究,[碩士學(xué)位論文].南京:南京航空航天大學(xué),2012);由于三模表決策略在短壽命的應(yīng)用系統(tǒng)中的可靠度比較高,而在長(zhǎng)壽命的系統(tǒng)中,其可靠度小于雙冗余系統(tǒng)(參見(jiàn)文獻(xiàn)[7]向琳曲峰崔剛楊孝宗小衛(wèi)星星務(wù)計(jì)算機(jī)的容錯(cuò)體系結(jié)構(gòu)設(shè)計(jì)[J].航天控制2005.23(2)92-95);所以在平流層飛艇艇載計(jì)算機(jī)余度方案中選擇了雙冗余方案。采用A、B機(jī)互為備份,均使用Powerpc處理器。艇載計(jì)算機(jī)采用對(duì)稱(chēng)結(jié)構(gòu)設(shè)計(jì),包含兩個(gè)中央處理單元(CPUA0/CPUB0)、兩個(gè)串行擴(kuò)展單元(CPUA1/CPUB1)和兩個(gè)1553B擴(kuò)展單元(CPUA2/CPUB2),相同的功能單元具有相同的硬件配置,采用了相似余度,各類(lèi)通信單元接口都采用握手工作方式。兩個(gè)中央處理單元各包含兩路CAN接口、5路RS422接口,以及DI及DO接口,負(fù)責(zé)飛行控制律解算、數(shù)據(jù)管理、遙測(cè)遙控及載荷管理等功能,為系統(tǒng)的主控單元。兩個(gè)串行口擴(kuò)展單元各包含5路RS422總線,作為串行接口擴(kuò)展單元,負(fù)責(zé)與RS422接口外設(shè)的輸入輸出信息傳輸,包括信息的采集、預(yù)處理與輸出,為系統(tǒng)的從屬單元。兩個(gè)1553B擴(kuò)展單元各包含兩路1553B接口,負(fù)責(zé)與1553B接口外部節(jié)點(diǎn)的輸入輸出信息傳輸,包括信息的采集、預(yù)處理與輸出,也作為系統(tǒng)的從屬單元。艇載計(jì)算機(jī)與其他艇載設(shè)備數(shù)據(jù)交互依靠構(gòu)艇載計(jì)算機(jī)接口信息交互體系來(lái)完成。其通信過(guò)程具體為:兩個(gè)中央處理單元通過(guò)身份識(shí)別決定哪個(gè)中央處理單元為主中央處理單元,通過(guò)共享內(nèi)存、消息郵箱及數(shù)據(jù)總線相結(jié)合的方式進(jìn)行余度管理,主中央處理單元通過(guò)CAN/1553B總線接收導(dǎo)航子系統(tǒng)、大氣環(huán)境子系統(tǒng)及能源系統(tǒng)的上行數(shù)據(jù),然后進(jìn)行飛行控制律解算、管理控制和自主導(dǎo)航功能,主中央處理單元擁有下行數(shù)據(jù)的權(quán)利,通過(guò)CAN/RS422總線下行數(shù)據(jù),完成對(duì)動(dòng)力系統(tǒng)螺旋槳的控制。艇載計(jì)算機(jī)硬件結(jié)構(gòu)如圖1所示:各CPU之間的橢圓表示共享內(nèi)存,雙向箭頭表示消息郵箱。余度設(shè)計(jì)中常常采用心跳的辦法實(shí)現(xiàn)對(duì)對(duì)方機(jī)運(yùn)行狀態(tài)的監(jiān)視,如圖2所示,箭頭指向的CPU為監(jiān)控CPU。當(dāng)雙機(jī)之間的心跳信號(hào)出現(xiàn)故障時(shí),說(shuō)明系統(tǒng)出現(xiàn)了故障,需要進(jìn)行故障診斷。當(dāng)接收不到對(duì)方機(jī)的心跳信號(hào)時(shí),可能出現(xiàn)的故障因素有以下兩種:1)主機(jī)或備機(jī)自身軟件或硬件出現(xiàn)了故障;2)心跳線出現(xiàn)了故障。如何去判斷究竟是哪種原因引起的故障比較困難,特別是當(dāng)心跳線本身出現(xiàn)故障時(shí)候,這時(shí)候主機(jī)和備機(jī)都認(rèn)為是對(duì)方出現(xiàn)了故障,主機(jī)會(huì)將對(duì)方機(jī)切出雙機(jī)系統(tǒng),進(jìn)入單機(jī)工作狀態(tài),而備機(jī)將會(huì)嘗試接替主機(jī)的工作,使自己進(jìn)入工作狀態(tài),此時(shí)控制系統(tǒng)中存在兩個(gè)控制器同時(shí)處于工作狀態(tài)的混亂局面,即出現(xiàn)所謂的雙主機(jī)現(xiàn)象(文獻(xiàn)[8]:曹明濤.基于VxWorks的嵌入式控制器的雙機(jī)熱備系統(tǒng)應(yīng)用,[碩士學(xué)位論文].南京:南京郵電大學(xué),2012)。余度管理是艇載計(jì)算機(jī)設(shè)計(jì)的關(guān)鍵,保證艇載計(jì)算機(jī)在遇到故障時(shí)能夠?qū)崟r(shí)檢測(cè)出故障,診斷出故障類(lèi)型,對(duì)故障處理并完成系統(tǒng)重構(gòu)。合理的余度管理能夠?qū)崟r(shí)監(jiān)控故障的發(fā)生,系統(tǒng)發(fā)生故障時(shí),將系統(tǒng)的性能損失降低到最小,從而保證飛行安全,所以余度管理的設(shè)計(jì)尤為重要。根據(jù)艇載計(jì)算機(jī)硬件配置特性,設(shè)計(jì)合理的余度管理策略,需要設(shè)計(jì)的內(nèi)容包括:故障檢測(cè)與診斷、系統(tǒng)重構(gòu)與恢復(fù)。目前關(guān)于臨近空間艇載計(jì)算機(jī)的文獻(xiàn)較少,比較常見(jiàn)的是星載、機(jī)載計(jì)算機(jī),余度結(jié)構(gòu)也包含雙余度、三余度等。由于三模表決方案在短壽命的應(yīng)用系統(tǒng)中的可靠度比較高,而在長(zhǎng)壽命的系統(tǒng)中,其可靠度小于雙冗余系統(tǒng)。由于平流層飛艇長(zhǎng)期駐空的要求,幾個(gè)月甚至半年,所以艇載計(jì)算機(jī)選擇雙余度結(jié)構(gòu)更為合適。目前雙余度計(jì)算機(jī)中多采取系統(tǒng)級(jí)冗余,其可靠性低于模塊級(jí)冗余。默認(rèn)情況下,主機(jī)工作,備機(jī)通過(guò)心跳檢測(cè)主機(jī)的工作狀態(tài),若檢測(cè)到主機(jī)發(fā)生故障,備機(jī)成為新的主機(jī),繼續(xù)工作。由于采用心跳方式進(jìn)行故障檢測(cè),當(dāng)心跳線損壞時(shí),無(wú)法定位是主機(jī)故障還是心跳線故障,即使采取了冗余心跳,也存在同態(tài)故障的風(fēng)險(xiǎn)。另外,若A機(jī)故障,B機(jī)接管工作后,B機(jī)某個(gè)單元又出現(xiàn)了故障,整個(gè)系統(tǒng)將無(wú)法正常工作。目前模塊級(jí)冗余的雙余度計(jì)算機(jī)采用插板式結(jié)構(gòu),核心部件一般包括中央處理單元和串口通訊單元、開(kāi)關(guān)量接口單元等,各功能單元都插在底板上,通過(guò)底板的內(nèi)總線進(jìn)行通信。中央處理單元只能夠通過(guò)內(nèi)總線數(shù)據(jù)對(duì)其他單元實(shí)現(xiàn)故障檢測(cè),檢測(cè)方法單一,一旦內(nèi)總線損壞,則導(dǎo)致無(wú)法檢測(cè),因此可靠性不高,即使內(nèi)總線采用了冗余結(jié)構(gòu),但仍存在同態(tài)故障的風(fēng)險(xiǎn)。當(dāng)某個(gè)單元發(fā)生故障時(shí)候,系統(tǒng)重構(gòu),備用單元接替故障單元,與原來(lái)相關(guān)單元組成系統(tǒng)繼續(xù)工作,但當(dāng)內(nèi)總線損壞時(shí),導(dǎo)致系統(tǒng)癱瘓。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于克服目前艇載計(jì)算機(jī)系統(tǒng)在余度管理上存在的上述問(wèn)題,提出了一種臨近空間艇載計(jì)算機(jī)多CPU系統(tǒng)自適應(yīng)重構(gòu)方法,該方法基于中央處理單元(A0/B0)與RS422接口單元(A1/B1)、1553B擴(kuò)展單元(A2/B2)之間存在共享內(nèi)存及消息郵箱,通過(guò)“看門(mén)狗”加“心跳”的異構(gòu)方式進(jìn)行CPU互檢測(cè),使故障定位到單元級(jí);然后將主備系統(tǒng)中的單元進(jìn)行組合,從而實(shí)現(xiàn)系統(tǒng)的重構(gòu)。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種臨近空間艇載計(jì)算機(jī)多CPU系統(tǒng)自適應(yīng)重構(gòu)方法,所述多CPU系統(tǒng)包括兩個(gè)相同的分系統(tǒng):主用分系統(tǒng)和備份分系統(tǒng);所述主用分系統(tǒng)包括:中央處理單元A0、RS422接口單元A1和1553B擴(kuò)展單元A2;所述備份分系統(tǒng)包括:中央處理單元B0、RS422接口單元B1和1553B擴(kuò)展單元B2;所述方法包括:步驟1)空間艇載計(jì)算機(jī)多CPU系統(tǒng)的主用分系統(tǒng)和備份分系統(tǒng)的各個(gè)單元建立通信連接;步驟2)利用CPU間的消息郵箱和共享內(nèi)存,在主用分系統(tǒng)內(nèi)部、備份系統(tǒng)內(nèi)部及主備份分系統(tǒng)之間采用看門(mén)狗和心跳相結(jié)合的方式,檢測(cè)各分系統(tǒng)的單元故障,建立健康矩陣;步驟3)基于主用分系統(tǒng)的各單元的優(yōu)先級(jí)高的原則,基于步驟2)的健康矩陣對(duì)多CPU系統(tǒng)的主用系統(tǒng)進(jìn)行重構(gòu)。上述技術(shù)方案中,所述步驟1)具體包括:步驟101)A0初始化為T(mén)CP服務(wù)器,B1、B2初始化為T(mén)CP客戶(hù)端;A0通過(guò)網(wǎng)口以TCP/IP方式與B1、B2建立連接,同時(shí)通過(guò)消息郵箱與A1、A2完成握手;步驟102)B0初始化為T(mén)CP服務(wù)器,A1、A2初始化為T(mén)CP客戶(hù)端;B0通過(guò)網(wǎng)口以TCP/IP方式與A1、A2建立連接,同時(shí)通過(guò)消息郵箱與B1、B2完成握手;所述步驟101)和步驟102)之間無(wú)先后順序。上述技術(shù)方案中,所述步驟2)包括:步驟201)在檢測(cè)初始化階段,A0檢測(cè)A1及A2,B0檢測(cè)B1及B2;A0和B0實(shí)現(xiàn)互檢測(cè);步驟202)在主用分系統(tǒng)內(nèi)部、備份分系統(tǒng)內(nèi)部及主備分系統(tǒng)之間采用看門(mén)狗和心跳相結(jié)合的方式,檢測(cè)各分系統(tǒng)的單元故障;步驟203)根據(jù)步驟202)的檢測(cè)結(jié)果建立健康矩陣;檢測(cè)結(jié)果形成多CPU系統(tǒng)的健康矩陣:X=a0a1a2b0b1b2]]>矩陣X中a0、a1、a2分別表示A0、A1、A2的健康狀態(tài),取值為0或1,0為正常,1為故障;矩陣中b0、b1、b2分別表示B0、B1、B2的健康狀態(tài)取值為0或1,0為正常,1為故障。上述技術(shù)方案中,所述步驟202)具體包括:步驟202-1)當(dāng)?shù)竭_(dá)檢測(cè)周期時(shí),A0向B0發(fā)送心跳信號(hào)及看門(mén)狗信號(hào),然后檢測(cè)是否收到B0/A1/A2的心跳信號(hào),若收到心跳信號(hào),心跳異常次數(shù)清零,否則相應(yīng)心跳異常次數(shù)+1;之后檢測(cè)是否收到B0/A1/A2的看門(mén)狗信號(hào),若收到看門(mén)狗信號(hào),看門(mén)狗異常次數(shù)清零,否則相應(yīng)看門(mén)狗異常次數(shù)+1;當(dāng)B0/A1/A2心跳異常次數(shù)不滿足>2時(shí),認(rèn)為B0/A1/A2正常;當(dāng)B0/A1/A2心跳異常次數(shù)>2時(shí),檢查看門(mén)狗異常次數(shù),若看門(mén)狗異常次數(shù)>2,則判定B0/A1/A2發(fā)生故障,置B0/A1/A2故障標(biāo)志,否則判定A0與B0/A1/A2之間的心跳線損壞;步驟202-2)當(dāng)?shù)竭_(dá)檢測(cè)周期時(shí),B0向A0發(fā)送心跳信號(hào)及看門(mén)狗信號(hào),然后檢測(cè)是否收到A0/B1/B2的心跳信號(hào),若收到心跳信號(hào),心跳次數(shù)清零,否則相應(yīng)心跳異常次數(shù)+1;之后檢測(cè)是否收到A0/B1/B2的看門(mén)狗信號(hào),若收到看門(mén)狗信號(hào),看門(mén)狗異常次數(shù)清零,否則相應(yīng)看門(mén)狗異常次數(shù)+1;當(dāng)A0/B1/B2心跳異常次數(shù)不滿足>2時(shí),認(rèn)為A0/B1/B2正常;當(dāng)A0/B1/B2心跳異常次數(shù)>2時(shí),檢查看門(mén)狗異常次數(shù),若看門(mén)狗異常次數(shù)>2,則判定A0/B1/B2發(fā)生故障,置A0/B1/B2故障標(biāo)志,否則判定B0與A0/B1/B2之間的心跳線損壞;上述步驟202-1)和步驟202-2)之間無(wú)先后順序。上述技術(shù)方案中,所述步驟3)具體包括:步驟301)基于主用分系統(tǒng)的各單元的優(yōu)先級(jí)高的原則,結(jié)合優(yōu)先級(jí)與健康矩陣X得到當(dāng)前系統(tǒng)的當(dāng)班矩陣W;W=wa0wa1wa2wb0wb1wb2=a0a1a2b0|a‾0b1|a‾1b2|a‾2]]>當(dāng)班矩陣W中wa0、wa1、wa2分別為CPUA0、CPUA1、CPUA2的當(dāng)班狀態(tài),取值為0或1,0為當(dāng)班,1為不當(dāng)班;wb0、wb1、wb2分別為CPUB0、CPUB1、CPUB2的當(dāng)班狀態(tài),取值為0或1,0為當(dāng)班,1為不當(dāng)班;步驟302)從當(dāng)班矩陣中選擇處于當(dāng)班狀態(tài)的單元組成主用分系統(tǒng),實(shí)現(xiàn)系統(tǒng)的重構(gòu)。本發(fā)明的優(yōu)勢(shì)在于:通過(guò)本發(fā)明的方法,艇載計(jì)算機(jī)能夠按照預(yù)定余度管理策略進(jìn)行相應(yīng)故障處理,保證艇載計(jì)算機(jī)遇到故障時(shí)能夠?qū)崟r(shí)檢測(cè)出故障,診斷故障類(lèi)型,并成功完成系統(tǒng)的重構(gòu)與恢復(fù),提高了整個(gè)系統(tǒng)可靠性和完備性。附圖說(shuō)明圖1為艇載計(jì)算機(jī)硬件結(jié)構(gòu)圖;圖2為艇載計(jì)算機(jī)CPU互檢測(cè)關(guān)系圖;圖3為艇載計(jì)算機(jī)系統(tǒng)初始化流程圖;圖4為艇載計(jì)算機(jī)多CPU系統(tǒng)故障檢測(cè)流程圖;圖5為艇載計(jì)算機(jī)多CPU并行處理系統(tǒng)重構(gòu)圖;圖6為本發(fā)明的艇載計(jì)算機(jī)系統(tǒng)的工作流程圖;圖7為艇載計(jì)算機(jī)多CPU系統(tǒng)仿真示意圖;圖8為計(jì)算機(jī)功能模塊級(jí)雙冗余拓?fù)浣Y(jié)構(gòu)圖;圖9為系統(tǒng)級(jí)雙冗余拓?fù)浣Y(jié)構(gòu)圖;圖10為艇載計(jì)算機(jī)模塊級(jí)冗余與系統(tǒng)級(jí)冗余可靠度比較圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。艇載計(jì)算機(jī)采用對(duì)稱(chēng)結(jié)構(gòu)設(shè)計(jì),包含兩個(gè)中央處理單元(CPUA0/CPUB0)、兩個(gè)串行擴(kuò)展單元(CPUA1/CPUB1)、兩個(gè)1553B擴(kuò)展單元(CPUA2/CPUB2)以及兩個(gè)電源模塊,相同的功能單元具有相同的硬件配置,采用了相似余度,各類(lèi)通信單元接口都采用握手工作方式。兩個(gè)中央處理單元各包含兩路CAN接口、5路RS422接口,以及DI及DO接口,負(fù)責(zé)飛行控制律解算、數(shù)據(jù)管理、遙測(cè)遙控及載荷管理等功能,為系統(tǒng)的主控單元。兩個(gè)串行口擴(kuò)展單元各包含5路RS422總線,作為串行接口擴(kuò)展單元,負(fù)責(zé)與RS422接口外設(shè)的輸入輸出信息傳輸,包括信息的采集、預(yù)處理與輸出,為系統(tǒng)的從屬單元。兩個(gè)1553B擴(kuò)展單元各包含兩路1553B接口,負(fù)責(zé)與1553B接口外部節(jié)點(diǎn)的輸入輸出信息傳輸,包括信息的采集、預(yù)處理與輸出,也作為系統(tǒng)的從屬單元。艇載計(jì)算機(jī)與其他艇載設(shè)備數(shù)據(jù)交互依靠構(gòu)艇載計(jì)算機(jī)接口信息交互體系來(lái)完成。其通信過(guò)程具體為:兩個(gè)中央處理單元通過(guò)身份識(shí)別決定哪個(gè)中央處理單元為主中央處理單元,通過(guò)共享內(nèi)存、消息郵箱及數(shù)據(jù)總線相結(jié)合的方式進(jìn)行余度管理,主中央處理單元通過(guò)CAN/1553B總線接收導(dǎo)航子系統(tǒng)、大氣環(huán)境子系統(tǒng)及能源系統(tǒng)的上行數(shù)據(jù),然后進(jìn)行飛行控制律解算、管理控制和自主導(dǎo)航功能,主中央處理單元擁有下行數(shù)據(jù)的權(quán)利,通過(guò)CAN/RS422總線下行數(shù)據(jù),完成對(duì)動(dòng)力系統(tǒng)螺旋槳的控制。艇載計(jì)算機(jī)硬件結(jié)構(gòu)如圖1所示:各CPU之間的橢圓表示共享內(nèi)存,雙向箭頭表示消息郵箱。一種臨近空間艦載計(jì)算機(jī)多CPU系統(tǒng)自適應(yīng)重構(gòu)方法,所述方法包括:步驟1)艇載計(jì)算機(jī)多CPU系統(tǒng)的各個(gè)單元進(jìn)行主備身份識(shí)別,建立通信連接;如圖3所示,所述步驟1)具體包括:步驟101)兩個(gè)中央處理單元通過(guò)指定地址讀取數(shù)據(jù),實(shí)現(xiàn)主/備身份識(shí)別,默認(rèn)A為主機(jī),B為備機(jī);步驟102)A0通過(guò)網(wǎng)口以TCP/IP方式與B1、B2建立連接,同時(shí)通過(guò)消息郵箱與A1、A2完成握手,實(shí)現(xiàn)RS422與1553B的初始化;具體過(guò)程如下:A0初始化為T(mén)CP服務(wù)器,B1、B2初始化為T(mén)CP客戶(hù)端,A0與B1、B2建立連接,可通過(guò)TCP/IP方式通信。同時(shí),A0通過(guò)消息郵箱向A1、A2發(fā)送ID信息,A1、A2收到ID信息后,分別完成對(duì)RS422接口及1553B總線的初始化,A2所屬1553B初始化為總線控制器BC,之后,A1、A2向A0發(fā)送反饋信息,A0收到后,完成與A1、A2間的握手。步驟103)B0通過(guò)網(wǎng)口以TCP/IP方式與A1、A2建立連接,同時(shí)通過(guò)消息郵箱與B1、B2完成握手,實(shí)現(xiàn)RS422與1553B的初始化;具體過(guò)程如下:B0初始化為T(mén)CP服務(wù)器,A1、A2初始化為T(mén)CP客戶(hù)端,B0與A1、A2建立連接,可通過(guò)TCP/IP方式通信。同時(shí),B0通過(guò)消息郵箱向B1、B2發(fā)送ID信息,B1、B2收到ID信息后,分別完成對(duì)RS422接口及1553B總線的初始化,B2所屬1553B初始化為BM,之后,B1、B2向B0發(fā)送反饋信息,B0收到后,完成與B1、B2間的握手。步驟2)利用CPU間的消息郵箱和共享內(nèi)存,在主用分系統(tǒng)內(nèi)部、備份分系統(tǒng)內(nèi)部、主備分系統(tǒng)之間采用看門(mén)狗和心跳相結(jié)合的檢測(cè)方法,檢測(cè)故障發(fā)生,建立健康矩陣;具體包括:步驟201)在檢測(cè)初始化階段,中央處理單元(A0/B0)分別檢測(cè)各自的串口擴(kuò)展單元(A1/B1)及1553B擴(kuò)展單元(A2/B2),兩個(gè)中央處理單元(A0/B0)實(shí)現(xiàn)互檢測(cè);步驟202)被檢測(cè)CPU通過(guò)消息郵箱以固定周期向檢測(cè)CPU發(fā)送心跳信號(hào),同時(shí)被檢測(cè)CPU通過(guò)共享內(nèi)存定期向檢測(cè)CPU寫(xiě)入特定數(shù)據(jù),當(dāng)檢測(cè)CPU能收到被檢測(cè)CPU的心跳信號(hào),也能收到被檢測(cè)CPU的看門(mén)狗信號(hào)時(shí),說(shuō)明被檢測(cè)CPU工作正常,當(dāng)檢測(cè)CPU收不到被檢測(cè)CPU心跳信號(hào)但能收到看門(mén)狗信號(hào)時(shí),判斷心跳線損壞;當(dāng)檢測(cè)CPU既收不到被檢測(cè)CPU的心跳信號(hào),又收不到被檢測(cè)CPU看門(mén)狗信號(hào)時(shí),說(shuō)明被檢測(cè)CPU損壞,執(zhí)行系統(tǒng)切換,備機(jī)接替主機(jī)工作;通過(guò)采用了心跳和看門(mén)狗異構(gòu)備份檢測(cè)方法,判斷主機(jī)運(yùn)行狀態(tài),在任何情況下不會(huì)發(fā)生誤切換或者雙主機(jī)狀態(tài)出現(xiàn)。如圖4所示,所述步驟202)具體包括:步驟202-1)當(dāng)?shù)竭_(dá)檢測(cè)周期時(shí),A0向B0發(fā)送心跳信號(hào)及看門(mén)狗信號(hào),然后檢測(cè)是否收到B0/A1/A2的心跳信號(hào),若收到心跳信號(hào),心跳異常次數(shù)清零,否則相應(yīng)心跳異常次數(shù)+1;之后檢測(cè)是否收到B0/A1/A2的看門(mén)狗信號(hào),若收到看門(mén)狗信號(hào),看門(mén)狗異常次數(shù)清零,否則相應(yīng)看門(mén)狗異常次數(shù)+1;當(dāng)B0/A1/A2心跳異常次數(shù)不滿足>2時(shí),認(rèn)為B0/A1/A2正常。當(dāng)B0/A1/A2心跳異常次數(shù)>2時(shí),檢查看門(mén)狗異常次數(shù),若看門(mén)狗異常次數(shù)>2,則判定B0/A1/A2發(fā)生故障,置B0/A1/A2故障標(biāo)志,否則判定A0與B0/A1/A2之間的心跳線損壞;步驟202-2)當(dāng)?shù)竭_(dá)檢測(cè)周期時(shí),B0向A0發(fā)送心跳信號(hào)及看門(mén)狗信號(hào),然后檢測(cè)是否收到A0/B1/B2的心跳信號(hào),若收到心跳異常信號(hào),心跳次數(shù)清零,否則相應(yīng)心跳異常次數(shù)+1;之后檢測(cè)是否收到A0/B1/B2的看門(mén)狗信號(hào),若收到看門(mén)狗信號(hào),看門(mén)狗異常次數(shù)清零,否則相應(yīng)看門(mén)狗異常次數(shù)+1;當(dāng)A0/B1/B2心跳異常次數(shù)不滿足>2時(shí),認(rèn)為A0/B1/B2正常。當(dāng)A0/B1/B2心跳異常次數(shù)>2時(shí),檢查看門(mén)狗異常次數(shù),若看門(mén)狗異常次數(shù)>2,則判定A0/B1/B2發(fā)生故障,置A0/B1/B2故障標(biāo)志,否則判定B0與A0/B1/B2之間的心跳線損壞。上述步驟202-1)和步驟202-2)之間無(wú)先后順序。步驟203)根據(jù)步驟202)的檢測(cè)結(jié)果建立健康矩陣;檢測(cè)結(jié)果形成多CPU系統(tǒng)的健康矩陣:X=a0a1a2b0b1b2]]>矩陣X中a0、a1、a2分別表示CPUA0、CPUA1、CPUA2的健康狀態(tài),取值為0或1,0為正常,1為故障;矩陣中b0、b1、b2分別表示CPUB0、CPUB1、CPUB2的健康狀態(tài)取值為0或1,0為正常,1為故障。步驟3)基于步驟2)的健康矩陣對(duì)多CPU系統(tǒng)進(jìn)行重構(gòu);如圖5所示,艇載計(jì)算機(jī)采用邏輯意義上重構(gòu)的方式,在硬件配置和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不變的情況下,當(dāng)故障發(fā)生時(shí),檢測(cè)到故障并完成診斷,并進(jìn)行系統(tǒng)重構(gòu),實(shí)現(xiàn)無(wú)縫切換,讓系統(tǒng)重新正常工作。步驟301)多CPU系統(tǒng)的優(yōu)先級(jí)為A>B,結(jié)合優(yōu)先級(jí)與健康矩陣X可以得到當(dāng)前系統(tǒng)的當(dāng)班矩陣W;W=wa0wa1wa2wb0wb1wb2=a0a1a2b0|a‾0b1|a‾1b2|a‾2]]>當(dāng)班矩陣W中wa0、wa1、wa2分別為CPUA0、CPUA1、CPUA2的當(dāng)班狀態(tài),取值為0或1,0為當(dāng)班,1為不當(dāng)班;wb0、wb1、wb2分別為CPUB0、CPUB1、CPUB2的當(dāng)班狀態(tài),取值為0或1,0為當(dāng)班,1為不當(dāng)班。步驟302)根據(jù)當(dāng)班矩陣對(duì)系統(tǒng)進(jìn)行重構(gòu)。中央處理單元(A0/B0)根據(jù)當(dāng)班矩陣中對(duì)應(yīng)的狀態(tài),判斷自己是否當(dāng)班主持工作;當(dāng)班的中央處理單元(A0/B0)根據(jù)當(dāng)班矩陣的狀態(tài)選擇相應(yīng)的RS422接口單元(A1/B1)和1553B擴(kuò)展單元(A2/B2)組成多CPU系統(tǒng),繼續(xù)工作,實(shí)現(xiàn)系統(tǒng)的重構(gòu)。當(dāng)中央處理單元A0需要通過(guò)RS422發(fā)送數(shù)據(jù)時(shí),從A1/B1中選擇當(dāng)班的模塊進(jìn)行數(shù)據(jù)發(fā)送;當(dāng)中央處理單元A0需要通過(guò)1553B發(fā)送數(shù)據(jù)時(shí),從A2/B2中選擇當(dāng)班的模塊進(jìn)行數(shù)據(jù)發(fā)送。所以,當(dāng)CPUA1/CPUA2出現(xiàn)故障時(shí),中央處理單元馬上會(huì)選擇CPUB1/CPUB2進(jìn)行替代,實(shí)現(xiàn)了無(wú)縫切換。中央處理單元B0周期性地查詢(xún)查詢(xún)A0的健康狀態(tài),一旦A0發(fā)生故障,B0接管系統(tǒng),無(wú)縫切換,實(shí)現(xiàn)系統(tǒng)重構(gòu)。如圖6所示。在B0當(dāng)班過(guò)程中,如果接口1553B擴(kuò)展單元損壞或RS422擴(kuò)展單元損壞,按照健康矩陣進(jìn)行裁決,最終系統(tǒng)工作狀態(tài)圖如圖7所示。艇載計(jì)算機(jī)采用不對(duì)等的雙機(jī)方案,A機(jī)以主控機(jī)方式運(yùn)行,B機(jī)以備份機(jī)方式運(yùn)行,這兩者之間的數(shù)據(jù)交互也是不對(duì)等的。A機(jī)當(dāng)班時(shí),B機(jī)不輸出控制,此時(shí)A機(jī)能夠完全掌握飛艇的運(yùn)行狀態(tài),而備份機(jī)由于處于待機(jī)狀態(tài),不參與系統(tǒng)控制,A機(jī)適時(shí)向B機(jī)傳送本機(jī)工作狀態(tài)以及飛艇其他功能單元的工作狀態(tài),保證一旦發(fā)生主備機(jī)切換或主控機(jī)失效等情形,B機(jī)能夠順利進(jìn)行現(xiàn)場(chǎng)恢復(fù),以保證飛艇的持續(xù)穩(wěn)定運(yùn)行。B機(jī)傳送給A機(jī)本機(jī)工作狀態(tài)的數(shù)據(jù),使得地面可以了解備份機(jī)是否正常運(yùn)行。故障仿真驗(yàn)證為驗(yàn)證本發(fā)明的方法設(shè)計(jì)的余度管理策略的正確合理性,由艇載計(jì)算機(jī)、實(shí)時(shí)仿真機(jī)及故障注入設(shè)備組成半實(shí)物仿真平臺(tái),進(jìn)行仿真驗(yàn)證。通過(guò)故障注入仿真軟件給艇載計(jì)算機(jī)注入各種類(lèi)型故障,包括總線節(jié)點(diǎn)故障,輸入輸出接口故障、中央處理單元故障等。試驗(yàn)結(jié)果表明,艇載計(jì)算機(jī)能夠按照預(yù)定余度管理策略進(jìn)行相應(yīng)故障處理,保證艇載計(jì)算機(jī)遇到故障時(shí)能夠?qū)崟r(shí)檢測(cè)出故障,診斷故障類(lèi)型,并成功完成系統(tǒng)的重構(gòu)與恢復(fù),驗(yàn)證了余度管理策略的合理性和完備性。在余度結(jié)構(gòu),余度數(shù)目相同的情況下,余度級(jí)別不同,其系統(tǒng)可靠度也大不相同。余度級(jí)別可以是元器件一級(jí),功能模塊一級(jí),系統(tǒng)一級(jí),最常用的是功能模塊級(jí)的冗余和系統(tǒng)級(jí)冗余。在服從指數(shù)分布的前提下,假定第i的單元的可靠度函數(shù)為其中,λi是第i個(gè)單元的平均故障率。串聯(lián)系統(tǒng)可靠度公式為:Rs(t)=Πi=1nRi(t)]]>并聯(lián)系統(tǒng)可靠度公式為:Rs(t)=1-Πi=1n[1-Ri(t)]]]>如圖8所示,若采用功能模塊級(jí)的雙余度,先并后串;模塊級(jí)雙冗余拓?fù)浣Y(jié)構(gòu)余度可靠度公式如下:Rsg(t)=[1-(1-e-λ0t)2]×[1-(1-e-λ1t)2]×[1-(1-e-λ2t)2]]]>如圖9所示,若采用系統(tǒng)級(jí)的雙余度,先串后并,系統(tǒng)級(jí)雙冗余余度可靠度公式如下:Rsx(t)=1-[1-e-λ0t×e-λ1t×e-λ2t]2]]>根據(jù)參考資料和相關(guān)經(jīng)驗(yàn),平均故障率選取λ0=10-5/小時(shí),λ2=5×10-6/小時(shí),λ3=5×10-6/小時(shí)。如圖10所示,在余度結(jié)構(gòu),余度數(shù)目相同的條件下,采用功能模塊級(jí)冗余可靠度大于系統(tǒng)級(jí)冗余的可靠度。因此,艇載計(jì)算機(jī)余度管理采用模塊級(jí)雙冗余。當(dāng)前第1頁(yè)1 2 3