在閱讀有關(guān)CAN總線的文章時(shí),你肯定會(huì)遇到“CANopen”這個(gè)詞,它其實(shí)是一個(gè)基于CAN 的通信系統(tǒng)。CANopen 在基本術(shù)語中可以定義為在CAN 總線傳輸數(shù)據(jù)時(shí)使用的通信語言。發(fā)送者和接收者對(duì)數(shù)據(jù)信息的定義需要遵循共同的標(biāo)準(zhǔn)。
與CAN 總線底層協(xié)議包含物理層和數(shù)據(jù)鏈路層相比,CANopen 則是包含網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層、應(yīng)用層這五個(gè)層次的高層協(xié)議。
在CAN總線上這些協(xié)議層之間都是獨(dú)立的。
在CAN總線上這些協(xié)議的功能描述如下:
分層定義 | 功能 |
網(wǎng)絡(luò)層 | 路由和尋址 |
傳輸層 | 可靠的端到端傳輸 |
會(huì)話層 | 同步 |
表示層 | 編碼與表示 |
應(yīng)用層 | 描述如何配置、傳輸和同步 |
CANopen設(shè)備 |
盡管CAN 總線已經(jīng)成功的應(yīng)用在很多行業(yè),但是為了讓它能夠應(yīng)用在更多的領(lǐng)域,CANopen 被設(shè)計(jì)出來。最初CANopen 是為面向運(yùn)動(dòng)的機(jī)器控制系統(tǒng)設(shè)計(jì)的,如今它在各個(gè)領(lǐng)域都得到了應(yīng)用,例如:
Robotics(機(jī)器人)
Medical equipment(醫(yī)療設(shè)備)
Stepper and servo motors(步進(jìn)電機(jī)和伺服電機(jī))
Food processing(食品加工)
Automation(自動(dòng)化)
Off-road vehicles(非公路車輛)
Marine electronics(船用電子設(shè)備)
Railway application(鐵路應(yīng)用)
Building automation(建筑自動(dòng)化)
Mechanical manufacturing(機(jī)械制造)
Industrial machinery(工業(yè)機(jī)械)
Security monitoring(安防)
CANopen 使設(shè)計(jì)人員能夠執(zhí)行各種功能,使CAN 總線更適合于嵌入式網(wǎng)絡(luò)應(yīng)用,如車內(nèi)網(wǎng)絡(luò)。它提供了高度靈活的配置功能。使用CAN-open,能夠做到:
實(shí)現(xiàn)設(shè)備網(wǎng)絡(luò)行為
影響和控制網(wǎng)絡(luò)行為
溝通和處理數(shù)據(jù)
設(shè)備內(nèi)部故障提示
設(shè)備能夠點(diǎn)對(duì)點(diǎn)通信
定義內(nèi)部設(shè)備結(jié)構(gòu)
允許數(shù)據(jù)速率在10kbps-1000kbps 間調(diào)整
CANopen 的內(nèi)部設(shè)備結(jié)構(gòu)有三個(gè)主要的邏輯部分:
協(xié)議棧 | ●通過CAN n/w處理通信 |
應(yīng)用軟件 |
●支持內(nèi)部控制功能 ●為硬件提供接口 |
對(duì)象字典 |
●CANopen設(shè)備的配置和診斷是最重要的 ●接口協(xié)議以及應(yīng)用軟件 ●涵蓋所有的使用數(shù)據(jù)類型 ●存儲(chǔ)所有的交流參數(shù)和申請(qǐng)參數(shù) |
CANopen 消息幀格式: CANopen 的消息幀格式和CAN總線的相似。它包含了的COB-ID 和控制位,為了避免和CAN 總線的COB-ID 沖突,所有的COB-ID 均不相同。
CANopen 協(xié)議:
一個(gè)CANopen協(xié)議棧實(shí)現(xiàn)幾個(gè)CANopen COB與對(duì)應(yīng)速率的CANopen 通信。CANopen 協(xié)議由以下部分組成:
數(shù)據(jù)對(duì)象服務(wù)協(xié)議(SDO)
SDO服務(wù)使CANopen節(jié)點(diǎn)能夠通過CAN網(wǎng)絡(luò)讀取、編輯、更改或訪問另一節(jié)點(diǎn)對(duì)象字典的值
這是一種確認(rèn)的通信服務(wù),由兩個(gè)具有不同CAN標(biāo)識(shí)符的CAN數(shù)據(jù)幀組成
在以CAN為傳播媒介上建立兩個(gè)CANopen設(shè)備之間的對(duì)等“客戶端-服務(wù)器”的通信Server(服務(wù)端): 訪問對(duì)象字典的所有者Client(客戶端): 訪問對(duì)象字典并啟動(dòng)與專用SDO“服務(wù)器”通信的設(shè)備
盡管SDO 非常靈活,但OVERHEAD 的存在使其不太適合實(shí)時(shí)數(shù)據(jù)操作。為了解決這個(gè)問題,使用了進(jìn)程數(shù)據(jù)對(duì)象協(xié)議。
進(jìn)程數(shù)據(jù)對(duì)象協(xié)議(PDO)
PDO 通常被視為一個(gè)重要的CANopen 協(xié)議,因?yàn)樗休d了大量的信息
CANopen 使用進(jìn)程數(shù)據(jù)對(duì)象(PDO)跨CANopen 節(jié)點(diǎn)在實(shí)時(shí)操作數(shù)據(jù)中傳播高優(yōu)先級(jí)控制和狀態(tài)信息
PDO 由單個(gè)CAN 幀組成,可在單個(gè)幀內(nèi)僅傳送多達(dá)8字節(jié)的應(yīng)用程序數(shù)據(jù),其中包含多個(gè)對(duì)象參數(shù)值Producer(生產(chǎn)者): 它產(chǎn)生要傳輸?shù)街鳈C(jī)的數(shù)據(jù)Consumer(消費(fèi)者):這里的主機(jī)就是消費(fèi)者。它從生產(chǎn)者那里接收數(shù)據(jù)
網(wǎng)絡(luò)管理協(xié)議(NMT)
NMT 服務(wù)定義CANopen 設(shè)備的通信方式。在接收到NMT 協(xié)議時(shí),CANopen 設(shè)備被迫轉(zhuǎn)換到命令的NMT 狀態(tài)。NMT 狀態(tài)機(jī)包括:
初始化狀態(tài)(設(shè)備在通電或復(fù)位后進(jìn)入初始化狀態(tài))
預(yù)運(yùn)行狀態(tài)
運(yùn)行狀態(tài)
停止?fàn)顟B(tài)
NMT 協(xié)議發(fā)送單個(gè)CAN 幀,數(shù)據(jù)長度為2字節(jié),CAN ID為0。它包含命令標(biāo)識(shí)符/功能代碼(第一位),它代表請(qǐng)求狀態(tài),對(duì)于NMT,如果將其設(shè)置為顯性狀態(tài)0,則所有節(jié)點(diǎn)都必須執(zhí)行該命令。節(jié)點(diǎn)ID——作為指定的名字,包含需要遵守狀態(tài)轉(zhuǎn)換命令的模塊ID。
在NMT中,模塊需要使用SDO協(xié)議操作,因?yàn)镻DO僅在操作狀態(tài)下才可運(yùn)作。
特殊功能協(xié)議
為了產(chǎn)生特定的網(wǎng)絡(luò)行為,CANopen提供了三種特定的協(xié)議:
Synchronisation Protocol(同步協(xié)議):該協(xié)議允許同步多個(gè)設(shè)備。同步生成器或應(yīng)用程序主機(jī)定期傳輸同步協(xié)議。根據(jù)預(yù)定義的連接設(shè)置,同步消息映射到單個(gè)CAN 幀,COB ID 為80h。(它不攜帶數(shù)據(jù)(DLC=0))
Emergency Protocol(應(yīng)急協(xié)議):任何內(nèi)部設(shè)備錯(cuò)誤都會(huì)觸發(fā)應(yīng)急協(xié)議。在這種情況下,緊急消息由故障設(shè)備發(fā)送。每個(gè)錯(cuò)誤事件只傳輸一次。故障設(shè)備使用將CAN標(biāo)識(shí)符COB ID 80h+(節(jié)點(diǎn)ID)分配給緊急消息的功能。如果CAN總線上的設(shè)備沒有新的錯(cuò)誤,則不會(huì)繼續(xù)傳輸此類消息
Time-stamp protocol(時(shí)間戳協(xié)議):允許CANopen系統(tǒng)的用戶調(diào)整特定的網(wǎng)絡(luò)時(shí)間,該時(shí)間戳映射到一個(gè)CAN幀,該幀具有6字節(jié)的數(shù)據(jù)。這6個(gè)字節(jié)中最初的4個(gè)字節(jié)代表“一天之中的時(shí)間”信息,4個(gè)字節(jié)存儲(chǔ)的都為毫秒信息,接下來的2個(gè)字節(jié)則為1984年1月1日0點(diǎn)這個(gè)數(shù)據(jù)信息。默認(rèn)情況下,關(guān)聯(lián)的CAN幀預(yù)設(shè)值為CAN標(biāo)識(shí)符100h。
錯(cuò)誤控制協(xié)議:監(jiān)聽CANopen 網(wǎng)絡(luò)
Heartbeat Protocol(防斷連協(xié)議):防斷連協(xié)議驗(yàn)證其可用性及NMT 有限狀態(tài)自動(dòng)化(FSA)。對(duì)于CANopen 中的所有網(wǎng)絡(luò)。防斷連信號(hào)循環(huán)傳輸,以確認(rèn)防斷連發(fā)生器的可用性。
Boot up protocol(啟動(dòng)協(xié)議):這表示一種獨(dú)特類型的錯(cuò)誤控制協(xié)議。在進(jìn)入NMT FSA 預(yù)運(yùn)行狀態(tài)之前,它將作為NMT FSA 狀態(tài)初始化中的最終操作進(jìn)行傳輸。接收到此消息表示
新設(shè)備已注冊(cè)到CANopen 網(wǎng)絡(luò)
更改網(wǎng)絡(luò)設(shè)置(當(dāng)有新設(shè)備添加到CANopen 時(shí))
它可以被認(rèn)為是CANopen 網(wǎng)絡(luò)中出現(xiàn)錯(cuò)誤情況的標(biāo)志
審核編輯:湯梓紅
-
CAN總線
+關(guān)注
關(guān)注
145文章
1911瀏覽量
130572 -
通信系統(tǒng)
+關(guān)注
關(guān)注
6文章
1168瀏覽量
53259 -
CANopen
+關(guān)注
關(guān)注
8文章
243瀏覽量
43522
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論