在閱讀有關(guān)CAN總線(xiàn)的文章時(shí),你肯定會(huì)遇到“CANopen”這個(gè)詞,它其實(shí)是一個(gè)基于CAN 的通信系統(tǒng)。CANopen 在基本術(shù)語(yǔ)中可以定義為在CAN 總線(xiàn)傳輸數(shù)據(jù)時(shí)使用的通信語(yǔ)言。發(fā)送者和接收者對(duì)數(shù)據(jù)信息的定義需要遵循共同的標(biāo)準(zhǔn)。
與CAN 總線(xiàn)底層協(xié)議包含物理層和數(shù)據(jù)鏈路層相比,CANopen 則是包含網(wǎng)絡(luò)層、傳輸層、會(huì)話(huà)層、表示層、應(yīng)用層這五個(gè)層次的高層協(xié)議。
在CAN總線(xiàn)上這些協(xié)議層之間都是獨(dú)立的。
在CAN總線(xiàn)上這些協(xié)議的功能描述如下:
盡管CAN 總線(xiàn)已經(jīng)成功的應(yīng)用在很多行業(yè),但是為了讓它能夠應(yīng)用在更多的領(lǐng)域,CANopen 被設(shè)計(jì)出來(lái)。最初CANopen 是為面向運(yùn)動(dòng)的機(jī)器控制系統(tǒng)設(shè)計(jì)的,如今它在各個(gè)領(lǐng)域都得到了應(yīng)用,例如:
● Medical equipment(醫(yī)療設(shè)備)
● Stepper and servo motors(步進(jìn)電機(jī)和伺服電機(jī))
● Food processing(食品加工)
● Automation(自動(dòng)化)
● Off-road vehicles(非公路車(chē)輛)
● 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 總線(xiàn)更適合于嵌入式網(wǎng)絡(luò)應(yīng)用,如車(chē)內(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è)主要的邏輯部分:
CANopen 消息幀格式: CANopen 的消息幀格式和CAN總線(xiàn)的相似。它包含了的COB-ID 和控制位,為了避免和CAN 總線(xiàn)的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)能夠通過(guò)CAN網(wǎng)絡(luò)讀取、編輯、更改或訪(fǎng)問(wèn)另一節(jié)點(diǎn)對(duì)象字典的值
● 這是一種確認(rèn)的通信服務(wù),由兩個(gè)具有不同CAN標(biāo)識(shí)符的CAN數(shù)據(jù)幀組成
● 在以CAN為傳播媒介上建立兩個(gè)CANopen設(shè)備之間的對(duì)等“客戶(hù)端-服務(wù)器”的通信
Server(服務(wù)端): 訪(fǎng)問(wèn)對(duì)象字典的所有者
Client(客戶(hù)端): 訪(fǎng)問(wèn)對(duì)象字典并啟動(dòng)與專(zhuān)用SDO“服務(wù)器”通信的設(shè)備
盡管SDO 非常靈活,但OVERHEAD 的存在使其不太適合實(shí)時(shí)數(shù)據(jù)操作。為了解決這個(gè)問(wèn)題,使用了進(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ù)長(zhǎng)度為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總線(xiàn)上的設(shè)備沒(méi)有新的錯(cuò)誤,則不會(huì)繼續(xù)傳輸此類(lèi)消息
● Time-stamp protocol(時(shí)間戳協(xié)議):允許CANopen系統(tǒng)的用戶(hù)調(diào)整特定的網(wǎng)絡(luò)時(shí)間,該時(shí)間戳映射到一個(gè)CAN幀,該幀具有6字節(jié)的數(shù)據(jù)。這6個(gè)字節(jié)中最初的4個(gè)字節(jié)代表“一天之中的時(shí)間”信息,4個(gè)字節(jié)存儲(chǔ)的都為毫秒信息,接下來(lái)的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)聽(tīng)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ú)特類(lèi)型的錯(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)志
評(píng)論
查看更多