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