CANopen閱讀筆記
4.CANopen的預定義報文和ID分類
5.對象字典OD(Object dictionary)
6.網絡管理NMT(Network management)與CANopen主站
7.過程數據對象PDO(Process data object)
8.服務數據對象SDO(Service data object)
9.特殊協(xié)議
CAN-OPEN
–NMT主機
—-過程數據對象PDO
——–TPDO(發(fā)送PDO):有四種數據對象,詳見表4-2
——–RPDO (接收RPDO):有四種數據對象,詳見表4-2
—-服務數據對象SDO
–CANopen從機
—-過程數據對象PDO
——–TPDO(發(fā)送PDO):有四種數據對象,詳見表4-2
——–RPDO (接收RPDO):有四種數據對象,詳見表4-2
—-服務數據對象SDO
——–問SDO的CAN幀的ID:600h+node-ID。這里Node-ID節(jié)點地址
——–被問節(jié)點地址Node-ID:答:SDO的CAN幀就是:580h+node-ID。詳見表4-2
【四.CANopen的預定義報文和ID分類】
4_1 報文傳輸采用 CAN 標準幀格式。即 11bit 的 ID 域,以盡量減小傳輸時間。
4_2 需要接收方確認的配置參數一般都是采用快速單字傳輸。即 1 個報文最多傳送 1
個 32 字節(jié)的參數變量,避免了分幀引起的實時性降低。
4_3 需要設置一個網絡管理主機,NMT 主機一般是 CANopen 網絡中具備監(jiān)控的 PLC 或者 PC。
網絡管理中,同一個網絡中只允許有一個主節(jié)點、一個或多個從節(jié)點,并遵循主從模式。
【STM32需要自己寫一個主機,自己寫一個從機,主機是NMT主機】
NMT 與特殊協(xié)議的 CAN-ID 定義,
關鍵是怎么定義這種結構體,我個人猜測STM32里面的庫就把這個弄好了。
讀者必須需要記住的是綠色底紋的這些常用的CAN-ID 含義,在研發(fā)和應用 CANopen 中,這三類是最為常用的 NMT 與特殊協(xié)議報文。
NMT網絡管理命令: CiA301 CAN-ID
Sync同步報文: CiA301 080h
Emergency緊急報文: CiA301 081h to 0FFh
4_4 過程數據對象(PDO)和服務數據對象(SDO)的報文ID分類
需要傳遞的配置信息和應用信息,兩個重要的對象,即:
【過程數據對象PDO(Process data object)】
【服務數據對象SDO(Service data object)】
這就是CiA301 協(xié)議所規(guī)定的基礎協(xié)議——“籮筐”。
【PDO】屬于過程數據,即單向傳輸,無需接收節(jié)點回應CAN 報文來確認,從通訊術語上來說是屬于“生產消費”模型。CAN數據幀0-8字節(jié) CAN-ID:0-2048
【SDO】(需要確認)屬于服務數據,有指定被接收節(jié)點的地址(Node-ID),并且需要指定的接收節(jié)點回應 CAN 報文來確認已經接收, 如果超時沒有確認,則發(fā)送節(jié)點將會重新發(fā)送原報文。這種通訊方式屬于常見的“服務器客戶端”的通信模型,即我們通常所說的輪詢式。
CAN-ID 稱為 COB-ID(通信對象編號):COB-ID:通訊對象的報文幀ID,即 CAN 報文的 11 位 ID。
Node-ID:節(jié)點 ID 號,即 CANopen 網絡中的節(jié)點地址。
每個CANopen節(jié)點的輸入和輸出,所以 PDO 分為 TPDO(發(fā)送 PDO)和(接收 RPDO),
發(fā)送和接收是以 CANopen 從站節(jié)點為參考(如果 CAN 主站就相反)。TPDO和 RPDO 分別有4個數據對象,每種數據對象就是 1 條 CAN 報文封裝。
CAN-OPEN
–NMT主機
—-過程數據對象PDO
——–TPDO(發(fā)送PDO):有四種數據對象,詳見表4-2
——–RPDO (接收RPDO):有四種數據對象,詳見表4-2
—-服務數據對象SDO
–CANopen從機
—-過程數據對象PDO
——–TPDO(發(fā)送PDO):有四種數據對象,詳見表4-2
——–RPDO (接收RPDO):有四種數據對象,詳見表4-2
—-服務數據對象SDO
——–問SDO的CAN幀的ID:600h+node-ID。這里Node-ID節(jié)點地址
五.對象字典OD (Object dictionary)CANopen中最核心的概念。
實質:有序的對象組
描述了對應 CANopen 節(jié)點的所有參數, 包括通訊數據的存放位置也列入其索引,這個表變成可以傳遞形式就叫做 EDS 文件(電子數據文檔Electronic Data Sheet) 。
對于 CANopen 網絡中的主節(jié)點來說,不需要對CANopen 從節(jié)點的每個對象字典項都訪問。
CANopen 對象字典中的項由一系列子協(xié)議來描述。子協(xié)議為對象字典中的每個對象都描述了它的功能、名字、索引、子索引、數據類型,以及這個對象是否必需、讀寫屬性等等。
5.1 對象字典概述 用戶需要關注的區(qū)域是兩個區(qū)域:通訊對象子協(xié)議區(qū)和制造商特定子協(xié)議區(qū)
5.2 通訊對象子協(xié)議區(qū):通用通訊對象必須有:1000h to 1029h
5.3 通用通訊對象(General communication objects)
NMT主站(CANopen 主站) 在啟動時, 通常都全部或者部分讀取所有從站中通用通訊對象中的索引, 所以所有的通用通訊對象都必須在CANopen 從站中實現,使用者也必須熟知這些索引地址與其含義。
5.4 制造商特定子協(xié)議(Manufacturer-specific Profile)
RPDO 的通訊參數存放在 1400h to 15FFh
映射參數存放在 1600h to 17FFh 數據存放為2000h 之后廠商自定義區(qū);
TPDO 的通訊參數存放在 1800h to 19FFh 映射參數存放在 1A00h to 1BFFh 數據存放為
2000h 之后廠商自定義區(qū)。
5.5標準化設備子協(xié)議(Standardized profile area)
六.網絡管理NMT(Network management)與CANopen主站
每個 CANopen 從節(jié)點的 CANopen 協(xié)議棧中,必須具備 NMT 管理的相應代碼,
這是節(jié)點具備 CANopen 協(xié)議的最基本的要素。
NMT 節(jié)點狀態(tài):