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