在閱讀有關CAN總線的文章時,你肯定會遇到“CANopen”這個詞,它其實是一個基于CAN 的通信系統。CANopen 在基本術語中可以定義為在CAN 總線傳輸數據時使用的通信語言。發送者和接收者對數據信息的定義需要遵循共同的標準。
與CAN 總線底層協議包含物理層和數據鏈路層相比,CANopen 則是包含網絡層、傳輸層、會話層、表示層、應用層這五個層次的高層協議。
在CAN總線上這些協議層之間都是獨立的。
在CAN總線上這些協議的功能描述如下:
分層定義 | 功能 |
網絡層 | 路由和尋址 |
傳輸層 | 可靠的端到端傳輸 |
會話層 | 同步 |
表示層 | 編碼與表示 |
應用層 | 描述如何配置、傳輸和同步 |
CANopen設備 |
盡管CAN 總線已經成功的應用在很多行業,但是為了讓它能夠應用在更多的領域,CANopen 被設計出來。最初CANopen 是為面向運動的機器控制系統設計的,如今它在各個領域都得到了應用,例如:
Robotics(機器人)
Medical equipment(醫療設備)
Stepper and servo motors(步進電機和伺服電機)
Food processing(食品加工)
Automation(自動化)
Off-road vehicles(非公路車輛)
Railway application(鐵路應用)
Building automation(建筑自動化)
Mechanical manufacturing(機械制造)
Security monitoring(安防)
CANopen 使設計人員能夠執行各種功能,使CAN 總線更適合于嵌入式網絡應用,如車內網絡。它提供了高度靈活的配置功能。使用CAN-open,能夠做到:
實現設備網絡行為
影響和控制網絡行為
溝通和處理數據
設備內部故障提示
設備能夠點對點通信
定義內部設備結構
允許數據速率在10kbps-1000kbps 間調整
CANopen 的內部設備結構有三個主要的邏輯部分:
協議棧 | ●通過CAN n/w處理通信 |
應用軟件 |
●支持內部控制功能 ●為硬件提供接口 |
對象字典 |
●CANopen設備的配置和診斷是最重要的 ●接口協議以及應用軟件 ●涵蓋所有的使用數據類型 ●存儲所有的交流參數和申請參數 |
CANopen 消息幀格式: CANopen 的消息幀格式和CAN總線的相似。它包含了的COB-ID 和控制位,為了避免和CAN 總線的COB-ID 沖突,所有的COB-ID 均不相同。
CANopen 協議:
一個CANopen協議棧實現幾個CANopen COB與對應速率的CANopen 通信。CANopen 協議由以下部分組成:
數據對象服務協議(SDO)
SDO服務使CANopen節點能夠通過CAN網絡讀取、編輯、更改或訪問另一節點對象字典的值
這是一種確認的通信服務,由兩個具有不同CAN標識符的CAN數據幀組成
在以CAN為傳播媒介上建立兩個CANopen設備之間的對等“客戶端-服務器”的通信Server(服務端): 訪問對象字典的所有者Client(客戶端): 訪問對象字典并啟動與專用SDO“服務器”通信的設備
盡管SDO 非常靈活,但OVERHEAD 的存在使其不太適合實時數據操作。為了解決這個問題,使用了進程數據對象協議。
進程數據對象協議(PDO)
PDO 通常被視為一個重要的CANopen 協議,因為它承載了大量的信息
CANopen 使用進程數據對象(PDO)跨CANopen 節點在實時操作數據中傳播高優先級控制和狀態信息
PDO 由單個CAN 幀組成,可在單個幀內僅傳送多達8字節的應用程序數據,其中包含多個對象參數值Producer(生產者): 它產生要傳輸到主機的數據Consumer(消費者):這里的主機就是消費者。它從生產者那里接收數據
網絡管理協議(NMT)
NMT 服務定義CANopen 設備的通信方式。在接收到NMT 協議時,CANopen 設備被迫轉換到命令的NMT 狀態。NMT 狀態機包括:
初始化狀態(設備在通電或復位后進入初始化狀態)
預運行狀態
運行狀態
停止狀態
NMT 協議發送單個CAN 幀,數據長度為2字節,CAN ID為0。它包含命令標識符/功能代碼(第一位),它代表請求狀態,對于NMT,如果將其設置為顯性狀態0,則所有節點都必須執行該命令。節點ID——作為指定的名字,包含需要遵守狀態轉換命令的模塊ID。
在NMT中,模塊需要使用SDO協議操作,因為PDO僅在操作狀態下才可運作。
特殊功能協議
為了產生特定的網絡行為,CANopen提供了三種特定的協議:
Synchronisation Protocol(同步協議):該協議允許同步多個設備。同步生成器或應用程序主機定期傳輸同步協議。根據預定義的連接設置,同步消息映射到單個CAN 幀,COB ID 為80h。(它不攜帶數據(DLC=0))
Emergency Protocol(應急協議):任何內部設備錯誤都會觸發應急協議。在這種情況下,緊急消息由故障設備發送。每個錯誤事件只傳輸一次。故障設備使用將CAN標識符COB ID 80h+(節點ID)分配給緊急消息的功能。如果CAN總線上的設備沒有新的錯誤,則不會繼續傳輸此類消息
Time-stamp protocol(時間戳協議):允許CANopen系統的用戶調整特定的網絡時間,該時間戳映射到一個CAN幀,該幀具有6字節的數據。這6個字節中最初的4個字節代表“一天之中的時間”信息,4個字節存儲的都為毫秒信息,接下來的2個字節則為1984年1月1日0點這個數據信息。默認情況下,關聯的CAN幀預設值為CAN標識符100h。
錯誤控制協議:監聽CANopen 網絡
Heartbeat Protocol(防斷連協議):防斷連協議驗證其可用性及NMT 有限狀態自動化(FSA)。對于CANopen 中的所有網絡。防斷連信號循環傳輸,以確認防斷連發生器的可用性。
Boot up protocol(啟動協議):這表示一種獨特類型的錯誤控制協議。在進入NMT FSA 預運行狀態之前,它將作為NMT FSA 狀態初始化中的最終操作進行傳輸。接收到此消息表示
新設備已注冊到CANopen 網絡
更改網絡設置(當有新設備添加到CANopen 時)
它可以被認為是CANopen 網絡中出現錯誤情況的標志
審核編輯:湯梓紅
-
CAN總線
+關注
關注
145文章
1951瀏覽量
130777 -
通信系統
+關注
關注
6文章
1193瀏覽量
53350 -
CANopen
+關注
關注
8文章
256瀏覽量
43596
發布評論請先 登錄
相關推薦
評論