黃 波 曹幫林 張福鑫 陳 偉
北京航天自動控制研究所,北京100854
冗余設計技術在提高系統任務可靠性的同時,不可避免地提升了系統的復雜度。冗余系統可靠度、容錯度與容錯效率反映了容錯結構對系統資源的利用率[1]。與基于故障檢測與重構的動態冗余容錯技術相比,基于硬件冗余的靜態冗余技術具有原理簡單、易于實現的優點,但需要投入更多的冗余硬件資源[2]。雙模熱備與三模冗余(TMR)為這2種冗余技術的典型代表[3]。文獻[4-6]論述了一類三模冗余計算機,其結構示意圖及工作流程分別如圖1和2所示,其工作原理為:三機在實現同步的前提下,通過三機交叉通道數據鏈(例如雙口RAM、高速總線等)實現信息交換,使每個冗余模塊均獲得相同輸入信息,通過“三取二”表決實現對一度故障的自動吸收。文獻[7-8]所論述的雙機容錯計算機通過數據交換實現故障檢測、通過自檢實現故障機隔離。顯然,相對非余度系統,信息交換、比對與表決增加了軟硬件設計的復雜度,并產生了額外的時間開銷。
為了吸收動態冗余和靜態冗余技術各自優點,文獻[2]提出了一種“N模塊冗余+備份冗余”的混合容錯設計思路,文獻[9]提出了一種具體的混合冗余三模容錯系統,其工作原理仍然以信息交換為基礎。

圖1 TMR結構示意圖
在多總線(為便于描述,本文指1553B總線,簡稱總線,本文提出的設計思路也適用于類似總線系統)冗余控制系統中,總線控制器失效影響不僅僅局限于其本身,而是形成一種故障耦合關系。例如,對于采用一個余度總線控制器管理一條總線的多余度總線控制系統容錯結構中,當其中一個余度總線控制器失效時,將導致其所管理的總線上掛接的所有節點失去作用,從而降低了冗余資源的利用率。
本文針對多總線冗余控制系統特點,提出了一種三模混合容錯結構,通過一種自檢、互檢與表決機制相結合的軟硬件協同混合冗余管理機制,既降低了軟硬件實現的復雜度,又提高了系統容錯效率,可在飛行器控制、工業控制等高可靠控制場合推廣應用。
本文以完全對稱或非對稱三余度總線控制系統作為對象,其中非對稱三余度系統結構如圖3所示,系統配套設備可分為傳感器、控制計算機和執行器3大類。其中控制計算機作為總線控制器完成控制律計算,三余度傳感器與雙余度傳感器可能是測量同一物理量或不同物理量的相同或不同類型的余度傳感器,余度配置數量根據其提供信息的自診斷性、與其他設備的互診斷性以及失效后的危害嚴酷度綜合確定。由于傳感器故障診斷和執行器余度管理與具體控制對象相關,本文不展開論述,只重點論述以控制計算機為核心的多總線控制系統冗余管理設計。
控制計算機采用三?;旌先哂嘟Y構,由獨立的A機、B機與C機三機組成,其工作原理示意圖如圖4所示(圖示為A機為當班機、B機與C機為熱備機的情形)。控制計算機三機采取當班機主控、備機跟隨的工作方式,當班機執行“采樣-運算-輸出”的控制流程,備機跟隨當班機運行,系統基本冗余管理流程如下:
1)控制計算機三機上電自檢后,通過競爭確定當班機或備機角色;
2)當班機作為三總線控制器完成各傳感器信息采樣;備機作為總線監視器同步獲得傳感器測量信息;
3)當班機、備機并行開展傳感器信息處理與控制運算;
4)當班機通過三總線向執行器輸出控制指令;如果備機通過監視當班機通過總線發出的控制指令與本機不一致或超出一定的容差范圍,則向當班機發出當班機不允許當班信號;

圖3 三余度總線控制系統

圖4 控制計算機冗余結構示意圖
5)在三機模式下,如果雙備機均發出當班機故障指示信號,則當班控制電路強制當班機釋放當班控制權,雙備機再次競爭當班控制權,在下一個控制周期,取得當班權的備機接管三總線,系統轉入雙機運行模式;如果只有一個備機持續一定時間發出當班機故障指示信號,而沒有出現當班機切換事件,則表明該備機故障,從而終止其程序,系統轉入雙機運行模式;
6)在雙機運行模式下,當班機發生故障時,主動釋放當班控制權,備機在下一個控制周期接管三總線,轉入單機運行模式。
由上述工作流程可以看出,混合冗余控制計算機綜合了自檢、互檢與間接的三取二表決冗余管理機制,實現了三機表決、雙機熱備與單機運行3種工作模式故障條件下自動切換。該設計方案取消了三機之間專門交叉數據鏈,簡化了軟硬件設計,由于當班機軟件不直接進行冗余管理,提高了系統實時性。此外,控制計算機任何余度故障均不會導致一條總線失去控制,使系統可以容忍任何配套設備任何余度模塊任意一度故障及其組合故障和典型二度故障,提高了系統的容錯效率。
系統容錯主要由控制計算機通過軟硬件協同的方式實現,本文論述軟硬件容錯設計邏輯,對其實現不展開描述,其中硬件設計邏輯一般可由CPLD/FPGA可編程器件實現。
控制計算機由3個設計原理相同的獨立計算機模塊組成,按照信號連接關系每機均可定義其左/右機。在產品實現上,三機可以采取相似設計或非相似設計[10]。三機之間交互的信號主要包括心跳信號、當班控制信號與不允許當班信號等少量離散量控制信號以及控制周期信號。從任意一機視角,基本硬件設計原理與左/右機信號接口以及軟硬件接口關系示意圖如圖5所示,后文針對該圖詳細描述其設計原理。
三機同步為容錯基礎。三機采用實時響應同步控制周期中斷信號的方式實現三機任務級同步。三機控制周期中斷信號采用一種帶反饋機制的自檢與表決相結合的硬件同步方案,其設計原理示意圖如圖6所示,其邏輯設計如下:
1)本機時鐘通過分頻器產生本機控制周期信號,該周期信號的計時起點為控制周期信號表決器給出控制周期信號起點;
2)左機與右機周期信號檢測模塊利用本機時鐘對接收到的左機與右機控制周期信號進行故障檢測,如果其周期在設定的偏差范圍外則判定其故障,否則判定其正常;
3)如果左機與右機控制周期信號不全故障,則控制周期信號表決器對三機控制周期信號通過三取二表決后得到表決后的控制周期信號;否則利用本機控制周期信號作為表決后的控制周期信號;周期信號表決器將經表決后的控制周期信號發送至本機、左機與右機。

圖5 單機工作原理及接口關系示意圖

圖6 三機同步設計原理示意圖
該同步機制使得系統上電一個控制周期后即可實現三機控制周期信號同步,在任意一機、雙機時鐘信號出現故障時,非故障機控制周期信號相位、周期不會發生突變,從而不影響故障后的控制運算,使得三模控制計算機可以在時鐘信號兩度故障情況下還具備工作的基礎。
單機自檢硬件電路采用一種改進的“看門狗”電路,該電路如果在規定的時間內(例如1.5個控制周期)接收到本機軟件“喂狗”操作,則向左/右機發出本機心跳信號,否則停止輸出本機心跳信號并復位本機硬件。
正常情況下,單機軟件在每個控制周期開始時對本機自檢硬件電路進行“喂狗”操作。此外,當班機、備機通過總線通信實現進一步的自檢。例如,如果當班機軟件在本控制周期規定時間內總線消息通信失敗次數超出設定值,或者備機軟件在本控制周期規定時間內監視到的總線消息少于設定值,則認為自檢失敗。自檢失敗后,軟件停止“喂狗”操作,配合上述硬件設計,使得本機主動離線。
本機對左/右機的硬件檢測電路采用另一種改進的“看門狗”檢測電路。該檢測電路將左/右機心跳信號作為“喂狗”信號,在本機自檢正常、左機與右機發送的不允許當班信號不全有效條件下,如果在設定的時間內沒有檢測到左/右機心跳信號,則判定其故障,向其發出左/右機不允許當班信號。
備機軟件監測當班機通過三總線輸出的控制指令,在下述條件下,判定當班機故障,發出不允許當班指令:
1)在本控制周期規定時間內監視到的總線消息少于設定值;
2)備機監視到當班機發送連續數字控制指令(如伺服指令),以下任意條件成立:
①與本機控制指令進行比較,差值大于某個設定較大偏差。與之相配合,執行機構對不連續(即出現跳變)控制指令進行屏蔽操作,或者利用執行機構的慣性特性直接吸收;
②與本機控制指令進行比較,連續若干個控制周期差值大于某個設定的較小偏差;
③連續若干個控制周期沒有監視到對應的控制指令;
④如果設定的控制周期內連續監視到當班機發送離散量控制指令與本機指令不一致。與之相配合,執行機構可采取多拍比對、一致后再執行的冗余管理措施。
2.5.1 當班競爭
三機上電后或當班機發生故障切換時,通過競爭的方式確定當班機。單機軟件查詢不到左/右機當班信號時,向當班控制電路發出請求當班信號。當班控制電路在單機自檢正常、左機與右機發送的不允許當班信號不全有效條件下將本機當班信號置為有效狀態,并向左/右機發送,本機軟件在查詢到本機當班信號有效、左機/右機當班信號均無效時,設置本機為當班機;否則如果查詢到本機當班信號無效、左機或右機當班信號有效時,設置本機為備機。
2.5.2 當班機故障表決
在運行過程中,如果雙備機根據2.4節所述策略均判定當班機故障時而均給出不允許當班信號時,滿足了三取二表決原則,則上述當班控制電路釋放本機當班信號;同時,硬件電路檢測到當班信號由有效狀態變為無效狀態時,將總線發送器使能端置無效,禁止三總線通信,進行硬件復位操作,將故障機強制下線。
2.5.3 備機故障表決
三機模式下,備機軟件根據2.4節互檢策略持續若干個控制周期發出不允許當班機當班指令且未出現當班機變更,則表明該備機判定當班機故障沒有得到其它兩機確認,則停止向本機自檢電路的“喂狗”操作,自檢電路觸發復位信號,故障備機離線。
當系統轉入雙機運行模式后,多數表決條件不再可能得到滿足,當雙機模式下當班機出現故障時,當班機通過自檢機制釋放當班權,使得最后一個正常備機可以獲得當班權繼續完成系統控制功能。
針對完全對稱或非對稱三余度總線容錯控制系統結構,設計了一種新的三取二實現形式,形成了一種基于自檢、互檢與表決機制相結合的冗余管理機制,實現了三機表決、雙機熱備與單機運行3種工作模式自動切換,簡化了軟硬件設計,提高了系統實時性與系統容錯效率。該研究成果在某飛行器控制系統中得到了應用,試驗表明該系統可以容忍任何配套設備任何余度模塊任意組合的一度故障和典型二度故障;在控制計算機余度模塊不同的故障發生時機時,經過0~2個控制周期可以完成系統重構。
[1] 孫俊恩,宋文好,張六韜.容錯計算機技術中的幾個新概念[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] 胡紹林,黃劉生.計算機控制系統容錯設計技術及應用[M].北京:科學出版社,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] 黃濤,陳祥獻,黃海.基于三取二冗余結構的安全計算機系統[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] 郭碧洲.基于軟件表決的三模冗余星載計算機體系結構研究與設計[D].上海:上海交通大學,2011.(Guo Bizhou.Research and design on TMR on-board computer based on software-voting mechanism[D].Shanghai:Shanghai Jiao Tong University,2011.)
[6] 陳江渝.基于三模冗余綜合電子系統的研究[D].杭州:浙江大學,2013.(Chen jiangyu.Research on composite electronic system based on triple modular redundancy[D].Hangzhou:Zhejiang University,2013.)
[7] 朱朝暉,張崇峰,陳衛東.空間雙機容錯計算機系統研究[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] 劉小雄,陳懷民,等.自監控二余度飛控計算機系統設計[J].測控技術,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].大電機技術,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]. 航空學報,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.)