1 引言
火災(zāi)報警系統(tǒng)是目前國內(nèi)外火災(zāi)探測報警領(lǐng)域最受關(guān)注的研究方向之一。綜合利用現(xiàn)代計算機技術(shù)(Computer)、現(xiàn)代控制技術(shù)(Control)、現(xiàn)代通信技術(shù)(Communication) 和現(xiàn)代圖形顯示技術(shù)(CRT)即4C 技術(shù)[1]的火災(zāi)報警系統(tǒng)既能快速準(zhǔn)確的探測出早期的真實的火災(zāi)信號,又能通過聯(lián)動控制在一定范圍內(nèi),及時消除火災(zāi)隱患,防患于未然,最大限度的降低了火災(zāi)造成的危害,保護人們的生命財產(chǎn)安全。隨著社會經(jīng)濟的發(fā)展,建筑物的規(guī)模日欲趨于大型化和一體化,火災(zāi)報警系統(tǒng)監(jiān)控的范圍也隨之增大,這就要求系統(tǒng)具有更高的可靠性、實時性和靈活性。CAN總線作為應(yīng)用最廣泛的現(xiàn)場總線技術(shù)之一,它的數(shù)據(jù)通信在可靠性、實時性和靈活性等方面有著突出的優(yōu)點,針對有著極高可靠性要求的火災(zāi)報警系統(tǒng),該總線系統(tǒng)是一種理想的報警信息傳輸模式。本文提出了一種基于CAN總線的復(fù)合式火災(zāi)報警系統(tǒng)[2]。
2 CAN現(xiàn)場總線概述
CAN(Controller Area Network,控制器局域網(wǎng))是1986年德國BOSCH公司為解決現(xiàn)代汽車中眾多的控制與測試之間的數(shù)據(jù)交換,而開發(fā)的一種串行數(shù)據(jù)協(xié)議,后來由于自身的特點而逐步發(fā)展到廣泛應(yīng)用于各行各業(yè)。
CAN協(xié)議遵循ISO/OSI模型,采用了其中的物理層、數(shù)據(jù)鏈路層與應(yīng)用層。CAN采用非破壞性總線仲裁技術(shù),按優(yōu)先級發(fā)送,可以大大節(jié)省總線沖突仲裁時間,在重負(fù)荷下表現(xiàn)出良好的性能。CAN采用短幀結(jié)構(gòu)傳輸,每幀有效字節(jié)為8個,傳輸時間短,受干擾的概率低,且每幀信息都有CRC校驗和其它檢錯措施,保證數(shù)據(jù)出錯率極低。當(dāng)節(jié)點出現(xiàn)嚴(yán)重錯誤時,具有自動關(guān)閉功能,以切斷該節(jié)點與總線的聯(lián)系,使總線上的其它節(jié)點及通信不受影響。可見,CAN使所有總線中最為可靠的。CAN直接通信最遠(yuǎn)距離可達(dá)10 km(傳輸速率為5 Kbps),通信最高速率可達(dá)1Mbps(傳輸距離為40 m);總線上節(jié)點數(shù)目可達(dá)110個;通信介質(zhì)可以是雙絞線、同軸電纜或光纖。CAN是一種多主總線,節(jié)點之間不分主從,可以方便地構(gòu)成一個控制系統(tǒng),系統(tǒng)將大部分的控制權(quán)力交給現(xiàn)場的智能節(jié)點,交互信息通過CAN總線傳送,由于CAN總線的上述特點及其成本低的優(yōu)勢必然在火災(zāi)自動報警控制系統(tǒng)占有重要地位[1,2,3]。
整個系統(tǒng)主要由中央監(jiān)控計算機、服務(wù)器、CAN適配卡和智能節(jié)點四個部分組成。最多可掛接110個節(jié)點,也可利用中繼器對CAN總線進(jìn)行擴展。采用CAN總線連接各個網(wǎng)絡(luò)節(jié)點,形成了一個分布式系統(tǒng)。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用的是總線式結(jié)構(gòu),該結(jié)構(gòu)電簡單、成本低、系統(tǒng)可靠性高。將帶片內(nèi)CAN控制器的微處理器P87C591芯片與現(xiàn)場火災(zāi)探測器相連,就構(gòu)成了CAN智能節(jié)點。傳輸介質(zhì)采用雙絞線。上位PC機通過PCCAN適配卡與CAN總線相連,進(jìn)行信息的交換。各種火災(zāi)探測器將實時探測到的物理量信號傳送給智能節(jié)點,如采集到現(xiàn)場有火災(zāi)信號產(chǎn)生,則智能節(jié)點將火災(zāi)信號打包成CAN數(shù)據(jù)包傳送到CAN總線上去,然后再由中央監(jiān)控計算機對這些數(shù)據(jù)進(jìn)行計算處理和統(tǒng)計評估?;馂?zāi)信號判斷的原則不是簡單的非準(zhǔn)則,而需要同時考慮其它多種因素。根據(jù)預(yù)先設(shè)定的有關(guān)規(guī)則,將這些數(shù)據(jù)轉(zhuǎn)換為適當(dāng)?shù)膱缶瘎幼髦笜?biāo),相應(yīng)的發(fā)出預(yù)報警。如“產(chǎn)生少量煙,但溫度急劇上升――發(fā)出報警”,“產(chǎn)生少量煙,且溫升平緩――發(fā)出預(yù)報警”等。
4.3.1 硬件的抗干擾設(shè)計
3 火災(zāi)報警系統(tǒng)的總體設(shè)計
系統(tǒng)在設(shè)計時,在保證系統(tǒng)的可靠工作和降低成本的同時也考慮了通用性、實時性和可擴展性等要求。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
整個系統(tǒng)主要由中央監(jiān)控計算機、服務(wù)器、CAN適配卡和智能節(jié)點四個部分組成。最多可掛接110個節(jié)點,也可利用中繼器對CAN總線進(jìn)行擴展。采用CAN總線連接各個網(wǎng)絡(luò)節(jié)點,形成了一個分布式系統(tǒng)。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用的是總線式結(jié)構(gòu),該結(jié)構(gòu)電簡單、成本低、系統(tǒng)可靠性高。將帶片內(nèi)CAN控制器的微處理器P87C591芯片與現(xiàn)場火災(zāi)探測器相連,就構(gòu)成了CAN智能節(jié)點。傳輸介質(zhì)采用雙絞線。上位PC機通過PCCAN適配卡與CAN總線相連,進(jìn)行信息的交換。各種火災(zāi)探測器將實時探測到的物理量信號傳送給智能節(jié)點,如采集到現(xiàn)場有火災(zāi)信號產(chǎn)生,則智能節(jié)點將火災(zāi)信號打包成CAN數(shù)據(jù)包傳送到CAN總線上去,然后再由中央監(jiān)控計算機對這些數(shù)據(jù)進(jìn)行計算處理和統(tǒng)計評估?;馂?zāi)信號判斷的原則不是簡單的非準(zhǔn)則,而需要同時考慮其它多種因素。根據(jù)預(yù)先設(shè)定的有關(guān)規(guī)則,將這些數(shù)據(jù)轉(zhuǎn)換為適當(dāng)?shù)膱缶瘎幼髦笜?biāo),相應(yīng)的發(fā)出預(yù)報警。如“產(chǎn)生少量煙,但溫度急劇上升――發(fā)出報警”,“產(chǎn)生少量煙,且溫升平緩――發(fā)出預(yù)報警”等。
4 火災(zāi)報警系統(tǒng)的硬件設(shè)計
4.1 內(nèi)嵌CAN控制器芯片P87C591
4.1 內(nèi)嵌CAN控制器芯片P87C591
本設(shè)計所使用的Philips公司的P87C591芯片是一個8位高性能微控制器,具有片內(nèi)CAN控制器。中央處理器CPU使用的操作數(shù)來自3個存儲空間:16KB內(nèi)部程序存儲器,可擴展到64KB;512B內(nèi)部數(shù)據(jù)存儲器;最大64KB外部數(shù)據(jù)存儲器。
P87C591包括獨立CAN控制器SJA1000具有的所有功能,并在此基礎(chǔ)上擴展了以下功能:①增強的CAN接收中斷,有接收緩沖區(qū)級的接收中斷;②擴展的驗收濾波器,8個濾波器用于標(biāo)準(zhǔn)幀格式,4個濾波器用于擴展幀格式[4]。
4.2 CAN收發(fā)器82C250
82C250用于CAN總線控制器和物理總線之間接口,它是由Philips公司設(shè)計生產(chǎn),其通信介質(zhì)與RS485相同,均為阻抗為120Ω雙絞線,信號傳輸方式和RS485一樣,也是采用差動發(fā)送和差動接收。通信速率為1Mbps時,其任意兩個節(jié)點之間的最大距離為40m;通信速率為5Kbps時,其任意兩個節(jié)點之間的距離可達(dá)10km。82C250有8個管腳,其封裝式有DIP8和S08兩種封裝形式,表1是它的管腳功能。
管腳 |
符號 |
功能描述 |
1 |
TXD |
發(fā)送數(shù)據(jù)輸入端,接控制器的串行數(shù)據(jù)輸出端 |
2 |
GND |
地 |
3 |
Vcc |
電源電壓,4.5V≤Vcc≥5.5V |
4 |
RXD |
接收數(shù)據(jù)輸出端,接控制器的串行數(shù)據(jù)接收端 |
5 |
Vref |
基準(zhǔn)電壓輸出端 |
6 |
CANL |
低電平輸入/輸出端 |
7 |
CANH |
高電平輸入/輸出端 |
8 |
Rs |
斜率電阻輸入端 |
4.3 CAN智能節(jié)點硬件電路設(shè)計
在設(shè)計CAN總線系統(tǒng)智能節(jié)點時,采用內(nèi)嵌CAN控制器的芯片P87C591和82C250芯片。圖2所示為CAN智能節(jié)點硬件電路示意圖,從圖中可以看出電路主要由三部分構(gòu)成:P87C591、CAN總線收發(fā)器82C250和高速光電耦合器6N137。
4.3.1 硬件的抗干擾設(shè)計
在火災(zāi)報警系統(tǒng)所應(yīng)用的場合中,大多環(huán)境比較惡劣,存在大量的產(chǎn)生電磁、輻射和感應(yīng)干擾設(shè)備,因此抗干擾設(shè)計顯得尤其重要。該系統(tǒng)中主要采取了如下幾種抗干擾措施:
(1)P87C591的接收端和發(fā)送端經(jīng)過高速光電耦6N137與82C250的TXD和RXD相連,實現(xiàn)各節(jié)點之間電氣上的隔離。
(2)在CAN總線的兩端加兩個120Ω的電阻,可大大提高數(shù)據(jù)通信的抗干擾能力和可靠性。
(3)CANH和CANL與地之間并聯(lián)了兩個30pF的小電容,可以濾除總線上的高頻干擾并且具有一定的防電磁輻射的能力。
(4)采用屏蔽雙絞線進(jìn)行網(wǎng)絡(luò)傳輸,可減小現(xiàn)場對節(jié)點的干擾。
4.3.2 中繼器電路設(shè)計
如果網(wǎng)絡(luò)中的節(jié)點太多,超過了總線驅(qū)動器的負(fù)載能力,或者各節(jié)點之間的距離大于總線規(guī)定的距離,則必需使用中繼器來隨時接收并判斷網(wǎng)絡(luò)中的數(shù)據(jù)流向,然后根據(jù)其數(shù)據(jù)的流向決定向中繼器的兩端中的某一端發(fā)送數(shù)據(jù),這樣增加了網(wǎng)絡(luò)的節(jié)點數(shù)或延長各節(jié)點之間的距離。
在82C250組成的分布式系統(tǒng)中,各個節(jié)點可以同時向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。并且82C250在工作過程中,不需任何控制信號。在82C250構(gòu)成的網(wǎng)絡(luò)中,只需要兩片82C250和兩個電阻就可以組成一個中繼器。
雖然82C250是為CAN總線配套的CAN總線驅(qū)動器,但它和RS485一樣,只是一種純硬件標(biāo)準(zhǔn),它只規(guī)定 了串行通信鏈路的電氣特性,而軟件協(xié)議與它接口的通信控制器有關(guān)。由82C250和UART組成遠(yuǎn)距離、多節(jié)點分布式測控系統(tǒng)和由RS485和UART組成的相比,其可靠性高、結(jié)構(gòu)簡單、軟硬件開發(fā)難度小。
4.4 CAN智能節(jié)點的軟件設(shè)計
CAN智能節(jié)點軟件設(shè)計主要包括4個部分:CAN節(jié)點初始化、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)和總線異常處理。圖3為主程序的流程圖。
(1)初始化子程序
P87C591片上自帶的CAN控制器在軟件上是向上兼容SJA1000的,所以對P87C591的初始化與獨立的CAN控制SJA1000初始化,主要包括工作方式的設(shè)置,接收濾波方式的設(shè)置,接收屏蔽寄存器AMR和接收代碼寄存器ACR的設(shè)置,波特率參數(shù)設(shè)置和中斷允許寄存器IER的設(shè)置等。
(2)接收子程序
接收子程序負(fù)責(zé)節(jié)點報文的接收以及其它情況處理,接收子程序比發(fā)送子程序要復(fù)雜一些,因為在處理接收報文的過程中,同時要對諸如脫離、錯誤報警、接收溢出等情況進(jìn)行處理。
(3)發(fā)送子程序
發(fā)送子程序負(fù)責(zé)節(jié)點報文的發(fā)送,發(fā)送時用戶只需要將待發(fā)送的數(shù)據(jù)按特定格式組合成一幀報文送入P87C591片上的SJA1000發(fā)送緩存中,然后啟動P87C591發(fā)送即可。
(4)中斷服務(wù)子程序
中斷服務(wù)程序包括數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、數(shù)據(jù)請求接收、錯誤處理子程序,首先將中斷現(xiàn)場保護,進(jìn)入中斷服務(wù)之后,讀中斷寄存器IR的內(nèi)容使中斷標(biāo)志清空,并確定了中斷類型,然后根據(jù)不同的中斷類型進(jìn)行任務(wù)散轉(zhuǎn)。出現(xiàn)了錯誤中斷,將進(jìn)行錯誤處理;出現(xiàn)超載中斷,重新請求數(shù)據(jù)發(fā)送,等待下一次接收數(shù)據(jù)中斷;除此之外,根據(jù)RTR(Remote Transmission Request)的值確定是發(fā)送中斷還是接收中斷,RTR=1表示將要發(fā)送請求的數(shù)據(jù)幀,反之將要接收數(shù)據(jù)。中斷完成后恢復(fù)現(xiàn)場,退出中斷。
4 結(jié)論
(1)本設(shè)計采用CAN總線技術(shù)的火災(zāi)報警系統(tǒng),與傳統(tǒng)的RS-485通信方式相比,具有更高的可靠性、更強的實時性,系統(tǒng)實現(xiàn)機動靈活。
(2)采用帶片內(nèi)CAN控制器的P87C591芯片,與常用的MCS-51系列單片機加CAN控制器方案相比,該系統(tǒng)具有應(yīng)用設(shè)計簡單、體積小,以及方便嵌入應(yīng)用和更高可靠性的優(yōu)點。
(3)通過引入火災(zāi)數(shù)據(jù)和專家系統(tǒng)、模糊邏輯理論、人工神經(jīng)網(wǎng)絡(luò)等智能技術(shù),綜合利用先進(jìn)的計算機技術(shù)、現(xiàn)代控制技術(shù)、現(xiàn)代通信技術(shù)和現(xiàn)代圖形顯示技術(shù),大大優(yōu)化了火災(zāi)報警系統(tǒng)的性能,降低了系統(tǒng)的誤報率和漏報率。
參考文獻(xiàn)
[1] 楊憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用[M].北京:清華大學(xué)出版社,1999
[2] 劉輝.基于CAN總線的智能火災(zāi)報警系統(tǒng)的設(shè)計與實現(xiàn)[J].電氣時代,2001(5)
[3] 楊飛,鄭貴林.基于CAN總線的監(jiān)控系統(tǒng)設(shè)計[J].微計算機信息,2005,21(7)
[4] 武小紅,成立,秦云.基于CAN總線的分布式安全報警系統(tǒng)[J].中國安全科學(xué)學(xué)報,2005,15(1)
[5] 張晶,鮑鴻.基于人工智能技術(shù)的火災(zāi)探測信息融合系統(tǒng)[J].微型機與應(yīng)用,2004(6)