隨著新技術的不斷發展,對火災報警控制器聯網的要求也越來越高。火災報警控制器不但要 完成本機的報警、聯動等功能,還要把報警信息傳送到其它報警控制器或系統。本文介紹了 基于CAN總線的對等式火災報警系統,系統中任意報警控制器都可以平等地從總線上接收其 它報警控制器的報警信息,也可以對其它報警控制器發出指令,從而克服了"主從式"通訊 中所有信息必須通過主機進行交換的缺點。
1、CAN總線簡介
控制器局域網CAN(Controller Area Net)是一種現場總線,主要用于各種過程檢測及控制。 CAN最初是由德國BOSCH公司為汽車監測和控制而設計的,目前CAN已逐步應用到其它工業控 制中,現已成為ISO-11898國際標準。
CAN總線有以下特點:
1)CAN可以是對等結構,即多主機工作方式,網絡上任意一個節點可以在任意時刻主動地向 網絡上其它節點發送信息,不分主從,通訊方式靈活。
2)CAN網絡上的節點可以分為不同的優先級,滿足不同的實時需要。
3)CAN采用非破壞性仲裁技術,當兩個節點同時向網絡上傳送信息時,優先級低的節點自動 停止發送,在網絡負載很重的情況下不會出現網絡癱瘓。
4)CAN可以點對點、點對多點、點對網絡的方式發送和接收數據,通訊距離最遠10 km(5 kb/ s),節點數目可達110個。
5)CAN采用的是短幀結構,每一幀的有效字節數為8個,具有CRC校驗和其它檢測措施,數據出錯幾率小。CAN節點在錯誤嚴重的情況下,具有自動關閉功能,不會影響總線上其它節點操作。
6)通訊介質采用廉價的雙絞線,無特殊要求,用戶接口簡單,容易構成用戶系統。
2、系統構成
系統中每個節點由火災報警控制器、CAN總線控制器、CAN收發器構成,系統結構圖如圖1所 示,火災報警控制器接收火災報警信息并完成火災判斷、聯動等功能;CAN控制器用于各控 制器 之間的數據傳遞;CAN收發器增強了控制器的驅動能力,保證了火災報警控制器之間的通訊 距離。
圖1系統結構圖
發送數據時,火災報警器把需要傳送的數據寫入CAN控制器的發送緩沖區,啟動發送, 數據即通過CAN收發器發送到總線上;接收數據時,CAN控制器通過CAN收發器從總線上接收 數據,處理后存入接收緩沖區,并給出接收中斷信號,這時,火災報警器可以從CAN控制器 的接收緩沖區取走數據。
3、系統硬件設計
圖2是CAN總線節點(即火災報警器節點)的電原理圖,圖中CPU以MCS-51系列單片機為例進行 說明。82C200是CAN通訊控制器,主要完成CAN的通訊協議。82C200需外接復位(RST)信號; 可選用6~24 MHz晶振;MODE接VDD為INTEL方式,接VSS為Motorola方式;中斷(INT)連接到 CPU的INT0;片選信號(CS)由CPU的A15控制;TX0和RX0是與CAN總線的接口;RX1需接地。82C 250是CAN收發器,用于提供對總線差動發送和接收的驅動能力;TXD和RXD用于發送和接收信號。
4、系統軟件設計
在軟件設計時,由于CAN通訊協議是由集成在CAN控制器82C200中的硬件電路實現的,因此, 通訊軟件的開發主要體現在應用軟件上,主要包括兩部分:初始化程序和通訊程序。
41初始化
在開機和復位后,需要對CAN控制器進行初始化,通過對82C200控制段的寄存器寫入控制字 從而確定82C200的工作方式。初始化時,首先給CAN控制器發出復位指令,然后給控制寄存 器CR、命令寄存器CMR、狀態寄存器SR、中斷寄存器IR、驗收寄存器ACR、驗收屏蔽寄存器AM R、總線定時寄存器BTR0、BTR1、輸出控制寄存器OCR寫入相應的控制字。軟件流程如圖3所 示。
圖3 初始化程序流程圖
42通訊程序
在發送數據時,CPU把需要發送的一幀數據寫入CAN控制器82C200,然后啟動發送,CAN控制 器即把數據發送到總線上。在接收數據時,CAN控制器把從總線上接收的數據存入緩沖區,CPU再從緩沖區讀取數據。 數據的發送和接收可以采用查詢方式和中斷方式,下面給出采用中斷方式時的中斷服務程序。軟件 流程如圖4所示。
圖4 中斷服務程序流程圖
5、結論
傳統的"主從式"通訊方式中,如果主機因為某種原因出現通訊故障,將導致整個網絡癱瘓 。在基于CAN總線的對等式火災報警控制系統中,各火災報警控制器節點的關系是平等的, 都可以主動地從總線接收和發送信息,真正地實現了系統信息的共享,從而較好地解決了這 個問題,網絡中任意節點都可以平等地發送和獲取需要的信息。同時,CAN總線具有抗干擾 能力強、傳輸距離遠、價格低廉、易于維護等優點,可廣泛應用于火災報警系統中。
參考文獻:
[1]鄔明寬《CAN總線原理和應用系統設計》,北京:北京航空航天大學出版社,1996
[2]陽憲惠《現場總線技術及應用》,北京:清華大學出版社,1999
[3]Application Notes and Development Tools for 80C51 Microcontrollers PHILIP S 1995.