CAN-bus(控制器區(qū)域網(wǎng)絡(luò))總線(xiàn)主要用于汽車(chē)內(nèi)部測(cè)量與控制中心之間的數(shù)據(jù)通信,它定義了OSI網(wǎng)絡(luò)模型的數(shù)據(jù)鏈路層和部分物理層(見(jiàn)圖1)。
由于CAN-bus良好的性能,在世界范圍內(nèi)廣泛應(yīng)用于其他領(lǐng)域當(dāng)中,如工業(yè)控制、樓宇建筑、電梯網(wǎng)絡(luò)、電力通訊和安防消防等諸多領(lǐng)域,并逐漸成為這些行業(yè)的主要通訊手段。它具有傳輸可靠、實(shí)時(shí)性高、傳輸距離遠(yuǎn)、傳輸速率快、可方便擴(kuò)充節(jié)點(diǎn)數(shù)、總線(xiàn)利用率高、數(shù)據(jù)出錯(cuò)率低,以及性?xún)r(jià)比極高等優(yōu)勢(shì)。
但是,CAN-bus2.0規(guī)范并沒(méi)有定義應(yīng)用層。實(shí)際應(yīng)用中,用戶(hù)需要選擇一個(gè)合適的應(yīng)用層協(xié)議,比如DeviceNet協(xié)議、CANopen協(xié)議,或者自行制定一個(gè)應(yīng)用層協(xié)議。本文主要介紹另一個(gè)基于連接的可靠協(xié)議:iCAN協(xié)議的應(yīng)用。
基于CAN-bus的iCAN協(xié)議
iCAN協(xié)議詳細(xì)地定義了CAN報(bào)文中ID以及數(shù)據(jù)的分配和應(yīng)用,并定義了設(shè)備的I/O資源和訪(fǎng)問(wèn)規(guī)則。iCAN協(xié)議結(jié)構(gòu)如圖2所示。
圖1:現(xiàn)場(chǎng)總線(xiàn)CAN-bus與OSI模型的關(guān)系
圖2:iCAN協(xié)議通信層結(jié)構(gòu)
1.iCAN協(xié)議的通訊模式
在任何一個(gè)iCAN的報(bào)文標(biāo)識(shí)符中,指定了源節(jié)點(diǎn)地址(發(fā)送報(bào)文的節(jié)點(diǎn)編號(hào))以及目的地址(接收?qǐng)?bào)文的節(jié)點(diǎn)編號(hào)),即對(duì)于任何一個(gè)報(bào)文參與通訊的雙方是確定的。因此iCAN協(xié)議中報(bào)文是面向節(jié)點(diǎn)的。
iCAN網(wǎng)絡(luò)中設(shè)備之間的通訊是基于連接的,在網(wǎng)絡(luò)中任何一個(gè)參與通訊的從站設(shè)備都必須和主站設(shè)備之間建立一個(gè)獨(dú)立的通訊連接。正由于iCAN網(wǎng)絡(luò)中設(shè)備之間的通訊是基于連接的,這樣也為對(duì)任何一個(gè)設(shè)備的通訊進(jìn)行監(jiān)控提供了可能。在iCAN網(wǎng)絡(luò)中,主控設(shè)備和從設(shè)備之間的通訊并不能夠隨機(jī)進(jìn)行,主控設(shè)備和從設(shè)備之間必須首先建立一個(gè)連接。建立連接后,主控設(shè)備才能夠與從設(shè)備進(jìn)行通訊。
基于iCAN協(xié)議的CAN網(wǎng)絡(luò)中,最常用的通訊方式是主從雙向通訊方式,通訊由網(wǎng)絡(luò)中的主控設(shè)備發(fā)起,接收到命令幀的設(shè)備返回響應(yīng)幀。在主從通訊分為點(diǎn)對(duì)點(diǎn)方式和廣播方式兩種情況。為提高通信效率,充分利用CAN-bus多主和無(wú)損仲裁機(jī)制,在iCAN協(xié)議中也采用事件觸發(fā)的通訊模式,包括定時(shí)循環(huán)發(fā)送和狀態(tài)觸發(fā)發(fā)送。
2.iCAN的網(wǎng)絡(luò)管理
iCAN網(wǎng)絡(luò)管理的主要任務(wù)是檢測(cè)和顯示網(wǎng)絡(luò)中的錯(cuò)誤,并通過(guò)服務(wù)以協(xié)調(diào)控制各個(gè)從站設(shè)備的通訊狀態(tài)。
為保證通訊的正常,網(wǎng)絡(luò)中的每一個(gè)通訊都需要進(jìn)行監(jiān)控,并在通訊出現(xiàn)異常時(shí),采用適當(dāng)?shù)姆绞交謴?fù)通訊。例如對(duì)每個(gè)通訊均可通過(guò)監(jiān)控其信息到達(dá)節(jié)點(diǎn)的時(shí)間,通過(guò)判斷是否超時(shí)決定通訊是否異常,并采取相應(yīng)的行動(dòng)。在iCAN網(wǎng)絡(luò)中通訊的監(jiān)控是基于對(duì)連接的監(jiān)控實(shí)現(xiàn)的。iCAN網(wǎng)絡(luò)管理可以包括節(jié)點(diǎn)控制和通訊控制,節(jié)點(diǎn)控制用于控制想要參與分布式應(yīng)用的節(jié)點(diǎn)的初始化,這樣就可以對(duì)單個(gè)或所有節(jié)點(diǎn)的通信狀態(tài)進(jìn)行同步控制。iCAN網(wǎng)絡(luò)中的節(jié)點(diǎn)控制通過(guò)定義iCAN設(shè)備的網(wǎng)絡(luò)訪(fǎng)問(wèn)狀態(tài)機(jī)制而實(shí)現(xiàn),iCAN網(wǎng)絡(luò)訪(fǎng)問(wèn)狀態(tài)機(jī)制規(guī)定了節(jié)點(diǎn)在網(wǎng)絡(luò)中啟動(dòng)時(shí)必須執(zhí)行的狀態(tài)圖,詳細(xì)規(guī)定了節(jié)點(diǎn)各狀態(tài)之間切換的規(guī)則,并可以通過(guò)特定的報(bào)文對(duì)節(jié)點(diǎn)進(jìn)行控制。
圖3:iCAN設(shè)備網(wǎng)絡(luò)初始化過(guò)程
iCAN協(xié)議的通訊控制用于對(duì)網(wǎng)絡(luò)通訊報(bào)文進(jìn)行監(jiān)控,保證在通訊異常時(shí),通過(guò)適當(dāng)?shù)姆绞侥軌蚧謴?fù)通訊。通訊的控制是以主站設(shè)備和從站設(shè)備之間的通訊時(shí)間間隔作為依據(jù)的。因此在iCAN網(wǎng)絡(luò)中,通訊是否異常是通過(guò)“超時(shí)機(jī)制”判斷的。為實(shí)現(xiàn)通訊控制,在iCAN協(xié)議中定義了MACID檢測(cè)定時(shí)器、連接定時(shí)器、循環(huán)傳送定時(shí)器。
在MACID檢測(cè)中會(huì)使用到一個(gè)固定時(shí)間長(zhǎng)度的MACID檢測(cè)定時(shí)器,通常設(shè)定為1秒。iCAN設(shè)備在成功發(fā)送MACID檢測(cè)報(bào)文后,會(huì)啟動(dòng)MAC ID檢測(cè)定時(shí)器,如果定時(shí)器計(jì)時(shí)到達(dá)1秒時(shí),設(shè)備還沒(méi)有接收到MAC ID檢測(cè)報(bào)文,則進(jìn)入可操作狀態(tài)。
在一個(gè)連接中,通過(guò)連接定時(shí)器實(shí)現(xiàn)連接通訊響應(yīng)的超時(shí)機(jī)制。該連接定時(shí)器通過(guò)主站通訊定時(shí)參數(shù)進(jìn)行設(shè)定,如果在通訊過(guò)程中,連接定時(shí)器計(jì)數(shù)滿(mǎn)則意味通訊超時(shí),此時(shí)從站設(shè)備會(huì)自動(dòng)刪除連接。
循環(huán)傳送定時(shí)器用于觸發(fā)傳送。在一個(gè)連接中當(dāng)循環(huán)傳送定時(shí)器超時(shí)后,從站設(shè)備發(fā)送報(bào)文。循環(huán)傳送定時(shí)器通過(guò)定時(shí)循環(huán)參數(shù)進(jìn)行設(shè)定。當(dāng)連接建立時(shí),并設(shè)置了循環(huán)定時(shí)參數(shù)后,從站設(shè)備的循環(huán)傳送定時(shí)器被激活。當(dāng)從站設(shè)備的循環(huán)傳送定時(shí)器超時(shí)后,主動(dòng)發(fā)送報(bào)文到主控節(jié)點(diǎn)。
iCAN在ADSL通信電桿檢測(cè)中的應(yīng)用
ADSL通信電桿的檢測(cè),包括傾斜角度、電纜盜竊等是通過(guò)工作人員到現(xiàn)場(chǎng)檢測(cè)的方法逐個(gè)記錄,且其分布散、數(shù)量大,所以費(fèi)時(shí)費(fèi)力。建立一個(gè)分布式的采集網(wǎng)絡(luò),當(dāng)通信電桿的傾斜達(dá)到一定角度時(shí)自動(dòng)產(chǎn)生一個(gè)報(bào)警信號(hào)并通知主控PC,或檢測(cè)到有人在爬桿竊取電纜時(shí)產(chǎn)生一個(gè)報(bào)警信號(hào)并通知主控PC,并支持現(xiàn)場(chǎng)報(bào)警,這是實(shí)現(xiàn)ADSL通信電桿自動(dòng)監(jiān)控的有效方法。
ADSL每隔3000m~5000m有一個(gè)中繼局,中繼局中有互聯(lián)網(wǎng)網(wǎng)絡(luò)接口,通過(guò)ADSL可直接上互聯(lián)網(wǎng)。中繼局之間每隔20m~30m架設(shè)一個(gè)通信電桿,每個(gè)中繼局之間大概有150個(gè)通信電桿。
網(wǎng)絡(luò)拓?fù)?/strong>
ADSL通信電桿檢測(cè)網(wǎng)絡(luò)可采用CAN-bus和以太網(wǎng)構(gòu)成的兩級(jí)結(jié)構(gòu),每個(gè)通信電桿上都有集成iCAN協(xié)議的8路開(kāi)關(guān)量檢測(cè)AnyCAN模塊。將兩個(gè)中繼局之間的所有AnyCAN模塊和CANET-100/200都連接到CAN總線(xiàn)上,并在總線(xiàn)的兩端串接120歐姆的終端匹配電阻,CANET-100/200的以太網(wǎng)接口在ADSL中繼局中連入互聯(lián)網(wǎng)。
ADSL總監(jiān)控站的主控PC可以通過(guò)一系列固定IP地址,訪(fǎng)問(wèn)多個(gè)ADSL中繼局的CANET-100/200設(shè)備。設(shè)備使用不同的端口號(hào)區(qū)分不同的iCAN網(wǎng)絡(luò)。由于CANET-100/200設(shè)備的以太網(wǎng)速率可達(dá)10Mbps,而CAN-bus工作在10Kbps的通訊速率,主控PC可連接多個(gè)iCAN網(wǎng)絡(luò),同時(shí)需要注意iCAN網(wǎng)絡(luò)的通訊數(shù)據(jù)流量管理。
網(wǎng)絡(luò)參數(shù)和性能分析
ADSL通信電桿檢測(cè)網(wǎng)絡(luò)不需要實(shí)時(shí)響應(yīng)。單個(gè)iCAN網(wǎng)絡(luò)長(zhǎng)達(dá)5000m,選用10Kpbs通信波特率,采用2mm2的非屏蔽雙絞線(xiàn)作為通信電纜,所有節(jié)點(diǎn)設(shè)定在輪循方式下工作。可設(shè)置主站通訊定時(shí)參數(shù)(CyclicMaster)為0,從站設(shè)備的連接定時(shí)器不裝載,不存在超時(shí)判斷,建立連接后可隨時(shí)進(jìn)行通訊。輪循時(shí)iCAN幀的數(shù)據(jù)長(zhǎng)度為2個(gè)字節(jié),對(duì)應(yīng)的iCAN報(bào)文長(zhǎng)度為83個(gè)位(忽略位填充時(shí)間),所以iCAN網(wǎng)絡(luò)輪循一周的時(shí)間為:
83位 * 0.1ms * 2 * 150節(jié)點(diǎn) / 1000 = 2.49 s
要使網(wǎng)絡(luò)可靠工作,應(yīng)保證網(wǎng)絡(luò)工作在60%的總線(xiàn)負(fù)載率下,控制iCAN網(wǎng)絡(luò)輪循時(shí)間為:
2.49s / 60% = 4.15s
因?yàn)榛ヂ?lián)網(wǎng)網(wǎng)絡(luò)環(huán)境復(fù)雜,PC軟件必須保證數(shù)據(jù)的可靠性,PC軟件為每個(gè)IP端口組合分配一個(gè)定時(shí)器并設(shè)定初值。當(dāng)發(fā)出一個(gè)報(bào)文時(shí),啟動(dòng)定時(shí)器,當(dāng)收到報(bào)文后,復(fù)位定時(shí)器并停止計(jì)時(shí)。如定時(shí)器超時(shí),說(shuō)明在規(guī)定的時(shí)間內(nèi)沒(méi)有收到應(yīng)答報(bào)文,查詢(xún)報(bào)文或應(yīng)答報(bào)文可能在互聯(lián)網(wǎng)通訊的時(shí)候丟失。此時(shí),PC軟件自動(dòng)重發(fā)查詢(xún)報(bào)文,重新啟動(dòng)定時(shí)器。
主站軟件的編寫(xiě)
CANET-100/200設(shè)備提供有iCAN協(xié)議API驅(qū)動(dòng)函數(shù),支持VC++、VB、Delphi、C++ Builder、LabView等軟件開(kāi)發(fā)環(huán)境。PC軟件開(kāi)發(fā)的主要流程如下圖4所示。
圖4:PC軟件開(kāi)發(fā)的主要流程
通過(guò)使用ZOPC-Server服務(wù)器軟件,可以在工業(yè)標(biāo)準(zhǔn)的組態(tài)環(huán)境中開(kāi)發(fā)ADSL通信電桿檢測(cè)網(wǎng)絡(luò)的PC監(jiān)控軟件。常用的組態(tài)環(huán)境都支持OPC協(xié)議,比如組態(tài)王KingView、昆侖通態(tài)MCGS、三維力控,國(guó)外的如Intouch、iFix等。由于ZOPC-Server服務(wù)器軟件在內(nèi)部已有超時(shí)和重發(fā)機(jī)制,可以保證CANET-100/200設(shè)備管理iCAN網(wǎng)絡(luò)的實(shí)時(shí)性與可靠性。
本文小結(jié)
ADSL通信電桿分散度大、距離遠(yuǎn)的特點(diǎn)使得CAN網(wǎng)絡(luò)是其最好的解決方案。iCAN協(xié)議的高可靠性和易使用性可以快速建立一個(gè)可靠的CAN網(wǎng)絡(luò)。我國(guó)ADSL電桿架設(shè)數(shù)量巨大,采用網(wǎng)絡(luò)化的數(shù)據(jù)采集控制將大大降低人力投入并提高ADSL服務(wù)質(zhì)量。