一個CANopen的應(yīng)用樣例
Stop狀態(tài)
從PCAN-View軟件中發(fā)送如下命令,將NODE-ID為0x0A的節(jié)點設(shè)置為Stop狀態(tài):
CAN-ID | Length | Data |
---|---|---|
0x000 | 2 | 0x02 0x0A |
在PCAN-View軟件界面中菜單欄中選擇Transmit->New Message...
,將會彈出發(fā)送新消息的對話框。如圖x所示。當(dāng)然,也可以直接單擊工具欄中的New Message
按鈕,或者使用ins
快捷鍵觸發(fā)對話框。
figure-pcan-view-new-msg
圖x 在PCAN-View中發(fā)送新消息在彈出的發(fā)送新消息對話框中填寫Stop幀內(nèi)容。如圖x所示。
figure-pcan-view-new-msg-2
圖x 在發(fā)送新消息對話框中填寫幀內(nèi)容確認(rèn)新建消息后,可以在PCAN-View窗口界面下半邊Transmit
看到新建的消息幀,但此時尚未發(fā)送。如圖x所示。
figure-pcan-view-new-msg-3
圖x 新建發(fā)送消息幀此時,需要人工觸發(fā)發(fā)送過程。可以選中即將發(fā)送的消息幀,再單擊菜單欄Transmit->Send
。如圖x所示。或者也可以通過快捷鍵Space
空格,或者直接雙擊即將發(fā)送消息幀的CAN-ID,也可以觸發(fā)發(fā)送過程。
figure-pcan-view-new-msg-4
圖x 觸發(fā)發(fā)送消息幀當(dāng)發(fā)送幀完成之后,在PCAN-View的界面中可以看到,CAN-ID為0x70A
的心跳消息的值,已經(jīng)從05
變成了04
。說明對應(yīng)的CANopen節(jié)點設(shè)備已經(jīng)收到停止命令并生效了。如圖x所示。
figure-pcan-view-new-msg-5
圖x CANopen節(jié)點識別停止命令并更新心跳消息在PCAN-View的Trace
標(biāo)簽頁中,也可檢測到CAN網(wǎng)絡(luò)上有通信幀的變化,如圖x所示。
figure-canopen-msg-stop-node
圖x PEAK-View觀察到的Stop報文### Start狀態(tài)
從PCAN-View軟件中發(fā)送如下命令,將NODE-ID為0x0A的節(jié)點切換至Start狀態(tài):
CAN-ID | Length | Data |
---|---|---|
0x000 | 2 | 0x01 0x0A |
之后,可檢測到CAN網(wǎng)絡(luò)上有通信幀如圖x所示。
圖x PEAK-View觀察到的Start報文
Pre-operation狀態(tài)
從PCAN-View軟件中發(fā)送如下命令,將NODE-ID為0x0A的節(jié)點切換至Pre-operation狀態(tài):
CAN-ID | Length | Data |
---|---|---|
0x70A | 2 | 0x80 0x0A |
之后,可檢測到CAN網(wǎng)絡(luò)上有通信幀如圖x所示。
figure-canopen-msg-preoperaion-node
圖x PEAK-View觀察到的Pre-Operation報文### 復(fù)位應(yīng)用層
從PCAN-View軟件中發(fā)送如下命令,將NODE-ID為0x0A的節(jié)點復(fù)位,讓節(jié)點的應(yīng)用恢復(fù)初始狀態(tài),比如列車門都恢復(fù)打開狀態(tài):
CAN-ID | Length | Data |
---|---|---|
0x70A | 2 | 0x81 0x0A |
之后,可檢測到CAN網(wǎng)絡(luò)上有通信幀如圖x所示。
figure-canopen-msg-reset-node
圖x PEAK-View觀察到的復(fù)位消息CANopen從站節(jié)點收到復(fù)位消息后,會復(fù)位本機執(zhí)行的CANopen協(xié)議棧,恢復(fù)或者刷新對象字典的默認(rèn)配置屬性。
復(fù)位通信層
從PCAN-View軟件中發(fā)送如下命令,將NODE-ID為0x0A的節(jié)點的通信層復(fù)位,讓節(jié)點的 CAN 和 CANopen 通訊重新初始化,一般用于總線收到 干擾,導(dǎo)致節(jié)點總線錯誤被動,或者總線關(guān)閉時:
CAN-ID | Length | Data |
---|---|---|
0x70A | 2 | 0x82 0x0A |
總結(jié)
本文介紹了實現(xiàn)CANopen協(xié)議棧的一個廣為使用的軟件組件CANopenNode。特別從實踐的角度上,詳細(xì)分析了在具體微控制器上移植CANopenNode組件的方法,以集成了FlexCAN外設(shè)的MM32F0140微控制器為例,詳述的移植過程,創(chuàng)建了一個運行CANopen協(xié)議框架的樣例工程canopen_demo。為了演示CANopen協(xié)議棧的工作場景,同時驗證移植工作已經(jīng)成功完成,本例使用運行PCAN-View軟件和CAN轉(zhuǎn)接器PEAK-CAN,模擬一個CANopen的主站,向接入同一CAN網(wǎng)絡(luò)的CANopen從站節(jié)點發(fā)送NMT網(wǎng)絡(luò)管理命令,切換從站節(jié)點的狀態(tài),并使用PCAN-View軟件的觀察CANopen從站節(jié)點心跳包的變化。本文還簡要說明了PCAN-View軟件的使用方法,可以配置PEAK-CAN轉(zhuǎn)接器的通信速率、觀察CAN總線上的消息幀、發(fā)送自定義的消息幀、記錄歷史消息幀等。
-
微控制器
+關(guān)注
關(guān)注
48文章
7564瀏覽量
151506 -
CAN
+關(guān)注
關(guān)注
57文章
2756瀏覽量
463829 -
節(jié)點
+關(guān)注
關(guān)注
0文章
220瀏覽量
24444 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7571瀏覽量
88869 -
CANopen
+關(guān)注
關(guān)注
8文章
259瀏覽量
43606
發(fā)布評論請先 登錄
相關(guān)推薦
評論