一種基于CAN總線(xiàn)的集散型火災報警控制系統
1、系統組成與工作原理概述
本文引用地址:http://dyxdggzs.com/article/163638.htm本文提出的基于CAN現場(chǎng)總線(xiàn)的集散型火災報警控制系統的網(wǎng)絡(luò )結構如圖1所示,每個(gè)節點(diǎn)都以AT89C51單片機為節點(diǎn)控制器,MCP2510為總線(xiàn)控制器,MCP2551為總線(xiàn)收發(fā)器,其中,與控制臺工作站相連接的節點(diǎn)被稱(chēng)為集中機,其余為區域機。在集中機中,所謂控制臺工作站,就是一臺PC機,單片機通過(guò)外部串行接口與控制臺工作站交換信息。各個(gè)區域機分布在不同的地理位置上,獨立地執行一個(gè)完整的任務(wù)。在本文系統中,一個(gè)區域機通過(guò)一種專(zhuān)門(mén)設計的探測器總線(xiàn)可以連接感煙、感光、感溫等各種火警探測器,還可以借助適配器控制諸如噴水閥、卷簾門(mén)等各種消防設備以及各種聲光報警設備,探測器總線(xiàn)上的設備通稱(chēng)為前端設備。利用CAN通信技術(shù)將區域機聯(lián)網(wǎng),管理人員在集中機上就可以觀(guān)察各個(gè)部分的情況,便于管理和檢測,隨時(shí)可以了解到各區域機運行的是否正常,有無(wú)報警發(fā)生,也可以使各個(gè)區域機通過(guò)信息交互,實(shí)現資源共享,聯(lián)防控制。每個(gè)區域機都是一個(gè)獨立的基本報警控制單元,其功能與單獨使用時(shí)的情況完全一樣,它們從本區域機的探測器上采集數據,如有警情出現,在啟動(dòng)本區的有關(guān)消防設備的同時(shí),通過(guò)CAN總線(xiàn)將報警信號傳送給集中機,集中機再決定需要起動(dòng)的由其它區域機管轄的有關(guān)消防設備,并通過(guò)CAN總線(xiàn)發(fā)出聯(lián)動(dòng)命令。另外,由于CAN總線(xiàn)是基于報文的,總線(xiàn)上的節點(diǎn)可以做到即插即用,因而系統的可擴展性比較好;并且,增刪CAN總線(xiàn)上除集中機以外的任何一個(gè)節點(diǎn),不會(huì )對其它的節點(diǎn)造成任何影響。

圖1中的MCP2510是Microchip公司為簡(jiǎn)化CAN總線(xiàn)的接口應用而專(zhuān)門(mén)設計的一種獨立CAN控制器芯片,支持CAN協(xié)議2.0A/2.0B,最大可編程波特率為1Mbps;MCP2551是Microchip公司生產(chǎn)的可容錯的高速CAN總線(xiàn)收發(fā)器芯片,支持1Mbps的運行速率,可連接高達112個(gè)節點(diǎn),適合12V和24V系統,管腳特性與MCP2510完全兼容。
2硬件電路與SPI接口技術(shù)
圖2是本文系統節點(diǎn)進(jìn)行CAN通信的硬件電路圖,在原理圖中,總線(xiàn)控制器MCP2510與總線(xiàn)收發(fā)器MCP2551直接相連,因為它們的管腳是完全兼容的,另外,考慮到系統總線(xiàn)速率比較低,所以使MCP2551的斜率電阻輸入引腳RS懸空,選擇最小斜率,這樣,既可將RFI抑制到最小,又可簡(jiǎn)化線(xiàn)路設計。下面重點(diǎn)說(shuō)明一下MCP2510與AT89C51的接口技術(shù)。

圖2節點(diǎn)進(jìn)行CAN通信的硬件接口電路

MCP2510面向單片機有1個(gè)高速SPI接口(5Mhz),該接口由片選控制輸入CS、移位脈沖輸入SCK、串行數據輸入SI和輸出SO等4個(gè)引腳組成。AT89C51不具備標準的SPI接口,但是,可以利用UART接口與SPI接口通信。圖3為AT89C51的UART接口工作在方式0,即移位寄存器方式時(shí)的工作時(shí)序圖。AT89C51的UART有4種工作方式,按方式0工作時(shí),串行數據從RXD輸入或輸出,TXD輸出移位脈沖,每次發(fā)送或接收8位數據,波特率固定為時(shí)鐘頻率的1/12,即1個(gè)位周期對應1個(gè)機器周期,1個(gè)機器周期由12個(gè)時(shí)鐘周期組成,等分為6個(gè)狀態(tài)(S1~S6),每個(gè)狀態(tài)又等分為2個(gè)相位P1、P2,因此1個(gè)機器周期的12個(gè)時(shí)鐘周期可記為S1P1、S1P2、S2P1、……、S6P2。TXD輸出的移位脈沖在每個(gè)機器周期的S3、S4和S5期間為低電平,而在其余時(shí)間為高電平。發(fā)送時(shí),每個(gè)機器周期的S6P2輸出數據,數據有效時(shí)間完全覆蓋了TXD輸出脈沖的負半周,顯然,無(wú)論是在TXD的上升沿,還是下降沿,外設都可從RXD輸入有效數據。接收時(shí),每個(gè)機器周期的S5P2輸入數據,顯然,外設如果在TXD的下降沿輸出數據,單片機就可接收到有效數據。因為MCP2510的SPI接口是在SCK的上升沿輸入數據,在SCK的下降沿輸出數據,所以,在電路圖中,可以將TXD直接作為SCK的輸入信號。MCP2510的SPI接口在讀過(guò)程中,首先接收單片機發(fā)出的讀命令和地址,這時(shí),輸出信號線(xiàn)SO處于高祖態(tài),之后,在輸出數據時(shí),輸入信號線(xiàn)SI的狀態(tài)可為任意值。而在寫(xiě)過(guò)程中,SO始終處于高阻態(tài)。一個(gè)寫(xiě)過(guò)程或讀過(guò)程的啟動(dòng)或結束,都是由片選信號CS控制的。根據SPI接口的這一工作機理,在電路圖中,將MCP2510的SI和SO連接在一起,形成一個(gè)雙向信號線(xiàn),再與AT89C51的準雙向數據線(xiàn)RXD連接在一起,實(shí)驗結果證明,MCP2510與AT89C51的這種連接方式是完全正確的。因為在單片機應用領(lǐng)域,51系列單片機一直是主流產(chǎn)品,所以將其應用于CAN總線(xiàn)系統,無(wú)疑可以降低成本,縮短開(kāi)發(fā)周期。
為了實(shí)現與MCP2510的SPI接口交互,單片機的UART接口選擇方式0,采用12MHz晶振作為單片機的時(shí)鐘頻率,在方式0下,波特率固定為1Mbps。在圖2所示的硬件電路的支持下,AT89C51就可按照普通移位寄存器的方式與MCP2510進(jìn)行數據交互,對MCP2510進(jìn)行寫(xiě)操作和讀操作的匯編語(yǔ)言子程序從略。值得指出的是,因為SPI傳輸數據的順序是先高位后低位,與UART傳輸數據的順序相反,因此,編寫(xiě)單片機與MCP2510的接口程序時(shí),對MCP2510的控制字、狀態(tài)字以及寄存器地址,要進(jìn)行二進(jìn)制到排處理。例如,MCP2510的接收緩沖寄存器RXB0的首地址是01010110B,單片機讀其中的內容時(shí),寫(xiě)入單片機的串口緩沖寄存器SBUF的地址值應該是01101010B。
評論