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