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