串口通信在雙機冗余系統中應用
摘要: 本文扼要 分析 了當今帶專(zhuān)用檢測轉換電路的雙機冗余系統存在的可靠性 問(wèn)題 ,提出了利用雙機的串行口代替專(zhuān)用檢測轉換電路,通過(guò)串行通信相互檢測主備機工作狀態(tài),由軟件完成備機切換成主機的新型設計思想,為 計算 機在 工業(yè) 實(shí)時(shí)監控系統 應用 中的可靠性開(kāi)辟新思路。
關(guān)鍵詞: 雙機 冗余 軟件 切換 1、引言 冗余技術(shù)是計算機系統可靠性設計中常用的一種技術(shù),是提高計算機系統可靠性的最有效 方法 ,同時(shí)也是鑒別各類(lèi)計算機控制系統好壞的標志之一。故世界各地廠(chǎng)商推出的新產(chǎn)品都或多或少帶有冗余技術(shù)。如美國的honeywell、德國的西門(mén)子和日本的三武等,它們都有一個(gè)共同的特點(diǎn),就是自己設計了專(zhuān)用檢測轉換電路來(lái)實(shí)現主備切換。本文提出一種新的構思,取消專(zhuān)用檢測轉換電路,采用一種高效、實(shí)用的軟件冗余技術(shù)來(lái)完成雙機切換。2、冗余系統介紹雙機冗余包括cpu、擴展電路、電源和外設雙備份的全系統冗余,不但可簡(jiǎn)化設計方案,還可大大地提高應用系統的可靠性。這種冗余系統具有如圖1所示的典型硬件結構。

在圖1所示的系統中,u1和u2單元的軟硬件結構完全相同。如有必要,在設計各單元時(shí),通過(guò)采用自診斷技術(shù),軟件陷井或watch dog等系統自行恢復措施可使單元可靠性達到最大限度的提高。系統正常運行時(shí),u1和u2中的一個(gè)單元處于正常工作狀態(tài)(把該單元稱(chēng)為主機),完成應用功能,而另一個(gè)單元(備機)處于等待備用狀態(tài)。當檢測轉換電路檢測到主機不能正常工作時(shí),自動(dòng)啟動(dòng)備機進(jìn)入正常運行狀態(tài),完成應用功能。此時(shí),可對故障單元進(jìn)行脫線(xiàn)維護,在排除其故障后,可使其聯(lián)機進(jìn)入等待備用狀態(tài)。顯然,這種冗余系統已大大提高了應用系統的可靠性,并基本保證了應用系統的不間斷運行。但仔細分析,就會(huì )發(fā)現它存在以下不足之處:① 系統存在可靠性瓶頸,當檢測轉換電路自身出現故障時(shí),不能監視主備機狀態(tài),也無(wú)法完成主備機自動(dòng)切換功能;② 對于某些冗余系統,當備機需要實(shí)時(shí)保留主機之間的數據備份時(shí),檢測轉換電路無(wú)法完成主備機之間的數據通信功能;③ 由于需要設計檢測轉換電路,系統設計和實(shí)現復雜,引入了附加的不可靠因素。3、改進(jìn)設計方案針對圖1所示的雙機冗余系統結構和缺點(diǎn),筆者實(shí)現了一個(gè)簡(jiǎn)單高效、具有更高可靠性和主備機數據通信功能的改進(jìn)設計方案。其基本設計思想是:不改變上述冗余系統的基本結構,但完全去掉專(zhuān)用的檢測轉換電路,利用主備機雙方的串行口和軟件相結合的方法,實(shí)現檢測轉換電路的功能和主備機之間的數據通信功能。在此改進(jìn)的設計方案中,主備單元的硬件和軟件結構完全相同,各單元的主備工作狀態(tài)由上電順序決定,先上電的一方自動(dòng)進(jìn)入主機工作狀態(tài),后上電者則進(jìn)入備機狀態(tài)。主機在其工作過(guò)程中除實(shí)現應用功能外,定期向備機發(fā)送反映其工作正常的狀態(tài)數據,當需要備份的數據發(fā)生變化時(shí),主機及時(shí)向備機發(fā)送已更新的數據。此外,主機也定期接收來(lái)自備機的狀態(tài)數據,當發(fā)生接收超時(shí)時(shí),主機認為備機已經(jīng)發(fā)生故障,并通過(guò)本單元的顯示裝置向用戶(hù)給出通知信號,以便及時(shí)對備機進(jìn)行脫線(xiàn)維護。備機在其工作過(guò)程中不完成應用功能,但定期接收來(lái)自主機的狀態(tài)數據,當發(fā)生接收超時(shí),備機認為主機以經(jīng)發(fā)生故障,自動(dòng)切換進(jìn)入主機工作狀態(tài),并通過(guò)本單元顯示裝置通知用戶(hù),以便對原主機單元進(jìn)行脫線(xiàn)維護。此外,備機還自動(dòng)接收來(lái)自主機的備份數據并進(jìn)行存儲備份。 4、軟件模板下面的軟件模板給出了筆者已實(shí)現的雙機冗余系統的軟件框架,和 應用 系統實(shí)現密切相關(guān)的部分用 自然 語(yǔ)言簡(jiǎn)單描述,其余部分為visual c 源代碼,因此,這一軟件模板很容易移植到相似結構的冗余系統中。該軟件模板以visual c 進(jìn)行程序設計,常量ok,req,ack和nack分別表示主備機工作狀態(tài)正常,備份數據發(fā)送請求,肯定應答和否定應答信息的字符常量,main,standby分別是表示工作單元為主機或備機的常量標志。全局變量timeout用于設定以毫秒為單位的超時(shí)間隔,而update,cpustatus和failure分別是表示備份數據是否更新,主備機狀態(tài)和主備機是否發(fā)生故障的標志位變量。定時(shí)器0產(chǎn)生每隔1ms的定時(shí)中斷(采用queryperformancecounter((large_integer *)
【串口通信在雙機冗余系統中應用】相關(guān)文章:
基于SNMP及串口通信的網(wǎng)絡(luò )監控與報警系統03-07
分析同步技術(shù)在通信系統中的應用價(jià)值12-05
串口服務(wù)器在車(chē)號識別系統中的應用03-16
衛星通信在應急保障系統中的應用11-26
VC++實(shí)現串口通信的應用程序設計03-07
數字通信系統的應用方法11-15
基于C和串口通信的紅外防盜報警系統設計03-26
基于Vxworks實(shí)時(shí)操作系統的串口通信程序設計與實(shí)現03-18
淺談地鐵通信系統構成與相關(guān)移動(dòng)通信的應用12-04