一種基于CAN總線的集散型火災(zāi)報警控制系統(tǒng)
MCP2510的初始化包括設(shè)定可編程引腳功能、總線波特率以及接收過濾器與屏蔽器,以下主要介紹總線波特率以及接收過濾器與屏蔽器的初始化。
3.1波特率初始化
MCP2510內(nèi)含的波特率發(fā)生器由可編程預(yù)分頻器、固定2分頻器和位定時器級連而成,它使設(shè)計者可以方便地選擇所需要的任何波特率。在位定時器中,MCP2510將一個位周期依次分割為同步段、傳播段、相位緩沖段1和相位緩沖段2等4個時間段,每個時間段的長度都是輸入信號周期TQ的整數(shù)倍,其中同步段固定為1TQ,其余3個時間段的長度都是可編程的。所謂波特率初始化,就是設(shè)置可編程預(yù)分頻器和位定時器各可編程時間段的值,使其滿足波特率的需要。
根據(jù)CAN技術(shù)協(xié)議,波特率為1Mbps時,通信距離為40m,波特率為5Kbps時,通信距離最遠(yuǎn)可以達(dá)到10Km??紤]到本文系統(tǒng)既可用作一個高層樓宇的火災(zāi)報警控制網(wǎng)絡(luò),又可用作一個單位內(nèi)部多個倉庫、車間等的火災(zāi)報警控制網(wǎng)絡(luò),所以通信距離應(yīng)該在數(shù)千米以上,而所要傳輸?shù)臄?shù)據(jù)量不大,故可以選擇較低的波特率。在實際應(yīng)用中,筆者選擇波特率為8Kbps。
本文系統(tǒng)選擇12Mhz晶體振蕩器為MCP2510提供時鐘信號。根據(jù)位定時器中各個時間段的長度必須滿足的約束條件,初始化傳播段寄存器PRSEG=3,相位緩沖段1寄存器PHSEG1=4,相位緩沖段2寄存器PHSEG2=4;然后初始化預(yù)分頻器BRP=49。從而可得總分頻系數(shù)為(49+1)×2×[1+(3+1)+(4+1)+(4+1)]=1500,最終獲得8Kbps的波特率。
3.2過濾器與屏蔽器初始化
MCP2510具有完善的總線爭用功能,可用于分布式系統(tǒng),但是,在火災(zāi)報警控制系統(tǒng)中,因為集中機(jī)擔(dān)負(fù)著對區(qū)域機(jī)的監(jiān)管任務(wù),所以本文系統(tǒng)采用了集中-分散控制方式,集中機(jī)不斷地巡回查詢區(qū)域機(jī),在工作臺上隨時反映區(qū)域機(jī)工作的情況,為工作人員提供維護(hù)設(shè)備的依據(jù)。
MCP2510支持標(biāo)準(zhǔn)幀、擴(kuò)展幀和遠(yuǎn)程幀,數(shù)據(jù)段長度為0-8個字節(jié)。器件對CAN總線上的數(shù)據(jù)接收是通過2個接收緩沖器、6個接收過濾器和2個接收屏蔽器的組合來實現(xiàn)的。CAN總線上的幀只有至少滿足一個接收過濾器的條件才可被接收。為了說明過濾器與屏蔽器的初始化方法,這里首先介紹報文幀。本文系統(tǒng)只使用標(biāo)準(zhǔn)數(shù)據(jù)幀進(jìn)行數(shù)據(jù)傳輸。標(biāo)準(zhǔn)數(shù)據(jù)幀的長度為44+8n位,其中11位ID段在本文系統(tǒng)中被分為兩部分,高7位用來表示區(qū)域機(jī)的邏輯地址碼,整個系統(tǒng)允許接入的區(qū)域機(jī)最多為50個,低4位用來表示報文類型碼。集中機(jī)發(fā)送的報文幀如表1所示,區(qū)域機(jī)發(fā)送的報文幀如表2所示。8n位數(shù)據(jù)段可有可無,在表1中,只有選呼聯(lián)動報文含有數(shù)據(jù)段,表示請求聯(lián)動的設(shè)備號,在表2中,只有請求點(diǎn)名報文不含數(shù)據(jù)段,其余報文必須至少含有1個字節(jié)數(shù)據(jù),用來表示區(qū)域機(jī)的邏輯地址碼,其余數(shù)據(jù)用來表示故障、報警的探測器號和設(shè)備號,或區(qū)域機(jī)配置。
表1:集中機(jī)發(fā)送的報文幀
表2:區(qū)域機(jī)發(fā)送的報文幀
表1中的xxxxxx表示集中機(jī)要訪問的區(qū)域機(jī)的邏輯地址碼。表1的報文是發(fā)送給區(qū)域機(jī)的,表2的報文是發(fā)送給集中機(jī)的,報文能否被接收,要由MCP2510的過濾器來決定,因此,初始化時,集中機(jī)按從上到下的順序?qū)⒈?中的數(shù)據(jù)依次寫入MCP2510的過濾器RXF1~RXF5,區(qū)域機(jī)在用本機(jī)的邏輯地址碼代替表1中的xxxxxx之后,也按從上到下的順序?qū)⒈?中的數(shù)據(jù)依次寫入MCP2510的過濾器RXF1~RXF5,未曾用到的過濾器RXF0被設(shè)置為全“1”,使其不接收總線上的任何有效報文。初始化時,在區(qū)域機(jī)方面,將2個接收屏蔽器都設(shè)置為全“1”,在集中機(jī)方面,將接收屏蔽器RXM1設(shè)置為全“1”,而將RXM0設(shè)置為10110111010B,表示除集中機(jī)的過濾器RXF1的SID9、SID6、SID2和SID0等4位外,過濾器的其余所有位都參與信息過濾,這是因為上述4位與請求點(diǎn)名幀的ID碼在跳變位置上的隱性位相對應(yīng),而請求點(diǎn)名幀容許多個區(qū)域機(jī)同時發(fā)送,從而由傳輸延遲引起的碼間串?dāng)_,很可能使這些位的狀態(tài)不確定。
4通信過程簡介
集散型火災(zāi)報警控制系統(tǒng)的通信過程,也就是集中機(jī)對區(qū)域機(jī)循環(huán)進(jìn)行的點(diǎn)名和查詢過程。在點(diǎn)名階段,集中機(jī)發(fā)送廣播點(diǎn)名幀,區(qū)域機(jī)以請求點(diǎn)名幀響應(yīng),若接收到未被登錄的區(qū)域機(jī)發(fā)出的請求點(diǎn)名幀,集中機(jī)進(jìn)行選呼點(diǎn)名,區(qū)域機(jī)以配置幀響應(yīng);在查詢階段,集中機(jī)反復(fù)判斷有無自檢請求,若有自檢請求,則對區(qū)域機(jī)逐個選呼自檢,區(qū)域機(jī)以配置幀響應(yīng),自檢結(jié)束,繼續(xù)選呼查詢,區(qū)域機(jī)以正常幀、或故障幀,或報警幀響應(yīng),在查詢中若接收到報警信號,再根據(jù)需要發(fā)送選呼聯(lián)動幀,區(qū)域機(jī)以正常幀確認(rèn)。
5結(jié)束語
實驗結(jié)果表明,因為MCP2510具有完善的現(xiàn)場總線管理機(jī)制和面向單片機(jī)的SPI接口,一方面簡化了系統(tǒng)的軟、硬件設(shè)計,另一方面使節(jié)點(diǎn)控制器擺脫了對網(wǎng)絡(luò)通信的頻繁干預(yù),從而大大提高了系統(tǒng)的整體性能,與采用RS232等其它串行通信技術(shù)的集散型系統(tǒng)相比較,本文提出的基于CAN總線的集散型火災(zāi)報警控制系統(tǒng)具有較高的安全性、可靠性和實時性,可用于各種場合的火災(zāi)報警控制。
評論