基于CAN現(xiàn)場總線技術(shù)的機艙報警系統(tǒng)
1 CAN總線概述
CAN (Controller Area Network) ,即控制局域網(wǎng),是 一種具有高可靠性、支持分布式和實時控制的串行通 信網(wǎng)絡(luò)。CAN為多主方式工作,網(wǎng)絡(luò)上任意節(jié)點均可 在任意時刻主動地向網(wǎng)絡(luò)上其他節(jié)點發(fā)送信息,而不 分主從,且無需站地址等節(jié)點信息,通信靈活。CAN 協(xié)議模型結(jié)構(gòu)只有3層,即只取OSI模型底層的物理 層、數(shù)據(jù)鏈路層和頂層的應(yīng)用層。物理層使用雙絞線, 數(shù)據(jù)鏈路層采用了具有優(yōu)先級控制的載波偵聽及沖突 檢驗機制(CSMA /CD) 。CAN 的最大特點是可靠性 高,其節(jié)點在錯誤嚴(yán)重的情況下具有自動關(guān)閉總線的 功能,切斷與總線的聯(lián)系,使總線上其他操作不受影 響。CAN總線的速率在40m內(nèi)可達1Mbit/ s,最大傳 輸距離為10km,最大傳輸距離時的速率可達5kbit/ s。 每條CAN總線可掛接設(shè)備數(shù)最多可達110個,多條連 用時,容量基本不受限制。
2 CAN總線在船舶中的應(yīng)用
目前, CAN總線應(yīng)用于船舶的基本網(wǎng)絡(luò)模型如圖 1所示。
模型中網(wǎng)絡(luò)分為2層結(jié)構(gòu),分別為上層網(wǎng)和下層 網(wǎng)(子網(wǎng)) ,子網(wǎng)通過網(wǎng)橋與上層網(wǎng)相連接。采用這種 結(jié)構(gòu),網(wǎng)絡(luò)中節(jié)點數(shù)理論上可以達到1000個,大大擴 充了CAN網(wǎng)絡(luò)容量,完全可以滿足船舶監(jiān)控系統(tǒng)的需 要。
因為CAN協(xié)議本身沒有考慮冗余的結(jié)構(gòu),所以各 CAN系統(tǒng)自行設(shè)計了冗余方案,其中常見的做法有2 種:一種是子網(wǎng)中每個CAN節(jié)點都有2個CAN通信 模塊,同時鋪設(shè)2路總線,當(dāng)一路總線出現(xiàn)故障時,自 動啟用備用總線通信;另一種是每個子網(wǎng)采用環(huán)形拓 撲結(jié)構(gòu),實現(xiàn)方法是只在CAN網(wǎng)橋與子網(wǎng)連接的一端 保留2個CAN通信模塊(主干網(wǎng)可采用類似的方法) , 分別接子網(wǎng)總線的兩端,構(gòu)成環(huán)形,這樣每個節(jié)點可以 在兩個方向上與其他節(jié)點通信,某一處總線斷開不影 響系統(tǒng)正常工作。
3 CAN通信模塊的設(shè)計
下面結(jié)合所開發(fā)的模塊實例,簡要介紹以CAN通 信模塊開發(fā)的一般方法及軟硬件問題的解決。
3. 1 下位節(jié)點的設(shè)計
本例中CAN網(wǎng)絡(luò)節(jié)點的結(jié)構(gòu)如圖2所示。
其中, 80C196KC是Intel 16 位微控制器,內(nèi)置有 16K ROM, 488B寄存器RAM,A /D轉(zhuǎn)換器,看門狗定時 器等。其工作頻率可達20MHz,適用于實時控制系統(tǒng)。 SJA1000是新型的CAN 獨立通信控制器, 支持 CAN2. 0A和2. 0B兩種規(guī)范,可完成物理層和數(shù)據(jù)鏈路 層的所有功能。通信波特率最高可達1Mbit/ s。另外, PeliCAN擴展了很多新功能,包括:可讀/寫訪問的錯 誤計數(shù)器;可編程的錯誤報警限值;最近一次錯誤代碼 寄存器;具體控制位控制的位仲裁丟失;單次發(fā)送(失 敗后無重發(fā)) ;支持熱插拔等。
82C250是CAN控制器與物理總線之間的接口部 件,可完成對總線的差動發(fā)送和接收功能。82C250與 ISO /D IS 11898標(biāo)準(zhǔn)完全兼容,具有抗瞬間干擾、降低 射頻干擾、熱保護、總線與電源及地之間的短路保護等 能力,可支持多達110個節(jié)點相連。
本例中, 程序固化在EPROM 中, 80C196KC 與 SJA1000分別使用各自的外接晶振,傳感器信號經(jīng)過 采集電路處理后,接入80C196KC的A /D引腳。本系 統(tǒng)中, CAN總線通信波特率為100kbit/ s,數(shù)據(jù)采集模 塊每隔0. 5 s向網(wǎng)絡(luò)發(fā)送一次數(shù)據(jù)。
3. 2 CAN網(wǎng)橋
CAN網(wǎng)橋的結(jié)構(gòu)如圖3所示。CAN的數(shù)據(jù)幀內(nèi) 容由其頭部的11位(CAN2. 0A)或者29位(CAN2. 0B) 標(biāo)志符命名。標(biāo)志符可用于描述數(shù)據(jù)含義,每個接收 器通過對標(biāo)志符的選擇濾波確定此幀。網(wǎng)橋有2 個 CAN通信控制器背對背相接而成,每個通信控制器根 據(jù)所收到的數(shù)據(jù)幀的某2個標(biāo)志位判斷是否需要將其 向其他子網(wǎng)轉(zhuǎn)發(fā)。
3. 3 CAN - PC接口卡
PC機與CAN 網(wǎng)絡(luò)的連接卡有2 種, 即內(nèi)置式 卡———插在PC機的擴展插槽中,和外置式卡———與 PC機串口相連。當(dāng)然,目前市場上已經(jīng)可以買到此類 產(chǎn)品,不過,通常價格較高,而且,對于用戶所要搭建的 具體系統(tǒng),不一定完全適用。因此,用戶完全可以根據(jù) 自己的要求,開發(fā)自己的轉(zhuǎn)接卡部件。