在上一篇文章中,我們介紹了CANopen協(xié)議的基礎(chǔ)知識和核心概念,而在本篇文章中,我們將繼續(xù)講解CANopen通信基礎(chǔ)知識。本系列文章主要介紹CANopen協(xié)議的基礎(chǔ)內(nèi)容,包括對象字典、服務(wù)、SDO、PDO和主/從站節(jié)點等。如需CANopen軟硬件解決方案或培訓(xùn)服務(wù),可通過400-999-3848或support@hkaco.com聯(lián)系虹科工業(yè)控制團隊!
前文回顧:虹科干貨 | 最簡單實用的CANopen介紹,看完你就明白了(1)
1
CANopen框架
CANopen frame
為了理解CANopen通信,有必要對CANopen的CAN報文進行分解。如下圖,11位的CANID被稱為通信對象標(biāo)識符(COB-ID),它被分成兩部分。前4位相當(dāng)于功能代碼,接下來的7位包含節(jié)點ID。
為了理解COB-ID的工作原理,需要從簡單的CANopen網(wǎng)絡(luò)中如何使用標(biāo)識符的預(yù)定義分配開始。
如上圖,COB-ID(381、581等)與通信服務(wù)(傳輸PDO3、傳輸SDO等)相關(guān)聯(lián),因此,COB-ID詳細(xì)說明了哪個節(jié)點正在發(fā)送/接收數(shù)據(jù),以及使用了什么服務(wù)。如下圖的例子,一個節(jié)點ID為5的CANopen設(shè)備將通過11位的CAN ID 585傳輸SDO,這對應(yīng)于二進制功能代碼1011,節(jié)點ID 5(在二進制中為0000101)。
2
CANopen通信協(xié)議/服務(wù)
CANopen communication protocols/services
接下來,我們將簡要介紹CANopen的7種服務(wù)類型,以及它們?nèi)绾卫?個CAN幀數(shù)據(jù)字節(jié)。
1. 網(wǎng)絡(luò)管理(NMT)
NMT服務(wù)用于通過NMT命令(如:啟動、停止、復(fù)位)來控制CANopen設(shè)備的狀態(tài)(如:預(yù)運行、運行、停止)。為了改變狀態(tài),NMT主機發(fā)送一個帶有 CAN ID 0的2字節(jié)消息(即功能代碼0和節(jié)點ID 0)。所有從站節(jié)點都處理這個報文。第一個CAN數(shù)據(jù)字節(jié)包含請求的狀態(tài),而第二個CAN數(shù)據(jù)字節(jié)包含目標(biāo)節(jié)點的節(jié)點ID。節(jié)點ID 0表示廣播命令。
可能的命令包括轉(zhuǎn)換到運行(狀態(tài)01)、停止(狀態(tài)02)、預(yù)運行(狀態(tài)80)以及重置應(yīng)用程序(81)和重置通信(82)。
例如:將節(jié)點0x06設(shè)置為運行模式:000 01 06
2. 同步(SYNC)
SYNC報文用于同步幾個CANopen設(shè)備的輸入和響應(yīng)--通常由應(yīng)用主站觸發(fā)。應(yīng)用主機將SYNC消息(COB-ID 080)發(fā)送到CANopen網(wǎng)絡(luò)(帶或不帶SYNC計數(shù)器)。多個從節(jié)點可以配置為對SYNC做出反應(yīng),并通過傳輸同時捕獲的輸入數(shù)據(jù)或通過與參與同步操作的節(jié)點同時設(shè)置輸出來響應(yīng)。使用SYNC計數(shù)器可以配置幾組同步操作的設(shè)備。
3. 緊急情況(EMCY)
緊急服務(wù)用于設(shè)備出現(xiàn)致命錯誤(如傳感器故障)時,允許它向網(wǎng)絡(luò)的其他部分指示這一點。受影響的節(jié)點以高優(yōu)先級向網(wǎng)絡(luò)發(fā)送單個EMCY消息(例如,節(jié)點5的COB-ID 085)。數(shù)據(jù)字節(jié)包含有關(guān)錯誤的信息,可以查找詳細(xì)信息。
4. 時間戳(TIME) [PDO]
通過這種通信服務(wù),可以分配全球網(wǎng)絡(luò)時間。時間服務(wù)包含一個6字節(jié)的日期和時間信息。應(yīng)用主機發(fā)送 CAN ID 為100的TIME消息,其中最初的4個數(shù)據(jù)字節(jié)包含以毫秒為單位的午夜之后的時間,接下來的2個字節(jié)包含自1984年1月1日以來的天數(shù)。
5. 過程數(shù)據(jù)對象 [PDO]
PDO服務(wù)用于在設(shè)備之間傳輸實時數(shù)據(jù),例如位置等測量數(shù)據(jù)或扭矩請求等命令數(shù)據(jù)。在這方面,它類似于J1939中的廣播數(shù)據(jù)參數(shù)。關(guān)于PDO服務(wù),我們將在下一篇文章中進行詳細(xì)介紹。
6. 服務(wù)數(shù)據(jù)對象 [SDO]
SDO服務(wù)用于訪問/改變CANopen設(shè)備的對象字典中的值。例如,當(dāng)應(yīng)用主站需要改變CANopen設(shè)備的某些配置時,可以通過SDO服務(wù)來實現(xiàn)。關(guān)于SDO服務(wù),我們將在下一篇文章進行詳細(xì)介紹。
7. 節(jié)點監(jiān)控(心跳) [SDO]
心跳服務(wù)有兩個目的:提供一個“活動”的消息和確認(rèn)NMT命令。NMT從設(shè)備周期性地(例如每100毫秒)發(fā)送心跳消息(例如節(jié)點5的CANID為705),在第一個數(shù)據(jù)字節(jié)中包含節(jié)點的“狀態(tài)”。如果在特定時間限制內(nèi)沒有收到任何消息,心跳消息的“消費者”(例如 NMT 主設(shè)備和可選的任何其他設(shè)備)就會做出反應(yīng)。
例如:節(jié)點5處于預(yù)運行模式,周期性發(fā)送:705 7F
在下一篇文章中,我們將繼續(xù)講解CANopen通信的相關(guān)知識,包括對象字典、SDO、PDO等,歡迎關(guān)注本公眾號以便第一時間獲取更新的內(nèi)容。虹科在CAN、CANopen等領(lǐng)域深耕多年,有著深厚的技術(shù)實力,目前已面向國內(nèi)市場推出了CANopen開發(fā)源代碼、CANopen數(shù)據(jù)記錄儀,和支持CANopen協(xié)議的網(wǎng)關(guān)、板卡、IO等產(chǎn)品。
-
CAN
+關(guān)注
關(guān)注
57文章
2694瀏覽量
463150
發(fā)布評論請先 登錄
相關(guān)推薦
評論