歡迎您光臨本站 登入註冊首頁

概述

   CAN匯流排以其成本低廉、通信實時性好、糾錯能力強等優點而被汽車工業、電力系統變電站自動化、智能大廈等系統廣泛採用。作為一種通信協議,CAN本身並未指出流量控制、節……

    CAN匯流排以其成本低廉、通信實時性好、糾錯能力強等優點而被汽車工業、電力系統變電站自動化、智能大廈等系統廣泛採用。作為一種通信協議,CAN本身並未指出流量控制、節點地址分配、通信建立、設備連接標準等具體的細則。後來在CAN匯流排協議的基礎上,產生了DeviceNET和CANopen協議標準。

1 CANopen簡介
1.1 CANopen由來
    1993年,Bosch公司領導的CAN-BUS協會開始研究CAN-BUS通訊、系統、管理方面的細則,以後逐步完善,由此發展成為CANopen協議,它是CAL(CAN Application Layer)協議基礎上開發的,使用了CAL通信和服務協議子集,它在保證網路節點互用性的同時允許節點的功能隨意
擴展,定義了基於CAN的分散式工業自動化系統的應用標準以及CAN應用層通信標準。CANopen協議是一個開放性的協議,對於開發者來說它是完全免費的。CANopen在發布后不久就獲得了廣泛的承認,後來,有CiA(CAN in Automation)協會管理、維護、和發展。到2001年,CANopen協議已經成為全歐洲的嵌入式網路標準。

1.2 CANopen協議剖析
1.2.1 網路模型
    CANopen協議的物理層和數據鏈路層延用了CAL(CAN Application Layer)協議標準,一個網段上最多支持127個節點,採用CAN 收發器晶元,支持CAN2.0和CAN2.0B幀格式收發。並在CiA DS303-1指出了電纜和接點標準,在CiA DS-304中指出了接點保護的規範,即匯流排要有安全開關、光電隔離、緊急開關、電源保護等。CANopen把CAN的11位標識符分成2部分,及4位功能碼和7個操作數據類型,如圖1所示。具體分配如表1所示。
 
圖1 canopen COB-ID

表1 CANopen標識符的分配表
功能段 地址段
0000 NMT 系統管理
0001 SYNC同步標記
0011 PD0(tx)過程數據對象發送包
0100 PD0(rx)過程數據對象接收包
1011 SDO(tx)服務數據的發送包
1100 SD0(rx)服務數據的接收包

    如果是29位的標識符機制,可以把現有的11標識符的定義映射到29位的COB-ID的高11位,使表中的C0B-ID的範圍變的更大。
1.2.2 報文格式
    CANopen通信模型定義4種報文:

  • 管理報文 主要網路管理和ID分配服務,如初始化,配置和網路管理(包括:節點保護)。
  • 服務數據對象(Service Data Object,SDO) 通過使用索引和子索引(在CAN報文的前幾個位元組),SDO使客戶機能夠訪問設備(伺服器)對象字典中的項(對象)。SDO通過CAL中多元域的CMS對象實現,允許傳送任何長度的數據(當數據超過4個位元組時分拆成幾個報文)。
  • 過程數據對象(Process Data Object,PDO) 用來傳輸實時數據,數據從一個生產者傳到一個或多個消費者。數據傳送限制在1~8個位元組。
  • 預定義和特殊功能對象 包括同步(SYNC)、時間標記對象(Time Stamp)、緊急事件(Emergency)、節點/壽命保護(Node/Life guarding)、Boot-UP過程對象。

    其中PDO是實時性要求最高的也是最重要的的數據,它有同步和非同步觸發2種模式。
1.2.3 通信機理
    CANopen的核心概念是設備對象字典(Object Dictionary,OD),它是一個有序的對象組;每個對象採用一個16位的索引值來定址,為了允許訪問數據結構中的單個元素,同時定義了一個8位的子索引,CANopen網路中每個節點都有一個對象字典。對象字典包含了描述這個設備和它的網路行為的所有參數。一個節點的對象字典是在電子數據文檔(Electronic Data Sheet,EDS)中描述或者記錄在紙上。CANopen由一系列稱為子協議構成。如通信子協議DS-301,還有各種設備子協議(device profile),如DS-404(感測器和調節器),DS-405(可編程式控制制器)等。通信機理的核心如圖2所示。
 
圖2 CANopen設備的通信過程
1.2.4 應用中要注意的一些問題
(1)在開發過程中不必要將CANopen協議中的各項內容都一一編寫,只要根據應用的具體要求按照CANopen協議編寫即可。對象字典都要通過軟體實現,這是實現CANopen的關鍵。
(2)組建對象字典時並沒有必要把協議規定的所有項都包括進去,另外還要留出足夠的空間,使得用戶可以根據以後的具體需要向對象字典中添加功能項。
(3)一般應用中,如果CANopen網路不複雜,使用預定義的標識符分配就能滿足要求。對於特別大的系統,如果要制定標識符分配,這需要大量的軟體編程。
(4)對於CANopen網路中必須實現的管理功能,一般由一個節點來實現,但也可以由幾個節點分別承擔。尤其對於SYNC報文傳輸和標識符的分配,分開來實現會更好。

2 DeviceNET簡介
2.1 DeviceNET由來及OSI/SIO參考模型
    DeviceNET協議最初有美國的Rockwell自動化公司開發應用。目前有ODVA(Open DeviceNET Vendor Association)組織管理和推廣。它是一個開放式的協議,只要付出象徵性的資金獲得ODVA的一個許可號碼,就可以得到協議的詳細內容。DeviceNET屬於CIP(Control and Information Protoco1)網路的範疇,CIP網路有下列特點:
(1)報文的傳輸類型有I/O、互索、配置、程序上下載等;
(2)它是一個面向連接的協議,必須要先建立,才能通信;
(3)採用生產者/消費者模型;
(4)可以支持主從,多主,對等,或者三種模式的任意組合;
(5)面向對象編程等特點。
    DeviceNET以CIP協議為基礎,沿用了CAN 協議標準所規定的ISO參考模型中物理層和數據鏈路層的一部分,並補充了不同的報文的傳送格式,匯流排訪問仲裁規則及故障檢測和隔離的發法。DeviceNET增加了傳輸介質的協議規範,每個網段最大隻允許有64個節點,採用幹線支線進行網路拓撲;5線制匯流排結構(2信號線,2電源線,1屏蔽線),匯流排支持125/250/500 kb/s三種波特率,最大傳輸距離為500 m,DeviceNET使用5線制,可以對網路上的節點進行匯流排供電。又由於它採用5線制,在實際的應用中接錯的可能性更大,所以要求節點能夠承受由於任意的5條線誤接而產生的電壓。所以在這個原因下,要求在實際的應用中的收發器一定要符合DeviceNET規範的規約中,僅要求收發器能承受2條信號線的誤接線產生的電壓。DeviceNET要有節點的接地和隔離,即任一設備必須要有隔離柵,以及節點的誤接線保護電路。

2.2 標識符分配
    DeviceNET中,每一個連接有一個11位的連接標識符(Connection ID,CID)來標識,將CID分成優先順序不同的4組報文,如圖3所示。組一報文優先順序最高,通常用來發送設備的I/O報文,報文組四優先順序最低,用於設備離線時的通信。
 

2.3 DeviceNET報文
    I/O報文用來傳送實時性,準確性高的數據。而且支持多種觸發方式,如位選通(bit strobe)、輪詢(poll)、狀態改變(change of state)和循環(cyclic)等。
    顯式報文 用來傳送實時性要求低的對象,如上下載程序、修改設備組態、記載數據日誌等。

2.4 對象模型
    DeviceNET的每個節點被模型化為對象的集合,主要包括連接對象、對象實例、標識對象、參數對象等。它是一個面向對象的連接,可以用VC++類對象編程。通信核心是;根據數據的優先順序分配成哪類報文組CID,根據節點對象模型引用和配置參數,初始化網路。

3 主要區別
3.1 傳輸距離
     CANopen網路可實現遠距離傳輸(≤10 km),工作速率可調(1 Mb/s≥ 通訊速率≥ 5 kb/s),因此,在實際應用中,要考慮到傳輸距離的限制而選擇匯流排協議。如果用devicenet進行遠距離傳輸,要使用網路中繼器,現在市場上已經有很多這兩種匯流排系統的中繼器產品.

3.2 標識符分配
    CANopen支持CAN2.0 A11位和CAN2.0 B29位標識符,而且報文的優先順序只能通過它的大小來區分,通常節點地址比較小的COB-ID報文的優先順序最高。如果要傳送需要快速響應的事件,則要通過預定義和特殊功能對象,如同步(SYNC),時間標記對象(time stamp),緊急事件(emergency),PDO 用來傳輸實時數據,優先順序大於SDO,因為SDO的數據量大,通常用於設備初始化組態。而DeviceNET只用了CAN2.0 A的11位標識符去分組定義報文的優先順序,這種信息組設計方法使匯流排優先順序可任意分佈,而不僅和節點地址有關。還取決與它是I/O還是顯示報文,報文的組號等。雖然CANopen和DeviceNET的標識符分配機制不同,但都可以很方便的定義報文的優先順序。

3.3 初始化組態不同
 

3.4 軟體開發流程不同

3.5 應用領域
    CANopen不僅可以用在遠距離的通信系統中,還可以用在像咖啡機、電子直線加速器、大型超市自動化、安全系統、注壓機等系統中。DeviceNET比較適合應用在感測器設備、微型執行器設備等設備上。

4 結語
    本文通過對兩種非常流行的現場匯流排協議的比較,清楚地說明了它們的不同之處,兩者的技術有時可以互相借鑒,在具體的工業應用中,要綜合考慮它們的價格,接線保護,通信長度,開發時間,通信機制等的不同,選擇最適合的現場匯流排。
    CAN匯流排在各個領域有著很好的應用前景,CANopen和DeviceNET是一種國際上公開的應用層匯流排協議,它們和CAN協議構成一個完整的網路協議,它可以使開發商生產的設備具有很好兼容性。DeviceNET的技術以及應用在國內外已經趨於成熟,CANopen協議在歐洲已經非常流行,但國內應用的還不多,有待進一步研究。


[admin via 研發互助社區 ] 基於CAN的高層協議CANopen與DeviceNET的比較已經有10975次圍觀

http://cocdig.com/docs/show-post-44778.html