黃 波 曹幫林 張福鑫 陳 偉
北京航天自動控制研究所,北京100854
冗余設(shè)計技術(shù)在提高系統(tǒng)任務(wù)可靠性的同時,不可避免地提升了系統(tǒng)的復(fù)雜度。冗余系統(tǒng)可靠度、容錯度與容錯效率反映了容錯結(jié)構(gòu)對系統(tǒng)資源的利用率[1]。與基于故障檢測與重構(gòu)的動態(tài)冗余容錯技術(shù)相比,基于硬件冗余的靜態(tài)冗余技術(shù)具有原理簡單、易于實現(xiàn)的優(yōu)點,但需要投入更多的冗余硬件資源[2]。雙模熱備與三模冗余(TMR)為這2種冗余技術(shù)的典型代表[3]。文獻(xiàn)[4-6]論述了一類三模冗余計算機(jī),其結(jié)構(gòu)示意圖及工作流程分別如圖1和2所示,其工作原理為:三機(jī)在實現(xiàn)同步的前提下,通過三機(jī)交叉通道數(shù)據(jù)鏈(例如雙口RAM、高速總線等)實現(xiàn)信息交換,使每個冗余模塊均獲得相同輸入信息,通過“三取二”表決實現(xiàn)對一度故障的自動吸收。文獻(xiàn)[7-8]所論述的雙機(jī)容錯計算機(jī)通過數(shù)據(jù)交換實現(xiàn)故障檢測、通過自檢實現(xiàn)故障機(jī)隔離。顯然,相對非余度系統(tǒng),信息交換、比對與表決增加了軟硬件設(shè)計的復(fù)雜度,并產(chǎn)生了額外的時間開銷。
為了吸收動態(tài)冗余和靜態(tài)冗余技術(shù)各自優(yōu)點,文獻(xiàn)[2]提出了一種“N模塊冗余+備份冗余”的混合容錯設(shè)計思路,文獻(xiàn)[9]提出了一種具體的混合冗余三模容錯系統(tǒng),其工作原理仍然以信息交換為基礎(chǔ)。
圖1 TMR結(jié)構(gòu)示意圖
在多總線(為便于描述,本文指1553B總線,簡稱總線,本文提出的設(shè)計思路也適用于類似總線系統(tǒng))冗余控制系統(tǒng)中,總線控制器失效影響不僅僅局限于其本身,而是形成一種故障耦合關(guān)系。例如,對于采用一個余度總線控制器管理一條總線的多余度總線控制系統(tǒng)容錯結(jié)構(gòu)中,當(dāng)其中一個余度總線控制器失效時,將導(dǎo)致其所管理的總線上掛接的所有節(jié)點失去作用,從而降低了冗余資源的利用率。
本文針對多總線冗余控制系統(tǒng)特點,提出了一種三模混合容錯結(jié)構(gòu),通過一種自檢、互檢與表決機(jī)制相結(jié)合的軟硬件協(xié)同混合冗余管理機(jī)制,既降低了軟硬件實現(xiàn)的復(fù)雜度,又提高了系統(tǒng)容錯效率,可在飛行器控制、工業(yè)控制等高可靠控制場合推廣應(yīng)用。
本文以完全對稱或非對稱三余度總線控制系統(tǒng)作為對象,其中非對稱三余度系統(tǒng)結(jié)構(gòu)如圖3所示,系統(tǒng)配套設(shè)備可分為傳感器、控制計算機(jī)和執(zhí)行器3大類。其中控制計算機(jī)作為總線控制器完成控制律計算,三余度傳感器與雙余度傳感器可能是測量同一物理量或不同物理量的相同或不同類型的余度傳感器,余度配置數(shù)量根據(jù)其提供信息的自診斷性、與其他設(shè)備的互診斷性以及失效后的危害嚴(yán)酷度綜合確定。由于傳感器故障診斷和執(zhí)行器余度管理與具體控制對象相關(guān),本文不展開論述,只重點論述以控制計算機(jī)為核心的多總線控制系統(tǒng)冗余管理設(shè)計。
控制計算機(jī)采用三?;旌先哂嘟Y(jié)構(gòu),由獨立的A機(jī)、B機(jī)與C機(jī)三機(jī)組成,其工作原理示意圖如圖4所示(圖示為A機(jī)為當(dāng)班機(jī)、B機(jī)與C機(jī)為熱備機(jī)的情形)。控制計算機(jī)三機(jī)采取當(dāng)班機(jī)主控、備機(jī)跟隨的工作方式,當(dāng)班機(jī)執(zhí)行“采樣-運算-輸出”的控制流程,備機(jī)跟隨當(dāng)班機(jī)運行,系統(tǒng)基本冗余管理流程如下:
1)控制計算機(jī)三機(jī)上電自檢后,通過競爭確定當(dāng)班機(jī)或備機(jī)角色;
2)當(dāng)班機(jī)作為三總線控制器完成各傳感器信息采樣;備機(jī)作為總線監(jiān)視器同步獲得傳感器測量信息;
3)當(dāng)班機(jī)、備機(jī)并行開展傳感器信息處理與控制運算;
4)當(dāng)班機(jī)通過三總線向執(zhí)行器輸出控制指令;如果備機(jī)通過監(jiān)視當(dāng)班機(jī)通過總線發(fā)出的控制指令與本機(jī)不一致或超出一定的容差范圍,則向當(dāng)班機(jī)發(fā)出當(dāng)班機(jī)不允許當(dāng)班信號;
圖3 三余度總線控制系統(tǒng)
圖4 控制計算機(jī)冗余結(jié)構(gòu)示意圖
5)在三機(jī)模式下,如果雙備機(jī)均發(fā)出當(dāng)班機(jī)故障指示信號,則當(dāng)班控制電路強(qiáng)制當(dāng)班機(jī)釋放當(dāng)班控制權(quán),雙備機(jī)再次競爭當(dāng)班控制權(quán),在下一個控制周期,取得當(dāng)班權(quán)的備機(jī)接管三總線,系統(tǒng)轉(zhuǎn)入雙機(jī)運行模式;如果只有一個備機(jī)持續(xù)一定時間發(fā)出當(dāng)班機(jī)故障指示信號,而沒有出現(xiàn)當(dāng)班機(jī)切換事件,則表明該備機(jī)故障,從而終止其程序,系統(tǒng)轉(zhuǎn)入雙機(jī)運行模式;
6)在雙機(jī)運行模式下,當(dāng)班機(jī)發(fā)生故障時,主動釋放當(dāng)班控制權(quán),備機(jī)在下一個控制周期接管三總線,轉(zhuǎn)入單機(jī)運行模式。
由上述工作流程可以看出,混合冗余控制計算機(jī)綜合了自檢、互檢與間接的三取二表決冗余管理機(jī)制,實現(xiàn)了三機(jī)表決、雙機(jī)熱備與單機(jī)運行3種工作模式故障條件下自動切換。該設(shè)計方案取消了三機(jī)之間專門交叉數(shù)據(jù)鏈,簡化了軟硬件設(shè)計,由于當(dāng)班機(jī)軟件不直接進(jìn)行冗余管理,提高了系統(tǒng)實時性。此外,控制計算機(jī)任何余度故障均不會導(dǎo)致一條總線失去控制,使系統(tǒng)可以容忍任何配套設(shè)備任何余度模塊任意一度故障及其組合故障和典型二度故障,提高了系統(tǒng)的容錯效率。
系統(tǒng)容錯主要由控制計算機(jī)通過軟硬件協(xié)同的方式實現(xiàn),本文論述軟硬件容錯設(shè)計邏輯,對其實現(xiàn)不展開描述,其中硬件設(shè)計邏輯一般可由CPLD/FPGA可編程器件實現(xiàn)。
控制計算機(jī)由3個設(shè)計原理相同的獨立計算機(jī)模塊組成,按照信號連接關(guān)系每機(jī)均可定義其左/右機(jī)。在產(chǎn)品實現(xiàn)上,三機(jī)可以采取相似設(shè)計或非相似設(shè)計[10]。三機(jī)之間交互的信號主要包括心跳信號、當(dāng)班控制信號與不允許當(dāng)班信號等少量離散量控制信號以及控制周期信號。從任意一機(jī)視角,基本硬件設(shè)計原理與左/右機(jī)信號接口以及軟硬件接口關(guān)系示意圖如圖5所示,后文針對該圖詳細(xì)描述其設(shè)計原理。
三機(jī)同步為容錯基礎(chǔ)。三機(jī)采用實時響應(yīng)同步控制周期中斷信號的方式實現(xiàn)三機(jī)任務(wù)級同步。三機(jī)控制周期中斷信號采用一種帶反饋機(jī)制的自檢與表決相結(jié)合的硬件同步方案,其設(shè)計原理示意圖如圖6所示,其邏輯設(shè)計如下:
1)本機(jī)時鐘通過分頻器產(chǎn)生本機(jī)控制周期信號,該周期信號的計時起點為控制周期信號表決器給出控制周期信號起點;
2)左機(jī)與右機(jī)周期信號檢測模塊利用本機(jī)時鐘對接收到的左機(jī)與右機(jī)控制周期信號進(jìn)行故障檢測,如果其周期在設(shè)定的偏差范圍外則判定其故障,否則判定其正常;
3)如果左機(jī)與右機(jī)控制周期信號不全故障,則控制周期信號表決器對三機(jī)控制周期信號通過三取二表決后得到表決后的控制周期信號;否則利用本機(jī)控制周期信號作為表決后的控制周期信號;周期信號表決器將經(jīng)表決后的控制周期信號發(fā)送至本機(jī)、左機(jī)與右機(jī)。
圖5 單機(jī)工作原理及接口關(guān)系示意圖
圖6 三機(jī)同步設(shè)計原理示意圖
該同步機(jī)制使得系統(tǒng)上電一個控制周期后即可實現(xiàn)三機(jī)控制周期信號同步,在任意一機(jī)、雙機(jī)時鐘信號出現(xiàn)故障時,非故障機(jī)控制周期信號相位、周期不會發(fā)生突變,從而不影響故障后的控制運算,使得三模控制計算機(jī)可以在時鐘信號兩度故障情況下還具備工作的基礎(chǔ)。
單機(jī)自檢硬件電路采用一種改進(jìn)的“看門狗”電路,該電路如果在規(guī)定的時間內(nèi)(例如1.5個控制周期)接收到本機(jī)軟件“喂狗”操作,則向左/右機(jī)發(fā)出本機(jī)心跳信號,否則停止輸出本機(jī)心跳信號并復(fù)位本機(jī)硬件。
正常情況下,單機(jī)軟件在每個控制周期開始時對本機(jī)自檢硬件電路進(jìn)行“喂狗”操作。此外,當(dāng)班機(jī)、備機(jī)通過總線通信實現(xiàn)進(jìn)一步的自檢。例如,如果當(dāng)班機(jī)軟件在本控制周期規(guī)定時間內(nèi)總線消息通信失敗次數(shù)超出設(shè)定值,或者備機(jī)軟件在本控制周期規(guī)定時間內(nèi)監(jiān)視到的總線消息少于設(shè)定值,則認(rèn)為自檢失敗。自檢失敗后,軟件停止“喂狗”操作,配合上述硬件設(shè)計,使得本機(jī)主動離線。
本機(jī)對左/右機(jī)的硬件檢測電路采用另一種改進(jìn)的“看門狗”檢測電路。該檢測電路將左/右機(jī)心跳信號作為“喂狗”信號,在本機(jī)自檢正常、左機(jī)與右機(jī)發(fā)送的不允許當(dāng)班信號不全有效條件下,如果在設(shè)定的時間內(nèi)沒有檢測到左/右機(jī)心跳信號,則判定其故障,向其發(fā)出左/右機(jī)不允許當(dāng)班信號。
備機(jī)軟件監(jiān)測當(dāng)班機(jī)通過三總線輸出的控制指令,在下述條件下,判定當(dāng)班機(jī)故障,發(fā)出不允許當(dāng)班指令:
1)在本控制周期規(guī)定時間內(nèi)監(jiān)視到的總線消息少于設(shè)定值;
2)備機(jī)監(jiān)視到當(dāng)班機(jī)發(fā)送連續(xù)數(shù)字控制指令(如伺服指令),以下任意條件成立:
①與本機(jī)控制指令進(jìn)行比較,差值大于某個設(shè)定較大偏差。與之相配合,執(zhí)行機(jī)構(gòu)對不連續(xù)(即出現(xiàn)跳變)控制指令進(jìn)行屏蔽操作,或者利用執(zhí)行機(jī)構(gòu)的慣性特性直接吸收;
②與本機(jī)控制指令進(jìn)行比較,連續(xù)若干個控制周期差值大于某個設(shè)定的較小偏差;
③連續(xù)若干個控制周期沒有監(jiān)視到對應(yīng)的控制指令;
④如果設(shè)定的控制周期內(nèi)連續(xù)監(jiān)視到當(dāng)班機(jī)發(fā)送離散量控制指令與本機(jī)指令不一致。與之相配合,執(zhí)行機(jī)構(gòu)可采取多拍比對、一致后再執(zhí)行的冗余管理措施。
2.5.1 當(dāng)班競爭
三機(jī)上電后或當(dāng)班機(jī)發(fā)生故障切換時,通過競爭的方式確定當(dāng)班機(jī)。單機(jī)軟件查詢不到左/右機(jī)當(dāng)班信號時,向當(dāng)班控制電路發(fā)出請求當(dāng)班信號。當(dāng)班控制電路在單機(jī)自檢正常、左機(jī)與右機(jī)發(fā)送的不允許當(dāng)班信號不全有效條件下將本機(jī)當(dāng)班信號置為有效狀態(tài),并向左/右機(jī)發(fā)送,本機(jī)軟件在查詢到本機(jī)當(dāng)班信號有效、左機(jī)/右機(jī)當(dāng)班信號均無效時,設(shè)置本機(jī)為當(dāng)班機(jī);否則如果查詢到本機(jī)當(dāng)班信號無效、左機(jī)或右機(jī)當(dāng)班信號有效時,設(shè)置本機(jī)為備機(jī)。
2.5.2 當(dāng)班機(jī)故障表決
在運行過程中,如果雙備機(jī)根據(jù)2.4節(jié)所述策略均判定當(dāng)班機(jī)故障時而均給出不允許當(dāng)班信號時,滿足了三取二表決原則,則上述當(dāng)班控制電路釋放本機(jī)當(dāng)班信號;同時,硬件電路檢測到當(dāng)班信號由有效狀態(tài)變?yōu)闊o效狀態(tài)時,將總線發(fā)送器使能端置無效,禁止三總線通信,進(jìn)行硬件復(fù)位操作,將故障機(jī)強(qiáng)制下線。
2.5.3 備機(jī)故障表決
三機(jī)模式下,備機(jī)軟件根據(jù)2.4節(jié)互檢策略持續(xù)若干個控制周期發(fā)出不允許當(dāng)班機(jī)當(dāng)班指令且未出現(xiàn)當(dāng)班機(jī)變更,則表明該備機(jī)判定當(dāng)班機(jī)故障沒有得到其它兩機(jī)確認(rèn),則停止向本機(jī)自檢電路的“喂狗”操作,自檢電路觸發(fā)復(fù)位信號,故障備機(jī)離線。
當(dāng)系統(tǒng)轉(zhuǎn)入雙機(jī)運行模式后,多數(shù)表決條件不再可能得到滿足,當(dāng)雙機(jī)模式下當(dāng)班機(jī)出現(xiàn)故障時,當(dāng)班機(jī)通過自檢機(jī)制釋放當(dāng)班權(quán),使得最后一個正常備機(jī)可以獲得當(dāng)班權(quán)繼續(xù)完成系統(tǒng)控制功能。
針對完全對稱或非對稱三余度總線容錯控制系統(tǒng)結(jié)構(gòu),設(shè)計了一種新的三取二實現(xiàn)形式,形成了一種基于自檢、互檢與表決機(jī)制相結(jié)合的冗余管理機(jī)制,實現(xiàn)了三機(jī)表決、雙機(jī)熱備與單機(jī)運行3種工作模式自動切換,簡化了軟硬件設(shè)計,提高了系統(tǒng)實時性與系統(tǒng)容錯效率。該研究成果在某飛行器控制系統(tǒng)中得到了應(yīng)用,試驗表明該系統(tǒng)可以容忍任何配套設(shè)備任何余度模塊任意組合的一度故障和典型二度故障;在控制計算機(jī)余度模塊不同的故障發(fā)生時機(jī)時,經(jīng)過0~2個控制周期可以完成系統(tǒng)重構(gòu)。
[1] 孫俊恩,宋文好,張六韜.容錯計算機(jī)技術(shù)中的幾個新概念[J].現(xiàn)代計算機(jī),2001,(1):6-8.(Sun Junen,Song Wenhao,Zhang Liutao.Several new conceptions in fault-tolerant computer technology[J].Modern Comuper,2001,(1):6-8.)
[2] 胡紹林,黃劉生.計算機(jī)控制系統(tǒng)容錯設(shè)計技術(shù)及應(yīng)用[M].北京:科學(xué)出版社,2010.
[3] WC Carter and W G Bouricius.A survey of fault-tolerant computer architecture and its evaluation[J].Computer,1971,4(1):9-16.
[4] 黃濤,陳祥獻(xiàn),黃海.基于三取二冗余結(jié)構(gòu)的安全計算機(jī)系統(tǒng)[J].計算機(jī)工程 2011,37(18):254-257.(Huang Tao,Chen Xiangxian,Huang Hai.Safety computer system based on 2 out of 3 redundant structure[J].Compter Engineering,2011,37(18):254-257.)
[5] 郭碧洲.基于軟件表決的三模冗余星載計算機(jī)體系結(jié)構(gòu)研究與設(shè)計[D].上海:上海交通大學(xué),2011.(Guo Bizhou.Research and design on TMR on-board computer based on software-voting mechanism[D].Shanghai:Shanghai Jiao Tong University,2011.)
[6] 陳江渝.基于三模冗余綜合電子系統(tǒng)的研究[D].杭州:浙江大學(xué),2013.(Chen jiangyu.Research on composite electronic system based on triple modular redundancy[D].Hangzhou:Zhejiang University,2013.)
[7] 朱朝暉,張崇峰,陳衛(wèi)東.空間雙機(jī)容錯計算機(jī)系統(tǒng)研究[J].上海航天,2004,(6):18-23.(Zhu Zhao hui,Zhang Chongffeng,Chen Weidong.Research on aerospace dual-computer fault-tolerant system[J].Aerospace Shanghai,2004,(6):18-23.)
[8] 劉小雄,陳懷民,等.自監(jiān)控二余度飛控計算機(jī)系統(tǒng)設(shè)計[J].測控技術(shù),2005,24(7):72-75.(Liu Xiao xiong,Chen Huaimin,et al.Design of self-monitoring dual redundancy flight control computer systems[J].Measurement& Control Technology,2005,24(7):72-75.)
[9] 李朝暉,王澤龍,宮栗,郭紀(jì)金.三微機(jī)混合冗余容錯模式及其在水輪機(jī)調(diào)速器中的應(yīng)用[J].大電機(jī)技術(shù),1998,(1):60-64.(Li Zhaohui,Wang Zelong,Gong Li,Guo Jijin.A hybrid triplex fault-tolerant system configuration and it's application in hydroturbine governor[J].Large Electric Machine And Hydraulic Turbine,1998,(1):60-64.)
[10] 陳宗基,秦旭東,高金源.非相似余度飛控計算機(jī)[J]. 航空學(xué)報,2005,26(3):320-327.(Chen Zongji,Qin Xudong,Gao Jinyuan.Dissimilar redundancy flight control computer[J].Acta Aeronautica et Astronautica Sinica,2005,26(3):320-327.)