阮若琳
(蘭州交通大學(xué) 光電技術(shù)與智能控制教育部重點(diǎn)實(shí)驗(yàn)室,蘭州730070)
近年來(lái),微小型化的單片機(jī)技術(shù)發(fā)展日新月異,廣泛應(yīng)用于很多領(lǐng)域。在鐵路行業(yè),結(jié)合單片機(jī)技術(shù)的高可靠性系統(tǒng)得到了越來(lái)越多的應(yīng)用和重視。安全型繼電器是鐵路信號(hào)設(shè)備中的重要器件之一,其可靠性和安全性是鐵路運(yùn)輸自動(dòng)控制、遠(yuǎn)程控制信號(hào)設(shè)備正常使用的必要條件[1]。因此,對(duì)于在鐵路等重要場(chǎng)合使用的安全型繼電器,需要采用高可靠性的驅(qū)動(dòng)電路系統(tǒng)。本文利用AVR單片機(jī)設(shè)計(jì)出一種具有高可靠性的繼電器驅(qū)動(dòng)系統(tǒng),具有實(shí)時(shí)性強(qiáng)、結(jié)構(gòu)簡(jiǎn)潔、成本低等特點(diǎn)。
本系統(tǒng)需要采用一定的冗余技術(shù)來(lái)保證系統(tǒng)的高可靠性和高安全性。目前發(fā)展較為成熟的冗余技術(shù)主要有雙機(jī)熱備結(jié)構(gòu)和二乘二取二冗余結(jié)構(gòu)。這兩種結(jié)構(gòu)在可靠性、可用性、安全性等方面相比單機(jī)系統(tǒng)有著各自的特點(diǎn)和優(yōu)越性[2-7],在鐵路[5-9]、工業(yè)[10-11]等領(lǐng)域有著廣泛的應(yīng)用。
雙機(jī)熱備系統(tǒng)一般由兩個(gè)具有相同功能的子系統(tǒng)構(gòu)成,接有可選的比較器和主備切換器,并能進(jìn)行故障檢測(cè)。二乘二取二冗余結(jié)構(gòu)由4個(gè)子系統(tǒng)組成,同樣有比較器和主備切換器,兩兩比較輸出后再次比較輸出,其可靠性更高;但是對(duì)于小型系統(tǒng),與雙機(jī)熱備系統(tǒng)相比要耗費(fèi)更多的資源,成本加倍。因此,本系統(tǒng)采用雙機(jī)熱備系統(tǒng)。
圖1 雙機(jī)熱備系統(tǒng)示意圖
雙機(jī)熱備系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。它的工作方式一般有3種:主備機(jī)模式、互備模式和雙機(jī)雙工模式(即雙機(jī) 冗 余 模 式 )[3]。3種模式下的兩個(gè)子系統(tǒng)均加電工作,每個(gè)子系統(tǒng)都具有故障檢測(cè)和診斷功能,而且3種結(jié)構(gòu)均具有主備切換功能。但主備機(jī)模式下只有一個(gè)子系統(tǒng)能夠控制被控對(duì)象,另一個(gè)子系統(tǒng)處于待命狀態(tài);互備模式為兩子系統(tǒng)之間互相備份數(shù)據(jù),但執(zhí)行的是不同的任務(wù),在一臺(tái)故障時(shí),另一臺(tái)接收故障機(jī)的任務(wù)并繼續(xù)執(zhí)行;雙機(jī)雙工模式的兩個(gè)子系統(tǒng)均處于活動(dòng)狀態(tài),均能控制被控對(duì)象,同時(shí)進(jìn)行工作并完成同樣的功能,在輸出前進(jìn)行比較,結(jié)果一致則輸出,不一致則報(bào)錯(cuò),而主備機(jī)模式和互備模式時(shí),系統(tǒng)在運(yùn)行過(guò)程中兩個(gè)單元的運(yùn)行結(jié)果不進(jìn)行比較。
本系統(tǒng)的主要功能為利用單片機(jī)系統(tǒng)驅(qū)動(dòng)某型號(hào)安全型繼電器,可以考慮的熱備工作模式為主備機(jī)模式或雙機(jī)雙工模式,因而需比較兩種模式的可靠性。
系統(tǒng)的可靠性R(t)為時(shí)間和失效率的函數(shù),指產(chǎn)品在規(guī)定時(shí)間內(nèi)和規(guī)定條件下,完成規(guī)定功能的概率。失效率指的是在規(guī)定時(shí)間內(nèi)和規(guī)定條件下的產(chǎn)品失效的概率,一般用λ表示。系統(tǒng)的可靠性常隨時(shí)間的增加而減少,一般用平均無(wú)故障工作時(shí)間(MTBF)來(lái)衡量。MTBF指系統(tǒng)相鄰兩次故障間的平均工作時(shí)間,它的值為系統(tǒng)的可靠性 R(t)的期望[11-12]。
在此,假設(shè)單機(jī)系統(tǒng)壽命服從指數(shù)分布,則第i個(gè)子系統(tǒng)的壽命即可靠度函數(shù)為Ri(t)=e-λt,則可知單機(jī)的平均無(wú)故障時(shí)間為
主備機(jī)模式下,一個(gè)子系統(tǒng)工作,另一個(gè)不工作,它的系統(tǒng)可靠度和平均無(wú)故障工作時(shí)間分別為:
雙機(jī)雙工模式可看作兩個(gè)子系統(tǒng)的并聯(lián),則此模式下系統(tǒng)的可靠性取決于兩個(gè)子系統(tǒng)中壽命較長(zhǎng)者,其可靠度函數(shù)和平均無(wú)故障工作時(shí)間分別為:
可以看出,相比單機(jī)系統(tǒng),兩種模式下的雙機(jī)熱備系統(tǒng)的可靠性均有顯著提高,其中主備機(jī)模式下提高了3倍,雙機(jī)雙工模式下提高了1.5倍。因此,從保證系統(tǒng)更高可靠性的角度來(lái)看,主備機(jī)模式具有一定優(yōu)勢(shì),故本系統(tǒng)采用主備機(jī)模式。
本系統(tǒng)選用Atmel公司的AT90CAN128單片機(jī)作為主控芯片,其內(nèi)部已經(jīng)集成了CAN控制器,因此無(wú)需使用CAN控制器SJA1000,只需選用TJA1050作為CAN高速收發(fā)器,大大簡(jiǎn)化了電路。其系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)框圖
本系統(tǒng)采用3片AT90CAN128單片機(jī)作為核心控制芯片,其中MCUA和MCUB構(gòu)成雙機(jī)熱備系統(tǒng),MCUC用于監(jiān)測(cè)和狀態(tài)顯示。單片機(jī)MCUA和MCUB互為主備關(guān)系,需要接收并處理上位機(jī)發(fā)送進(jìn)來(lái)的CAN通信信息,對(duì)信息進(jìn)行比較同步處理,進(jìn)而通過(guò)驅(qū)動(dòng)電路驅(qū)動(dòng)某安全型繼電器。驅(qū)動(dòng)電路可包含多組,每一組控制一個(gè)繼電器,電路由主MCU控制。MCUA和MCUB把相關(guān)監(jiān)測(cè)信息通過(guò)串口通信傳送給MCUC,MCUC監(jiān)測(cè)A和B是否工作正常,并將其工作狀態(tài)通過(guò)LED顯示燈進(jìn)行狀態(tài)顯示。3個(gè)CPU相互之間由串口進(jìn)行通信,并通過(guò)CAN總線與上位主機(jī)進(jìn)行通信。這樣,整個(gè)系統(tǒng)就形成兩套MCU控制回路構(gòu)成主備關(guān)系,一套控制回路進(jìn)行監(jiān)測(cè)的系統(tǒng)架構(gòu)。
程序采用C語(yǔ)言模塊化設(shè)計(jì),C語(yǔ)言作為一種結(jié)構(gòu)式的高級(jí)語(yǔ)言,具有表達(dá)方式靈活、可移植性強(qiáng)、代碼質(zhì)量高等優(yōu)點(diǎn),模塊化的設(shè)計(jì)也增強(qiáng)了程序的可讀性。其主程序流程圖如圖3所示。
趙婧:現(xiàn)在越來(lái)越多的年輕人欣賞真實(shí),喜歡真實(shí)記錄的東西,不喜歡演的東西。他們覺(jué)得好的內(nèi)容、真實(shí)的東西可以引發(fā)自己對(duì)生活的細(xì)思細(xì)想。好的文化綜藝作品,要讓年輕人在探索世界、汲取知識(shí)的同時(shí)“遇見(jiàn)”自己,要讓他們看了之后更熱愛(ài)生活,這應(yīng)該是今后文化綜藝進(jìn)一步探索時(shí)瞄準(zhǔn)的方向。
為了滿足高可靠性、安全性的要求,程序中對(duì)MCU加入了CPU自檢模塊,因而3個(gè)CPU共同具有的模塊包括設(shè)備初始化模塊、通信處理模塊和CPU自檢模塊,并通過(guò)自定義采集量完成延時(shí)去抖等。通過(guò)在主程序中設(shè)置Flag標(biāo)志位來(lái)對(duì)各個(gè)模塊進(jìn)行調(diào)用。對(duì)于MCUA和MCUB,由于二者互為冗余,它們的軟件設(shè)計(jì)結(jié)構(gòu)基本一致,另外包含同步信息處理模塊和驅(qū)動(dòng)模塊。負(fù)責(zé)監(jiān)測(cè)的MCUC則包含信息存儲(chǔ)模塊、LED顯示模塊。
(1)設(shè)備初始化模塊
該模塊主要完成系統(tǒng)的準(zhǔn)備工作、系統(tǒng)的上電自檢和自檢后的處理3步。其中,準(zhǔn)備工作主要有上電延時(shí)(約0.5 s)、MCU引腳方向寄存器的設(shè)置、數(shù)據(jù)區(qū)初始化、A/D轉(zhuǎn)換器參數(shù)設(shè)置、定時(shí)器參數(shù)設(shè)置、地址碼讀取。系統(tǒng)上電自檢包括MCU自檢、開(kāi)中斷、同步電路自檢、地址碼自檢。自檢結(jié)束后處理初始化與MCUC通信的參數(shù)設(shè)置、自檢故障處理或初始化CAN總線。
圖3 主程序流程圖
(2)自檢和故障處理模塊
該模塊主要用于對(duì)整個(gè)系統(tǒng)的內(nèi)部自檢及故障后的處理,包括MCUA和MCUB之間的CAN總線通信自檢、地址校核和各個(gè)CPU的自檢,CPU的自檢又包括CPU自身運(yùn)算符的自檢和數(shù)據(jù)區(qū)的自檢,自檢結(jié)果若出現(xiàn)錯(cuò)誤,則置位相應(yīng)錯(cuò)誤標(biāo)識(shí)。
(3)通信處理模塊
該模塊用于處理上位機(jī)通過(guò)CAN總線下發(fā)的通信命令,包括命令的解析、命令幀命令的合法性檢查、轉(zhuǎn)換成有效的驅(qū)動(dòng)命令3部分。定義通信協(xié)議每一幀包括10個(gè)字節(jié),第1個(gè)字節(jié)為板地址號(hào),第2個(gè)字節(jié)為功能碼,第3個(gè)字節(jié)為通信序號(hào),第4~8個(gè)字節(jié)為本幀要發(fā)送的主要數(shù)據(jù)信息,幀尾(最后兩個(gè)字節(jié))為CRC校驗(yàn)位。其中發(fā)送的主要數(shù)據(jù)信息包括繼電器的動(dòng)作信息、狀態(tài)信息和MCU的狀態(tài)信息等。
(4)同步處理模塊
該模塊主要用于主機(jī)和備機(jī)間發(fā)送和接收同步命令幀以及向MCUC發(fā)送監(jiān)測(cè)信息幀,發(fā)送方對(duì)需發(fā)送的數(shù)據(jù)打包發(fā)送,接收方對(duì)同步數(shù)據(jù)的接收解包,每30 s同步一次,通過(guò)MCU之間的串口通信進(jìn)行,每一幀都要進(jìn)行CRC校驗(yàn)。
(5)驅(qū)動(dòng)模塊
安全型繼電器是一種新型直流24 V繼電器系列,因此驅(qū)動(dòng)電路選用直流24 V電源。它是一種我國(guó)自行設(shè)計(jì)和制造的信號(hào)繼電器,具有結(jié)構(gòu)新穎、重量輕、體積小等特點(diǎn)。圖4所示為繼電器驅(qū)動(dòng)模塊結(jié)構(gòu)示意圖。對(duì)于本多組驅(qū)動(dòng)熱備系統(tǒng),只需將多組此結(jié)構(gòu)的電路分別連接至 MCUA和MCUB即可,MCUA和MCUB的硬件結(jié)構(gòu)完全相同。
本驅(qū)動(dòng)電路由CPU控制,通過(guò)JF和JZ連接某安全型繼電器。電路中由兩個(gè)光電隔離器件K1和K2串聯(lián),分別通過(guò)QD1和QD2兩引腳接入MCU,由單片機(jī)軟件控制光電隔離的導(dǎo)通,并由光電隔離的導(dǎo)通順序決定電容C1和C2的先后充電放電,繼而導(dǎo)通由JF和JZ連接的繼電器。QD1和QD2的高低電平先后導(dǎo)通時(shí)序如圖5所示。
繼電器正常運(yùn)作過(guò)程中,驅(qū)動(dòng)模塊需按圖5所示的導(dǎo)通時(shí)序多個(gè)周期反復(fù)運(yùn)行。驅(qū)動(dòng)時(shí)主機(jī)和備機(jī)每5個(gè)周期同步一次,根據(jù)圖3(a)的主程序流程圖,驅(qū)動(dòng)模塊在主標(biāo)志位置為QD_CHECK時(shí)開(kāi)始動(dòng)作。根據(jù)驅(qū)動(dòng)電路導(dǎo)通時(shí)序分別將MCU上對(duì)應(yīng)的驅(qū)動(dòng)引腳置為高電平或低電平。據(jù)此編寫程序,驅(qū)動(dòng)模塊單周期軟件流程圖如圖6所示。由于需要在測(cè)試時(shí)多次試驗(yàn)找出繼電器動(dòng)作時(shí)最恰當(dāng)?shù)恼伎毡?,在此沒(méi)有采用定時(shí)器,而是用計(jì)數(shù)的方式進(jìn)行延時(shí)。其中,根據(jù)圖5所示的導(dǎo)通時(shí)序,QD2的MAX值須為QD1的兩倍。
圖4 繼電器驅(qū)動(dòng)模塊示意圖
圖5 驅(qū)動(dòng)電路導(dǎo)通時(shí)序
(6)LED顯示模塊
該模塊用于對(duì)各種狀態(tài)信息的顯示,包括電源指示燈、故障指示燈、繼電器吸起/落下指示燈。硬件電路采用共陽(yáng)極LED顯示電路,軟件通過(guò)MCU將相應(yīng)二極管陰極置為低電平實(shí)現(xiàn)對(duì)該LED的導(dǎo)通。受單片機(jī)引腳所限,MCUA和MCUB只有各自的電源和故障燈,其他功能指示燈連接至MCUC。
(7)MCUC的存儲(chǔ)模塊
該模塊用于MCUC對(duì)接收到MCUA和MCUB的監(jiān)測(cè)信息幀的處理,包括接收信息、處理信息。處理信息時(shí),如果出現(xiàn)異常則會(huì)在系統(tǒng)自檢時(shí)報(bào)錯(cuò)。
本設(shè)計(jì)采用Atmel公司的AVR單片機(jī)AT90CAN128作為核心控制器,經(jīng)過(guò)分析運(yùn)算,選取了可靠性較高的雙機(jī)熱備結(jié)構(gòu)主備機(jī)模式作為系統(tǒng)工作模式,建立了一個(gè)第三方監(jiān)測(cè)下的雙機(jī)熱備結(jié)構(gòu)安全型繼電器驅(qū)動(dòng)系統(tǒng)。經(jīng)測(cè)試證明,本系統(tǒng)具有較好的工作性能,可以滿足可靠性要求。
[1]胡耀華.信號(hào)繼電器及檢修[M].北京:中國(guó)鐵道出版社,1999.
[2]劉芳,王海峰.二乘二取二與雙機(jī)熱備計(jì)算機(jī)聯(lián)鎖系統(tǒng)性能比較[J].鐵道通信信號(hào),2008,44(2):26-29.
[3]姜堅(jiān)華.雙機(jī)熱備系統(tǒng)的技術(shù)研究和具體實(shí)現(xiàn)[J].微型電腦應(yīng)用,2004,20(3):7-9.
[4]李翔.二乘二取二冗余機(jī)制研究[D].成都:西南交通大學(xué),2009.
[5]覃慶努,魏學(xué)業(yè),于蓉蓉,等.基于雙機(jī)聯(lián)合故障檢測(cè)的雙機(jī)熱備系統(tǒng)可靠性和安全性研究[J].系統(tǒng)工程與電子技術(shù),2011,33(12):2776-2781.
[6]高繼祥,鄭俊杰.雙機(jī)熱備計(jì)算機(jī)聯(lián)鎖系統(tǒng)可靠性與安全性指標(biāo)分析[J].北方交通大學(xué)學(xué)報(bào),1998,22(5):73-77.
[7]孫蕾,徐洪澤.雙機(jī)熱備計(jì)算機(jī)聯(lián)鎖控制系統(tǒng)的安全性和可用性分析[J].中國(guó)安全科學(xué)學(xué)報(bào),2004,14(7):30-33.
[8]張佳楠,王海峰,蔣大明.計(jì)算機(jī)聯(lián)鎖系統(tǒng)二乘二取二容錯(cuò)結(jié)構(gòu)分析[J].鐵路計(jì)算機(jī)應(yīng)用,2006,15(11).
[9]陳光武,范多旺,魏宗壽.基于二乘二取二的全電子計(jì)算機(jī)聯(lián)鎖系統(tǒng)[J].中國(guó)鐵道科學(xué),2010,31(4):138-143.
[10]李明建,刁勇.基于雙機(jī)熱備的瓦斯災(zāi)害預(yù)警系統(tǒng)設(shè)計(jì)[J].工礦自動(dòng)化,2013,39(5):19-23.
[11]張興彤.雙機(jī)熱備技術(shù)在鋁廠生產(chǎn)中的應(yīng)用[J].自動(dòng)化儀表,2011,32(11):66-68.
[12]董錫明.軌道列車可靠性、可用性、維修性和安全性(RAMS)[M].北京:中國(guó)鐵道出版社,2009.
[13]郭波,武小悅.系統(tǒng)可靠性分析[M].長(zhǎng)沙:國(guó)防科技大學(xué)出版社,2002.
[14]范紅剛.AVR單片機(jī)自學(xué)筆記[M].北京:北京航空航天大學(xué)出版社,2012.