宮 斌,程焱明
(中國(guó)船舶重工集團(tuán)公司第七二三研究所,江蘇 揚(yáng)州 225101)
綜合調(diào)度模塊是電子戰(zhàn)系統(tǒng)的作戰(zhàn)控制中心和通信中樞,承擔(dān)著系統(tǒng)的資源調(diào)度、戰(zhàn)術(shù)決策控制、信息整合轉(zhuǎn)發(fā)以及各分系統(tǒng)/設(shè)備之間的通信交互任務(wù),是整個(gè)系統(tǒng)中的核心模塊之一,一旦出現(xiàn)宕機(jī)等嚴(yán)重故障,將導(dǎo)致整個(gè)系統(tǒng)功能癱瘓,因此確保其工作高可靠性極為重要。信息化戰(zhàn)爭(zhēng)中的戰(zhàn)場(chǎng)電磁環(huán)境日趨復(fù)雜,戰(zhàn)機(jī)轉(zhuǎn)瞬即逝,原有的軟件故障系統(tǒng)重啟以及耗時(shí)更長(zhǎng)的硬件故障更換備件等處理方法,已經(jīng)難以滿足作戰(zhàn)要求,對(duì)于武器系統(tǒng)中的關(guān)鍵模塊,需要有提高系統(tǒng)工作可靠性的冗余備份設(shè)計(jì),在出現(xiàn)故障時(shí)能夠確保整個(gè)系統(tǒng)的作戰(zhàn)功能不受影響。
高可靠性對(duì)系統(tǒng)的要求是具有完全在線的冗余功能,即系統(tǒng)在正常運(yùn)行時(shí),當(dāng)前運(yùn)行的系統(tǒng)如果出現(xiàn)故障可立即切換到備用系統(tǒng),系統(tǒng)在整個(gè)運(yùn)行過(guò)程中的正常工作不受任何影響,即系統(tǒng)輸出連續(xù),及時(shí)發(fā)現(xiàn)故障并實(shí)時(shí)切換[1-2]。冗余設(shè)計(jì)是在系統(tǒng)或設(shè)備中對(duì)完成任務(wù)起關(guān)鍵作用的地方提供一種以上的功能通道或工作元件或部件,以減少系統(tǒng)出現(xiàn)故障的概率有效的系統(tǒng)設(shè)計(jì)方法[3]。本文闡述的基于PowerPC 8640D板卡的電子戰(zhàn)系統(tǒng)綜合調(diào)度模塊冗余熱備份的設(shè)計(jì)方法即采用雙機(jī)熱備份設(shè)計(jì),可以在軟硬件故障導(dǎo)致系統(tǒng)死機(jī)的嚴(yán)重故障下,立刻切換到備份模塊,確保系統(tǒng)作戰(zhàn)功能不受影響。
綜合調(diào)度模塊的核心任務(wù)是管理整個(gè)系統(tǒng)中的偵察、干擾資源,針對(duì)不同的任務(wù)需求對(duì)系統(tǒng)中的資源進(jìn)行合理分配調(diào)度,保證整個(gè)系統(tǒng)的穩(wěn)定有序工作,并最大限度地發(fā)揮系統(tǒng)的偵察干擾效能。其功能實(shí)現(xiàn)主要包括接收并整合系統(tǒng)中各偵察、干擾設(shè)備以及上級(jí)指揮系統(tǒng)和本系統(tǒng)顯控臺(tái)的信息和指令,對(duì)整個(gè)系統(tǒng)的資源進(jìn)行存儲(chǔ)管理和動(dòng)態(tài)分配,完成電子偵察和干擾功能的系統(tǒng)級(jí)調(diào)度控制,同時(shí)作為整個(gè)系統(tǒng)的通信中樞完成前后端、上下級(jí)的數(shù)據(jù)、命令轉(zhuǎn)發(fā)。綜合調(diào)度模塊的內(nèi)外通信方式包括基于以太網(wǎng)的DDS(訂閱分發(fā)機(jī)制)和基于光纖通信的RapidIO方式,對(duì)外2種方式都有,內(nèi)部各CPU系統(tǒng)之間則全部使用直接數(shù)字合成(DDS)方式,其系統(tǒng)架構(gòu)如圖 1所示。
圖1 綜合調(diào)度模塊架構(gòu)示意圖
綜合調(diào)度模塊的特點(diǎn)是對(duì)外連接的通信節(jié)點(diǎn)多、收發(fā)處理的信息數(shù)據(jù)量大、調(diào)度控制實(shí)時(shí)性高。綜合調(diào)度模塊硬件采用一塊PowerPC 8640D板卡,該板卡為標(biāo)準(zhǔn)6U VPX總線標(biāo)準(zhǔn)模塊,集成4個(gè)主頻為1.0 GHz的MPC8640D雙核處理器,每個(gè)處理器配置1 GByte存儲(chǔ)器;軟件采用VxWorks 6.8操作系統(tǒng),標(biāo)準(zhǔn)C/C++語(yǔ)言實(shí)現(xiàn)應(yīng)用程序功能;每個(gè)處理器系統(tǒng)都具有以太網(wǎng)和SRIO通信接口,可以滿足系統(tǒng)中的網(wǎng)絡(luò)及光纖通信要求。根據(jù)系統(tǒng)功能要求,4個(gè)CPU各自形成相對(duì)獨(dú)立的計(jì)算機(jī)系統(tǒng),啟動(dòng)不同的任務(wù)完成各自的功能,同時(shí)又有效交互、密切配合,共同完成綜合調(diào)度功能。
綜合調(diào)度模塊的冗余熱備份設(shè)計(jì)考慮其功能特點(diǎn),同時(shí)兼顧軟件開銷和硬件成本等因素,采用雙機(jī)備份設(shè)計(jì)。雙機(jī)備份方案中,根據(jù)性質(zhì)和需要可以有3種不同的工作模式:即雙機(jī)熱備模式、 雙機(jī)互備模式和雙機(jī)雙工模式[4]。本設(shè)計(jì)采用雙機(jī)雙工熱備份方法,硬件部分在綜合調(diào)度的標(biāo)準(zhǔn)6U插箱中增加1塊PowerPC 8640D板卡作為備份模塊,2塊PowerPC板同時(shí)加電工作,備份模塊實(shí)時(shí)檢測(cè)主模塊狀態(tài),當(dāng)檢測(cè)到主模塊發(fā)生故障時(shí),備份模塊立刻切換到工作狀態(tài),代替主模塊完成綜合調(diào)度功能。
綜合調(diào)度模塊對(duì)外的以太網(wǎng)和光纖通信實(shí)現(xiàn)方式分別為DDS(訂閱分發(fā)機(jī)制)和RapidIO接口方式。在對(duì)外通信中,訂閱分發(fā)的DDS通信方式適用于以太網(wǎng)鏈路且不與特定IP地址關(guān)聯(lián),因此該部分的通信具有硬件無(wú)關(guān)性,冗余熱備份的硬件部分設(shè)計(jì)上不需要做額外考慮,同時(shí)這也是本設(shè)計(jì)方法的一個(gè)重要基礎(chǔ);而RapidIO接口通過(guò)光纖交換模塊接入光纖通信鏈路,其通信接口與硬件有一定的關(guān)聯(lián)性。綜合調(diào)度模塊設(shè)計(jì)中,僅在PowerPC板的第1個(gè)CPU即CPUA系統(tǒng)中使用RapidIO接口作為整個(gè)綜合調(diào)度模塊的對(duì)外光纖通信輸入輸出節(jié)點(diǎn),在系統(tǒng)冗余熱備份設(shè)計(jì)中需要通過(guò)配置不同的通信地址段來(lái)解決備份模塊的對(duì)外光纖通信鏈路問(wèn)題。方法是為主模塊和備份模塊各配置不同的通信地址,外部形成冗余的光纖通信鏈路,數(shù)據(jù)輸入為同步進(jìn)行,數(shù)據(jù)輸出由調(diào)度模塊的工作狀態(tài)CPUA確定,確保綜合調(diào)度模塊的主模塊和備份模塊能正確進(jìn)行光纖鏈路數(shù)據(jù)交互。綜合調(diào)度模塊內(nèi)部4個(gè)CPU系統(tǒng)之間采用DDS通信進(jìn)行數(shù)據(jù)交互,因此冗余熱備份的硬件部分設(shè)計(jì)也無(wú)須做額外考慮。
綜上所述,綜合調(diào)度的冗余熱備份設(shè)計(jì)通過(guò)增加1塊PowerPC 8640D板,并在外部光纖通信鏈路中增加1路適配備份模塊的冗余鏈路,即可構(gòu)成冗余熱備份的硬件平臺(tái)。
綜合調(diào)度模塊冗余熱備份的軟件設(shè)計(jì)主要是在硬件基礎(chǔ)上確保備份模塊迅速準(zhǔn)確地檢測(cè)到主模塊故障,并立刻切換到工作狀態(tài)來(lái)代替主模塊工作,保證整個(gè)系統(tǒng)穩(wěn)定可靠運(yùn)行。綜合調(diào)度模塊PowerPC板所在插箱中的插槽位置號(hào)稱為槽位號(hào),每個(gè)PowerPC板上的4個(gè)CPU各有1個(gè)ID號(hào),它們都可以在上電后通過(guò)軟件接口讀取。綜合調(diào)度模塊的4個(gè)CPU系統(tǒng)(CPU A、B、C、D)運(yùn)行軟件一致,根據(jù)不同CPU的ID號(hào),各自啟動(dòng)不同的任務(wù)完成各自的功能,同時(shí)各CPU系統(tǒng)之間又有數(shù)據(jù)交互。根據(jù)這一特點(diǎn),軟件設(shè)計(jì)為同一套代碼,分別運(yùn)行于主模塊PowerPC板和備份模塊PowerPC板,開機(jī)啟動(dòng)后根據(jù)不同的槽位號(hào)確定軟件進(jìn)入工作狀態(tài)或備份狀態(tài),運(yùn)行于主模塊PowerPC板的為工作狀態(tài)(以下對(duì)應(yīng)主程序),運(yùn)行于備份模塊PowerPC板的為備份狀態(tài)(以下對(duì)應(yīng)副程序)。2種狀態(tài)的區(qū)別是備份狀態(tài)下CPU系統(tǒng)的軟件僅接收并存儲(chǔ)處理數(shù)據(jù),并不對(duì)外發(fā)送數(shù)據(jù),這樣在同一時(shí)刻保證主、備模塊中的每對(duì)CPU系統(tǒng)只會(huì)有一個(gè)對(duì)外發(fā)送數(shù)據(jù),且在進(jìn)行熱備份切換時(shí)可以確保數(shù)據(jù)和狀態(tài)的連續(xù)有效。
以電子戰(zhàn)系統(tǒng)實(shí)際應(yīng)用為例,在綜合調(diào)度的標(biāo)準(zhǔn)6U插箱中,主模塊的PowerPC 板使用1槽,備份模塊的PowerPC 板使用4槽,主、備模塊板卡各CPU及對(duì)應(yīng)功能接口如表1所示。
表1 主、備模塊CPU及功能接口表
綜合調(diào)度軟件正常工作時(shí)主模塊PowerPC板(1槽)中4個(gè)CPU啟動(dòng)各自不同的工作任務(wù),4個(gè)CPU間互有報(bào)文交互。冗余熱備份的軟件設(shè)計(jì)方法是對(duì)單個(gè)CPU分別進(jìn)行冗余備份,即備份模塊上的CPUA系統(tǒng)對(duì)主模塊上的CPUA系統(tǒng)進(jìn)行冗余備份,其余類似。主模塊PowerPC板(1槽)的4個(gè)CPU(A、B、C、D)系統(tǒng)正常工作,一旦某個(gè)CPU系統(tǒng)故障,備份模塊PowerPC板(4槽)上的對(duì)應(yīng)CPU系統(tǒng)檢測(cè)到后,即進(jìn)入工作狀態(tài),接管原主模塊PowerPC板上對(duì)應(yīng)CPU系統(tǒng)的功能,與其他工作狀態(tài)CPU系統(tǒng)共同完成工作任務(wù)。圖2、圖3為以CPUA、CPUB為例的冗余備份切換前后狀態(tài),主模塊CPU正常工作,備份模塊CPU正常接收所有輸入數(shù)據(jù),不輸出數(shù)據(jù);主模塊CPUA(1-A)故障,則備份模塊對(duì)應(yīng)的CPUA(4-A)轉(zhuǎn)入工作狀態(tài),進(jìn)行數(shù)據(jù)接收和發(fā)送。
圖2 主CPUA+主CPUB工作狀態(tài)示意圖
圖3 備CPUA+主CPUB工作狀態(tài)示意圖
軟件熱備份設(shè)計(jì)的主要功能包括:
(1) 狀態(tài)監(jiān)控,主備模塊的每對(duì)CPU系統(tǒng)運(yùn)行檢測(cè)應(yīng)答任務(wù),具體為備CPU系統(tǒng)定時(shí)發(fā)送詢問(wèn)報(bào)文到對(duì)應(yīng)主CPU系統(tǒng),主CPU系統(tǒng)接收到詢問(wèn)報(bào)文后應(yīng)答;
(2) 主副程序切換,如果備CPU系統(tǒng)連續(xù)3個(gè)周期接收不到主CPU系統(tǒng)的應(yīng)答,即認(rèn)為主CPU系統(tǒng)故障,自動(dòng)切換到工作狀態(tài)(具體為放開數(shù)據(jù)輸出);
(3) 狀態(tài)同步與信息備份功能,CPU系統(tǒng)在完成切換后,因?yàn)楦鲗?duì)應(yīng)CPU輸入數(shù)據(jù)和處理均同步進(jìn)行,因此備份CPU轉(zhuǎn)入工作后其狀態(tài)能保證與整個(gè)系統(tǒng)同步,數(shù)據(jù)也能與原CPU保持一致,完成狀態(tài)同步與信息備份的功能。
軟件熱備份設(shè)計(jì)的基本流程為:加電啟動(dòng)后主備模塊通過(guò)槽位號(hào)確定程序運(yùn)行狀態(tài),分別進(jìn)入工作狀態(tài)和備份狀態(tài)(分別以主、副程序運(yùn)行),每一對(duì)CPU的主副程序啟動(dòng)檢測(cè)應(yīng)答任務(wù);主程序開機(jī)進(jìn)入工作狀態(tài)(接收、發(fā)送數(shù)據(jù)),同時(shí)運(yùn)行應(yīng)答任務(wù),接收副程序查詢命令并立即回復(fù);副程序開機(jī)進(jìn)入備份狀態(tài)(僅接收數(shù)據(jù),不發(fā)送),同時(shí)運(yùn)行檢測(cè)任務(wù),定時(shí)發(fā)送查詢命令到主程序;副程序檢測(cè)任務(wù)中運(yùn)行回復(fù)命令接收處理,在接收到主程序?qū)?yīng)CPU的回復(fù)命令后開始周期計(jì)數(shù),若超過(guò)3個(gè)周期未收到回復(fù)命令即切換進(jìn)入工作狀態(tài),完成該CPU系統(tǒng)的熱備份切換。檢測(cè)應(yīng)答任務(wù)均采用DDS通信,對(duì)應(yīng)命令碼和DDS主題如表2所示。
表2 主備程序檢測(cè)DDS主題表
以CPUA為例,其主備程序軟件熱備份工作流程如圖 4所示。故障檢測(cè)對(duì)于雙機(jī)熱備份系統(tǒng)是非常重要的保障機(jī)制[5]。軟件熱備份設(shè)計(jì)的關(guān)鍵是檢測(cè)任務(wù)與工作任務(wù)間的系統(tǒng)資源開銷平衡。對(duì)于實(shí)時(shí)系統(tǒng)來(lái)說(shuō),故障檢測(cè)必須做到占用系統(tǒng)開銷小、定位故障及時(shí)準(zhǔn)確并且故障判別的成功率高[6]。本設(shè)計(jì)中備份模塊的檢測(cè)采用高優(yōu)先級(jí)定時(shí)任務(wù)處理,每100 ms發(fā)送檢測(cè)命令,如果超過(guò)3個(gè)周期未收到主模塊的應(yīng)答,則認(rèn)為主模塊故障,自動(dòng)切換到工作狀態(tài)接替主模塊工作。在實(shí)際工程應(yīng)用中,經(jīng)過(guò)測(cè)試驗(yàn)證,該任務(wù)周期可以滿足綜合調(diào)度模塊的工作任務(wù)功能和冗余備份的實(shí)時(shí)檢測(cè)切換,達(dá)到了系統(tǒng)資源開銷的平衡。
圖4 主備程序軟件熱備份工作流程圖
目前該設(shè)計(jì)已應(yīng)用于電子戰(zhàn)艦載系統(tǒng)的電子對(duì)抗綜合調(diào)度模塊中,該模塊提供2塊PowerPC板,分別位于3槽和8槽,3槽作為主板,8槽作為備份板,其對(duì)應(yīng)地址按照槽位由系統(tǒng)統(tǒng)一分配。通過(guò)模擬主板上的CPU故障(如人工將任務(wù)終止),實(shí)測(cè)的各CPU冗余熱備份切換時(shí)間如表3所示。
表3 主備模塊CPU切換時(shí)間測(cè)試表
在實(shí)際裝備中,經(jīng)過(guò)應(yīng)用驗(yàn)證,該冗余熱備份設(shè)計(jì)能夠保證CPU的工作狀態(tài)及數(shù)據(jù)的完整性和連續(xù)性,可以滿足裝備的實(shí)戰(zhàn)需求。
基于PowerPC的冗余熱備份設(shè)計(jì)方法目前已經(jīng)在艦載電子戰(zhàn)系統(tǒng)的綜合調(diào)度模塊中得到應(yīng)用,該方法充分利用了PowerPC板卡在功能、接口等方面的特點(diǎn),結(jié)合了VxWorks操作系統(tǒng)的多任務(wù)、強(qiáng)實(shí)時(shí)特性,為系統(tǒng)的綜合調(diào)度這一關(guān)鍵模塊提供了冗余熱備份運(yùn)行的有效解決方案,提高了系統(tǒng)運(yùn)行的安全性和可靠性,對(duì)于類似軟硬件平臺(tái)和通信方式的系統(tǒng)具有借鑒意義。但同時(shí)這種雙機(jī)冗余備份在切換過(guò)程中必然存在一定時(shí)間中斷,還不能完全做到真正意義上的“無(wú)縫”切換,如何進(jìn)一步降低切換時(shí)延而又不過(guò)多占用系統(tǒng)的資源開銷,還需要在實(shí)際工程應(yīng)用中進(jìn)行更深入的研究。