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