??? 摘?? 要:主備倒換技術是提高系統可靠性的一項重要技術。本文以提高控制系統的可靠性為出發點,提出了應用于該系統中的一種高可靠主備倒換技術的設計。?
??? 關鍵詞: 控制系統; 可靠性; 主備倒換技術
?
??? 當今電子信息處理系統向高可靠、大容量、高速化發展,高可靠、高速化電子信息處理系統是市場需求的發展趨勢。隨著嵌入式智能設備的進一步發展和普及,電子信息處理系統的可靠性設計變得越來越重要,特別是嵌入式智能控制系統,如果電子信息處理系統出現故障,其后果不堪設想,造成的損失可能是無法估量。1993年3月10日,浙江省寧波市北侖發電廠因控制系統失靈,導致一號機組發生特大鍋爐爆炸事故,造成傷亡幾十人。1996年6月,歐洲“阿麗亞娜”號航天飛機因智能控制系統出現故障,使航天飛機墜毀,造成了數億美元的巨大損失。每一次慘痛教訓都提醒人們要重視控制系統的可靠性。因此,主備倒換技術就是為克服完善設計無法解決這類高可靠要求的困難發展起來的,其設計思想是允許故障存在,并能自動地消除其影響。可以說,主備倒換技術從根本上開辟了一條實現系統可靠性的途徑。本文對一種高可靠的主備倒換技術設計進行闡述,并對其在控制系統中的應用進行了研究。?
1 主備倒換電路設計?
1.1 主備倒換邏輯控制圖?
??? 主備倒換邏輯控制框圖如圖1所示,具有人工倒換、軟件倒換、自動倒換功能。?
?
?
??? 主備用狀態控制板各信號的功能如下:?
??? (1)復位信號:單板的復位信號,當復位信號為低時,該板變為備用板,用于人工倒換。?
??? (2) 軟件控制位:單板的軟件控制信號,它是由單板軟件控制,初始化為高,當CPU把該位改為低時,該板變為備用板,對方控制板變為主用板。這樣可以實現快速軟件倒換。?
??? (3) 心跳狀態位:CPU必須在500 μs內至少訪問CPLD一次,使CPLD輸出心跳波形。心跳波形環回CPLD的心跳檢測電路,CPU如果在500 μs內沒有訪問CPLD,CPLD就沒有輸出心跳波形。當有心跳時,心跳狀態位為1;當沒有心跳時,心跳狀態位為0,通過這個方法就可以監控CPU是否正常運行,如果CPU沒有正常運行,該板就變為備用板狀態。?
??? (4) 本板主備用狀態位:該位為0 狀態時,本板為主用;該位為1狀態時,本板為備用。當該狀態位發生改變時,CPLD會產生中斷INT告訴CPU,CPU會查詢該狀態位,以便知道本板的主備用狀態。?
??? (5) 對方板主備用狀態位:該位為0 狀態時,對方板為主用;該位為1狀態時,對方板為備用。當該狀態位發生改變時,CPLD會產生中斷INT告訴CPU,CPU會查詢該狀態位,以便知道對方板的主備用狀態。?
??? (6) 中斷信號INT: 當對方板主備用狀態或本板主備用狀態發生改變時,CPLD會產生中斷信號INT通知CPU,保證CPU及時知道對方板主備用狀態或本板主備用狀態,以保證系統正常運行。?
??? (7) CPLD通信總線:就是CPU通過該總線與CPLD通信,通過該總線完成CPLD的心跳,同時通過該總線完成對方板主備用狀態或本板主備用狀態的查詢。?
??? (8) 數據同步端口:該數據同步端口就是網絡通信端口,主要是同步兩塊主備用狀態控制板的數據,保證在主備板都是運行同一數據和程序,只是主用板有控制權,備用板沒有控制權,倒換后,使得原來備用板能夠無縫運行原來主用板的程序,保證系統的可靠性。?
1.2 主備用工作原理?
??? 工作原理是:兩塊主備用狀態控制板的U2A的第3腳先為低的控制板為主用。在主備倒換邏輯控制圖中,當主備用狀態控制板1的復位信號、軟件控制位、心跳狀態位較主備用狀態控制板2的復位信號、軟件控制位、心跳狀態位先都為高時,這時主備用狀態控制板1的U1B的第6腳為高,主備用狀態控制板2的U1B的第6腳輸出為低,導致主備用狀態控制板1的U2A的第3腳為低,主備用狀態控制板2的U2A的第3腳為高。則主備用狀態控制板1為主用,主備用狀態控制板2為備用。反之,當主備用狀態控制板2的復位信號、軟件控制位、心跳狀態位較主備用狀態控制板1的復位信號、軟件控制位、心跳狀態位先都為高時,主備用狀態控制板2為主用,主備用狀態控制板1為備用。?
1.3 CPLD的邏輯實現?
??? CPLD邏輯設計圖如圖2所示。當CPU向心跳產生寄存器寫入0X55,心跳波形輸出低電平,寫入0XAA,心跳波形則輸出高電平,這樣就能產生心跳脈沖輸出。這個心跳脈沖就能監控單板內關鍵器件的好壞,如FPGA、時鐘、電源等。如果這些被監控的芯片、信號或電源出現問題,那這個心跳脈沖就不能環回CPLD的心跳波形輸入腳,則CPLD的心跳檢測電路就不能檢測到心跳的存在,即CPLD的心跳狀態位為0,根據圖1的主備倒換邏輯控制圖,該主備用狀態控制板只能作為備用。這樣主備用狀態就能夠實現自動倒換。心跳脈沖監控FPGA、時鐘、電源邏輯圖如圖3所示。?
?
?
?
2 軟件主備用倒換過程的實現?
??? 主備用狀態控制板啟動程序流程圖如圖4所示。如果主用板要通過軟件進行倒換,只要主用板把軟件控制位設置為0,向備用板表明自己變為備用,備用板的邏輯發中斷告訴備用板CPU,備用板進行中斷處理,通過狀態寄存器檢測對方是否變為備用,則原備用板將軟件控制位置為1,原備用板升為主用。?
?
?
3 主備用狀態控制板的倒換波形?
??? 根據圖1原理框圖,示波器探頭的二通道接主備用狀態控制板1的U2A的第3腳(倒換前為低即主用),示波器探頭的一通道接主備用狀態控制板2的U2A的第3腳(倒換前為高即備用),通過把主備用狀態控制板1的軟件位置為低,兩塊主備用狀態控制板的主備用狀態發生改變,其倒換波形如圖5所示。從示波器的顯示可知,時間軸每格20 ns,則倒換時間大約20 ns就可以實現硬件完全倒換。實現了快速穩定的倒換,從而可在工業控制領域得到廣泛應用。?
?
?
4 主備用狀態控制板的倒換測試?
??? (1)手動倒換: 如圖1按下主用板(如主備用狀態控制板1為主用) 的復位鍵SW1。這時, 原主用板(如主備用狀態控制板1為主用)重啟,變為備用,原備用板(如主備用狀態控制板2為備用)變為主用,硬件切換時間約為20 ns,軟件同步切換時間約為20? μs。?
??? (2)軟件倒換:主用板(如主備用狀態控制板1為主用)的CPU置CPLD 的控制寄存器的軟件控制位為0,使CPLD 的軟件控制位引腳輸出為0。這時, 原主用板(如主備用狀態控制板1為主用)變為備用板,原備用板(如主備用狀態控制板2為備用)變為主用板,硬件切換時間約為20 ns,軟件同步切換時間約為1 μs。這樣可以實現快速軟件倒換。?
??? (3)自動倒換:由于CPU必須在500?μs內,至少訪問CPLD一次,使CPLD輸出心跳波形,CPU如果在500 μs內沒有訪問CPLD,CPLD就沒有輸出心跳波形,當沒有心跳時,心跳狀態位為0,短路主用板的內存,讓主用板死機,CPU不去訪問CPLD, 這時, 原主用板(如主備用狀態控制板1為主用)變為備用板,原備用板(如主備用狀態控制板2為備用)變為主用板,硬件切換時間為20 ns左右,軟件同步切換時間為10 ms左右。這樣可以實現可靠的自動倒換。?
5 主備用狀態控制板在工控領域的應用?
??? 很多高可靠性要求的場合要求系統的可靠性指標為99.999%,即系統一年的平均故障時間不超過3 min。如電力控制系統、交通導航系統等,系統僅靠提供元件的可靠性是無法滿足要求的,需要對系統的關鍵設備進行主備份,主備用設備通過控制通信網進行數據備份,使得主備用設備完全同步,保證當這些主備用設備出現故障時,熱切換到備份設備,使系統能不間斷運行。?
??? (1) 在數據采集處理方面的應用如圖6所示,通過本板的主備用狀態位來控制總線,當本板主用時,數據采集卡的總線可以與本板的CPU通信,當備用時,數據采集卡的總線不與本板的CPU通信。?
?
?
??? (2) 在網絡通信方面的應用如圖7所示,通過本板的主備用狀態位來控制網絡通信口切換開關。如果服務器1為主用時,外部通信設備通過網絡通信口切換開關與服務器1的CPU通信;服務器2為備用,網絡通信口的切換開關斷開,不與外部通信設備通信。當兩個服務器發生倒換后,服務器1為備用,服務器2為主用時,服務器1的網絡通信口切換開關斷開,服務器2的CPU通過網絡通信口切換開關與外部通信設備通信。?
?
?
參考文獻?
[1] 蔡開元.軟件可靠性工程基礎[M].北京:清華大學出版社,1995.?
[2] 王珍熙.可靠性、主備倒換及容錯技術[M]. 北京:航空工業出版社,1991.?
[3] 錢華明,袁贛南.分布式數據總線及其在慣性組合導航系統中的應用[J].中國慣性技術學報,1997,5(4).?
[4] MUSA J D. Software reliability: measurement, prediction,application. McgrawHill, New York,1987.?
[5] 張有志.可編程邏輯器件PLD原理與應用.北京:中國鐵道出版社,1996.?
[6] 高傳善.接口與通信.上海:復旦大學出版社,1989.