在閱讀有關CAN總線的文章時,你肯定會遇到“CANopen”這個詞,它其實是一個基于CAN 的通信系統。CANopen 在基本術語中可以定義為在CAN 總線傳輸數據時使用的通信語言。發送者和接收者對數據信息的定義需要遵循共同的標準。
與CAN 總線底層協議包含物理層和數據鏈路層相比,CANopen 則是包含網絡層、傳輸層、會話層、表示層、應用層這五個層次的高層協議。
在CAN總線上這些協議層之間都是獨立的。
在CAN總線上這些協議的功能描述如下:
盡管CAN 總線已經成功的應用在很多行業,但是為了讓它能夠應用在更多的領域,CANopen 被設計出來。最初CANopen 是為面向運動的機器控制系統設計的,如今它在各個領域都得到了應用,例如:
● 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 的內部設備結構有三個主要的邏輯部分:
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 網絡中出現錯誤情況的標志
評論
查看更多