CANopen協議基礎知識

前言

CANopen 是一種基於 CAN 的通訊協議,用於自動化工程中用於複雜設備結構的聯網。CANopen 是 CAN 的進一步發展,由 BOSCH 推出,用於減少汽車製造中的電纜。由於CANopen由德國中小企業發起並得到 BOSCH 的支持,CANopen最初從德國傳播到歐洲。到現在為止,CANopen 也已經擴展到了北美和亞洲。自 1995 年以來,CANopen 由用戶和製造商組織 CAN in Automation (CIA) 維護,並自 2002 年起標準化為歐洲標準 EN 50325-4。

為此,KUNBUS GmbH 提供各種形式和不同接口變體的產品。

在一個產品系列中,可以交換不同的現場總線協議。統一的引腳輸出允許將 IC 模塊用作選項卡。

CANopen協議基礎:

CANopen 基於 CAN(控制器局域網),代表了一種主要用於自動化技術的通訊協議。CANopen 結合了幾個基本服務,也稱為服務原語。

基本服務包含如下:

  • IIndication(通知應用程序存在消息/結果)
  • 響應(應用程序響應指示)
  • 確認(當執行 CANopen 服務時,向應用程序發送確認)

CANopen 使用以下通訊對象:

  • (SDO) 用於對象字典條目參數化的服務數據對象
  • (PDO) 用於實時數據傳輸的過程數據對象
  • (NMT) 用於狀態機控制和節點監控的網路管理對象
  • (SYNC) 同步對象
  • (EMCY) 時間戳和錯誤消息

CANopen 對象字典

所有用戶和通訊對象都在 CANopen 對象字典中註冊。CANopen 對象字典也稱為連接應用程式和通訊單元的鏈接。各個條目以 16 位索引為特徵,每個條目代表一個對象。一個索引可以包含最大值。256個子索引,總共可以識別65536 x 254個元素。無法免費使用子指數 0 和 255。如上所述,CANopen 對象字典形成了一個對外的接口,它被明確定義為設備配置文件以及借助索引的通訊對象。此外,CANopen 的每個通訊對象在網路中都有一個唯一的通訊對象標識符 = COB-ID。32 位 COB-ID 的前兩位具有特定於對象的含義。有了這個,11 位 CAN 網路中的第 29 至 11 位被賦予值 0,而第 10 至 0 位等於 CAN 標識符。服務數據對象提供相應的服務,以便可以在 CANopen 中訪問對象庫。因此,每個 CANopen 設備必須至少有一個 SDO 服務器可用。該服務器接管了接受和處理 SDO 請求的工作。此處,消息使用節點號 + 1536 或相應的每個預設設置的 CAN 標識符作為 COB-ID。然後將節點號 + 1408 用於答案。因此,具有低優先級的 ID 用於傳輸對象庫中的條目。SDO傳輸需要一個4字節的協議,以便對索引、子索引和傳輸方向進行編碼。由於 CANopen 數據字段只有 8 個字節可用,數據內容只有4個字節可供免費使用。因此,大於 4 字節並通過 SDO 傳輸進行通訊的數據量必須依靠另外兩種協議。

CANopen 中具有較高優先級的標識符

為了保證過程數據在CANopen網路中能夠快速傳輸,帶有COB-ID的標識符預設設置在385到1407的範圍內。這裡總共有 8 個字節可用。PDO 映射條目確定有效負載數據的內容,它們是對象庫中的對象。結合 PDO,還可以傳輸具有多個值的對象,然後接收器只能使用部分數據。PDO 的傳輸發生在循環或同步級別,其中 PDO 的接收導致映射條目寫入對象庫中的其他對象。

CANopen – 獨立於製造商

CANopen 網路的統一設備配置文件還支持獨立於製造商的應用程序。為此,定義了設備配置文件,例如目的 401 = 輸入/輸出模塊。對像庫通過設備配置文件確保對相應設備的功能和結構進行準確定義。CANopen 安裝: CANopen 網路在開始和結束時的接線均採用具有 120 歐姆電阻的總線拓撲結構。因此,必須小心避免存根線。當通過 CAN-H 和 CAN-L 訊號進行數據傳輸時,GND 作為數據參考電位,雙絞線電纜(阻抗:120 歐姆,電阻 70 毫歐/米)被引出。也可以選擇使用 24 V 電源。按照慣例,一個 9 針 D-sub 插頭用於將各個參與者連接到 CANopen 網路。可調傳輸速度介於 10 kbps 和 1 Mbps 之間,其中最大值。127 個參與者可以連接到 CANopen 網路。

《產品連結》

CANopen 協議開發包

CANopen 網關閘道器

聯繫我們