




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、一種高可靠性單片機冗余系統(tǒng)設計繇 HYPERLINK 2008 年 10 月 31 日 社區(qū)交流雙Excel服務器-用Excel做管理系統(tǒng)關(guān)鍵字:巡檢儀煙霧報警器電子血壓計環(huán)境質(zhì)量監(jiān)控驗電器本文扼要分析了帶專用檢測轉(zhuǎn)換電路的單片機雙機冗余系統(tǒng)存在的可靠性問題,提出了利用單 片機串行口替換專用檢測轉(zhuǎn)換電路,通過串行通信相互檢測主備機工作狀態(tài),由軟件完成備機切換 成主機的設計思想,并給出了此類系統(tǒng)的軟件模板。饕戲既既既戲既 1冗余系統(tǒng)的硬件結(jié)構(gòu)冗余技術(shù)是計算機系統(tǒng)可靠性設計中常采用的一種技術(shù),是提高計算機系統(tǒng)可靠性的最 有效方法之一。本文重點介紹一種高效、實用的單片機冗余系統(tǒng)設計技術(shù)。在進行冗余系
2、統(tǒng)設計之前,要綜合考慮系統(tǒng)的可靠性要求和合理的價格兩方面,確定采 用元器件冗余還是采用全系統(tǒng)冗余。對于一類要求連續(xù)不間斷工作的對可靠性有特殊要求的 單片機小型應用系統(tǒng),由于系統(tǒng)的成本不是主要的設計考慮因素,因此,采用包括單片機、 擴展電路、電源和外設雙備份的全系統(tǒng)冗余,不但可簡化設計方案,還可大大地提高應用系 統(tǒng)的可靠性。這種冗余系統(tǒng)具有如下圖所示的典型硬件結(jié)構(gòu)。在上圖所示的系統(tǒng)中,U1和U2單元的軟硬件結(jié)構(gòu)完全相同。如有必要,在設計各單 元時,通過采用自診斷技術(shù),軟件陷阱或Watch dog等系統(tǒng)自行恢復措施可使單元可靠性 達到最大限度的提高。系統(tǒng)正常運行時,U1和U2中的一個單元處于正常工
3、作狀態(tài)(把該 單元稱為主機),完成應用功能,而另一個單元(備機)處于等待備用狀態(tài)。當檢測轉(zhuǎn)換電 路檢測到主機不能正常工作時,自動啟動備機進入正常運行狀態(tài),完成應用功能。此時,可 對故障單元進行脫線維護,在排除其故障后,可使其聯(lián)機進入等待備用狀態(tài)。顯然,這種冗 余系統(tǒng)已大大提高了應用系統(tǒng)的可靠性,并基本保證了應用系統(tǒng)的不間斷運行。但仔細分析, 就會發(fā)現(xiàn)存在以下不足之處:.系統(tǒng)存在可靠性瓶頸,當檢測轉(zhuǎn)換電路自身出現(xiàn)故障時,不能監(jiān)視主備機狀態(tài),也無 法完成主備機自動切換功能;.對于某些冗余系統(tǒng),當備機需要實時保留主機的數(shù)據(jù)備份時,檢測轉(zhuǎn)換電路無法完成 主備機之間的數(shù)據(jù)通信功能;.由于需要設計檢測轉(zhuǎn)換
4、電路,系統(tǒng)設計和實現(xiàn)復雜,引入了附加的不可靠因素。2改進設計方案針對上圖所示的雙機冗余系統(tǒng)結(jié)構(gòu)和缺點,筆者實現(xiàn)了一個簡單高效、具有更高可靠性 和主備機數(shù)據(jù)通信功能的改進設計方案。其基本設計思想是:不改變上述冗余系統(tǒng)的基本結(jié) 構(gòu),但完全去掉專用的檢測轉(zhuǎn)換電路,利用主備機雙方的串行口和軟件相結(jié)合的方法,實現(xiàn) 檢測轉(zhuǎn)換電路的功能和主備機之間的數(shù)據(jù)通信功能。在此改進的設計方案中,主備單元的硬 件和軟件結(jié)構(gòu)完全相同,各單元的主備工作狀態(tài)由上電順序確定,先上電的一方自動進入主 機工作狀態(tài),后上電者則進入備機狀態(tài)。主機在其工作過程中除實現(xiàn)應用功能外,定期向備 機發(fā)送反映其工作正常的狀態(tài)數(shù)據(jù),當需要備份的數(shù)據(jù)
5、發(fā)生變化時,主機及時向備機發(fā)送已 更新的數(shù)據(jù)。此外,主機也定期接收來自備機的狀態(tài)數(shù)據(jù),當發(fā)生接收超時時,主機認為備 機已發(fā)生故障,并通過本單元的顯示裝置向用戶給出通知信號,以便及時對備機進行脫線維 護。備機在其工作過程中不完成應用功能,但定期接收來自主機的狀態(tài)數(shù)據(jù),當發(fā)生接收超 時時,備機認為主機已發(fā)生故障,自動切換進入主機工作狀態(tài),并通過本單元顯示裝置通知 用戶,以便對原主機單元進行脫線維護。此外,備機還自動接收來自主機的備份數(shù)據(jù)并進行 存儲備份。3軟件模板下面的軟件模板給出了筆者已實現(xiàn)的單片機雙機冗余系統(tǒng)的軟件框架,和應用系統(tǒng)實現(xiàn) 密切相關(guān)的部分用自然語言簡單描述,其余部分為C51源代碼,
6、因此,這一軟件模板很容 易移植到相似結(jié)構(gòu)的冗余系統(tǒng)中。該軟件模板以89C52為單片機對象進行程序設計,使用12MHz的時鐘頻率。常量OK, REQ,ACK和NACK分別表示主備機工作狀態(tài)正常,備份數(shù)據(jù)發(fā)送請求,肯定應答和否定 應答信息的字符常量,MAIN,STANDBY分別是表示工作單元為主機或備機的常量標志。 全局變量timeout用于設定以毫秒為單位的超時間隔,而Update,CpuStatus和Failure分 別是表示備份數(shù)據(jù)是否更新,主備機狀態(tài)和主備機是否發(fā)生故障的標志位變量。定時器0編程為工作方式1,產(chǎn)生每隔1ms的定時中斷,每次中斷將全局變量timeout的值 減1,減到0時即關(guān)
7、閉定時器0。所有需要軟件超時機制或延時功能的程序模塊都可在設定 timeout的值后開啟定時器0,并通過判斷該變量的值是否為零而實現(xiàn)定時功能。定時器1 編程為工作方式2,用作串行口波特率發(fā)生器,波特率編程為15.625K。定時器2工作于自動重裝的定時方式,產(chǎn)生每隔50ms的定時中斷。每次中斷,主備單 元的中斷服務程序都向?qū)Ψ絾卧l(fā)送表示自身工作狀態(tài)正常的OK字符,同時也接收對方單 元發(fā)送的OK字符,若連續(xù)三次中斷都未能成功接收,則本單元認為對方單元出了故障,并 將表示對方單元工作狀態(tài)的全局變量Failure置為常量Yes,否則,置為No;若為備機, 還將表示主備身份的標志變量CpuStatus
8、的值置為Main,從而為備機程序切換和給出原主 機故障提示設置判斷標志。若備機在中斷服務程序中接收到字符REQ,則置表示備份數(shù)據(jù) 是否更新的標志變量Update為Yes,并立即退出中斷服務程序,以便主程序及時接收備份 數(shù)據(jù)幀。主函數(shù)在完成應用系統(tǒng)的公共初始化和單片機硬件初始化后,主備單元的定時器2在 后臺產(chǎn)生定時中斷并通過串行通信進行相互檢測,由于規(guī)定兩個單元的上電時間間隔大于5 00ms,因此,利用中斷服務程序的檢測結(jié)果必能自動確定初始的主備身份。主函數(shù)延時50 0ms后,即根據(jù)當前的主備身份自動進入主機的前臺監(jiān)控例程或備機的前臺監(jiān)控例程。主 機的前臺監(jiān)控例程除完成應用功能外,當應用功能改變
9、了需要備份的數(shù)據(jù)時,則調(diào)用send -frame函數(shù)關(guān)閉定時器2的中斷并發(fā)送備份數(shù)據(jù)幀。當備機的前臺監(jiān)控例程判斷出需要接收備份數(shù)據(jù)時,調(diào)用receive-frame函數(shù)關(guān)閉定時器2的中斷并接收備份數(shù)據(jù)幀。當備 機的前臺監(jiān)控例程監(jiān)視到主機故障時,備機的前臺監(jiān)控循環(huán)自動切換進入主機的前臺監(jiān)控循 環(huán)。主函數(shù)中的監(jiān)控切換代碼較難理解,應結(jié)合并發(fā)執(zhí)行的定時器2的中斷服務程序一起 分析。函數(shù)sendchar和receivechar通過串行口直接發(fā)送和接受單個字符。函數(shù)sendfram e和receiveframe分別發(fā)送和接受備份數(shù)據(jù)幀,它們具有將備份數(shù)據(jù)裝幀和拆幀、循環(huán) 冗余CRC效驗和超時處理功能,在
10、幀的發(fā)送和接受過程中均關(guān)閉定時器2,以免產(chǎn)生通信 干擾,通信成功時返回1,否則返回0。delay為以毫秒數(shù)為調(diào)用參數(shù)的延時函數(shù)。函數(shù)cr cgen和crcchk分別生成和效驗CRC。限于篇幅,本文僅給出完成檢測切換功能的主函數(shù)和定時器2的中斷服務函數(shù),以及 相關(guān)數(shù)據(jù)的代碼,其它函數(shù)僅給出函數(shù)原型。代碼如下:#include#includeenum OK=0 xFF,REQ=0 xAA,ACK=0 xF0,NACK=0 x0F,MAIN = 0,STANDBY=1,NO = 0,YES=1 unsigned int data timeout;unsigned char bdata base=0;
11、sbit Update=base0,CpuStatus=base1,sbit Failure=base2;void delay(unsigned int time),sendchar(unsigned char ch);unsigned short crcgen(unsigned char *databuf,short len);unsigned short crcchk(unsigned char *databuf,short len);unsigned char * receivechar(unsigned char * ch);unsigned char sendframe(void),
12、receiveframe(void);else Update=YES; /*以便在未來的備機聯(lián)機后再次發(fā)送備份數(shù)據(jù)*/while(1) /*切換到主機的前臺監(jiān)控循環(huán)中*/和應用系統(tǒng)實現(xiàn)相關(guān)的主機應用功能例程;if(應用例程修改了需要備份的數(shù)據(jù))Update=YES;if(Update=YES)&(Failure = = NO)&sendframe() Update = NO;if(Failure=YES)給出備機故障通知信號;Update=YES; void timer2interrupt(void) interrupt 5 /* 定時器 2 的 50ms 中斷服務程序 */ static u
13、nsigned char data count=0;unsigned char data ch = 0 x00; TF2 = 0; /* 清除定時器 2 的溢出標志位 */if(receivechar(&ch) = = NULL) count+ + ;if(count= = 3) /*三次接收字符不成功*/ count=0; Failure=YES; /*對方單元故障,如果本方為備機,準備切換*/if(CpuStatus= = STANDBY) CpuStatus=MAIN;else count=0; Failure=NO;if (ch = = REQ)&(CpuStatus= = STANDBY) /*如果備機接收到主機的備份數(shù)據(jù)幀*/ Update=YES; return; /*發(fā)送請求字符,立即返回,接收此備份數(shù)據(jù)幀*/4必要的補
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 弓形體病性鞏膜炎的臨床護理
- 調(diào)研新質(zhì)生產(chǎn)力
- 頭部震顫的臨床護理
- 2025年一級建造師之一建水利水電工程實務練習題(二)及答案
- 新質(zhì)生產(chǎn)力峰會
- 神經(jīng)膠質(zhì)母細胞瘤的臨床護理
- 用好新質(zhì)生產(chǎn)力
- 2025設備租賃合同寫作格式
- 2025傾力湖南省娛樂酒店商業(yè)行業(yè)勞動合同模板
- 陜西中考數(shù)學試卷真題及答案b卷
- 2025-2030中國竹纖維行業(yè)市場發(fā)展現(xiàn)狀及競爭策略與投資前景研究報告
- 委托外包催收合同協(xié)議
- 2025-2030中國涂裝行業(yè)市場深度分析及發(fā)展預測與投資策略研究報告
- 乳腺癌診治指南與規(guī)范(2025年版)解讀
- 銀行系統(tǒng)招聘考試(經(jīng)濟、金融、會計)模擬試卷14
- 2025屆百師聯(lián)盟高三聯(lián)考模擬預測(沖刺二)語文試題含答案
- 心理韌性在咨詢中的重要性試題及答案
- 2025年全國普通話水平測試訓練題庫及答案
- 2025年山東省濱州市陽信縣九年級一模模擬化學試題(含答案)
- 班組文化培訓課件
- 2025年光伏居間協(xié)議模板
評論
0/150
提交評論