CANOpen學習筆記(一)

2021-09-25 03:51:00 字數 3643 閱讀 1132

canopen官方介紹

學習canopen協議主要需要了解五大部分:物件字典,pdo, sdo, nmt,特殊協議。同時需要了解cob-id的概念:在sdo和pdo中cob-id前四位代表功能碼,後7位是node-id.

功能碼例如:600h表示問,580h表示答

物件字典是乙個描述了節點所有引數的有序列表,每個物件都有個索引每個索引內具體的引數,最大用 32 位的變數來表示。物件字典主要資料分布如下:

通訊物件子協議區

製造商特定子協議區

標準化裝置子協議區

1000h to 1fffh

2000h to 5fffh

6000h to 9fffh

通訊物件子協議區:

通用通訊物件

sdo 引數物件

安全物件

pdo 引數物件

sdo 管理物件

配置管理物件

程式控制物件

網路管理主機物件

1000h to 1029h

1200h to 12ffh

1300h to 13ffh

1400h to 1bffh

1f00h to 1f11h

1f20h to 1f27h

1f50h to 1f54h

1f80h to 1f89h

製造商特定子協議:

各個廠商不盡相同,例如:

rpdo通訊引數

rpdo對映引數

tpdo通訊引數

tpdo對映引數

1400h to 15ffh

1600h to 17ffh

1800h to 19ffh

1a00h to 1bffh

1.nmt節點狀態

nmt全稱network management,節點上電後後又6種狀態,其中有5個分別為狀態nmt可以控制分別為應用層復位、通訊復位、預操作狀態、操作狀態、停止狀態,不能控制初始化狀態

初始化應用層復位

通訊復位

預操作狀態

操作狀態

停止狀態

節點上電,can控制器初始化

應用程式復位(開始)

開始通訊

禁止pdo,可配置nmt,sdo

收到主機啟動命令後通訊啟用

通訊停止,但可以sdo,nmt

123,64,75,89,10,1112,13,1415

上電自動切換到預操作狀態

網路管理切換到操作狀態

網路管理切換到預操作狀態

網路管理切換到停止狀態

網路管理切換到應用層復位狀態

掉電或者硬體復位

2.nmt節點上線報文

從站上線必須發出的節點上線報文(boot-up), 資料為 1 個位元組 0

3.nmt節點狀態與心跳報文

從站按一定的星跳生產時間向主機傳送心跳報文,以便主站確認從站是否故障。心跳報文格式:canid與節點上線報文相同為 700h+node-id,資料為 1 個位元組,代表節點目前的狀態, 04h為停止狀態, 05h為操作狀態, 7fh為預操作狀態

4.nmt節點守護

除了心跳報文還可以通過輪詢模式監視從站狀態。該模式逐漸被淘汰所以不詳述

5.nmt節點狀態切換命令

狀態切換命令報文的canid為000h,最高優先順序

第一位元組:

01h02h80h81h82h

啟動停止

進入預操作

復位節點應用層

復位節點通訊

第二位元組:

第二位元組為node-id,若為0則是控制所有節點

pdo是屬於過程資料,是單向的,是為了提高通訊效率而規定的。資料長度不超過8位元組。pdo也分為rpdo,tpdo

1.pdo的傳輸形式

2.pdo的通訊引數

通訊引數存放在物件字典中。

3.pdo的對映引數對映引數代表pdo通訊想要讀寫的物件字典的索引和子索引,位元組數。

sdo不同於pdo,他是服務確認型別,每個訊息都會有乙個應答。傳輸資料長度不限。

1.sdo通訊原則

傳送報文can-id:600h + 接受node-id,回應報文can-id:580h + 接受node-id,資料長度均為8位元組,不存在的補0.

2.快速sdo協議

快速sdo讀寫的值不能超過32位,命令中有索引,子索引,和資料。

**於《canopen輕鬆入門》

3.普通 sdo 協議當傳輸資料超過32位時,需要普通sdo分幀傳輸。

上傳協議,**於《canopen輕鬆入門》

為了方便 canopen 主站對從站管理。在 canopen 協議中,已經為特殊的功能預定義了 cob-id,其主要有以下幾種特殊報文。

1.同步協議

同步報文由nmt主機發出以實現整個網路的同步傳輸(例如觸發pdo傳輸),同步報文的can-id為80h,資料為0位元組

1007h

同步視窗時間同步幀傳送後pdo響應的有效時間

1006h通訊迴圈週期同步幀的迴圈週期

2.時間戳協議

為實現時間同步,nmt主機傳送時間戳。can-id是100h,資料六個位元組,表示當前時刻與2023年1月1日時的時間差

3.緊急報文協議

從機向主機傳送內部錯誤**, can-id儲存在 1014h的索引中, 一般會定義為 080h +node-id, 資料報含 8 個位元組

CANopen協議學習筆記一

最近在學習canopen協議,遇到一些小知識點,查閱後作為補充,記錄在此,方便以後查詢,算是讀書筆記吧。一 canopen協議中sync功能和使用 在canopen網路中應用sync要注意以下幾點 1.sync並不是主節點必須的功能,不一定要和nmt放在同一節點上,實際網路應用中可以在網路中找乙個任...

CANopen的相關學習

由於can匯流排只定義了物理層和資料鏈路層,並沒有定義應用層,因此需要canopen通訊協議來統一度量,把各種裝置標準化。canopen 實現了osi模型中的網路層以上 包括網路層 的協定。標準的 canopen 頁框 canopen 將 canbus 的 11 位元 id 稱為通訊物件 id co...

學習筆記一

lisp 最重要的一種執行模式之一 repl that endless cycle of reading,evaluating,and printing is why it s called the read eval print loop or repl.第乙個lisp程式 在repl模式下執行l...