一個CANopen的應用樣例
在基本的運行CANopen框架的演示項目中,除了一個已經(jīng)運行CANopenNode組件程序的CANopen節(jié)點,還需要一臺運行PCAN-View軟件的PC機和USB-CAN轉換器PEAK-CAN,模擬一個接入CAN總線的CANopen主站設備節(jié)點。在運行演示項目時,可以使用PCAN-View軟件,通過CAN總線發(fā)現(xiàn)運行了CANopen設備節(jié)點,并接收來自CANopen節(jié)點發(fā)出的心跳消息包,然后發(fā)送一系列網(wǎng)絡管理命令,控制CANopen從站節(jié)點對本機的CANopen協(xié)議棧程序停止、啟動、復位等操作。
- PCAN-USB驅動
- PCAN-View 安裝包
- PCAN-View使用說明
figure-can-connection-between-pc-and-mcu
圖x PC模擬的CAN主站同CAN從站之間的連接之后,開發(fā)者可以試著通過PCAN-View軟件接入CAN總線的CANopen節(jié)點發(fā)送控制命令,并觀察CAN總線上的消息。
這里用到了一個PEAK-CAN轉接設備,如圖x所示。
PCAN-CAN轉接設備實物務必先將PEAK-CAN轉接設備接入電腦后,再啟動PCAN-View軟件。在剛啟動PCAN-View時,會彈出配置連接的對話框,其中顯示已經(jīng)識別到的PEAK-CAN設備,以及配置通信速率的對話框。在本例中,使用 500kbit/s,同剛移植的canopen_demo工程配置保持移植。配置連接對話框的界面如圖x所示。
figure-pcan-view-connect
圖x PCAN-View識別到的PEAK-CAN設備以及配置通信速率確認之后,啟動PCAN-View軟件,即可在界面中看到CANopen節(jié)點已經(jīng)在CAN總線上發(fā)送的消息幀了。如圖x所示。
figure-pcan-view-startup
圖x 運行PCAN-View軟件這里需要注意的是,在Receive/Transmit
標簽頁中看到的消息幀是以CAN-ID分類的,總會顯示當前已經(jīng)出現(xiàn)的CAN-ID消息幀的最新狀態(tài)。如果想看每一幀按照時間順序排列的歷史信息,可在Trace
標簽頁中,啟動記錄后查看。
上線和心跳消息
CANopen節(jié)點上電后接入CAN總線,會向總線發(fā)送上線消息。PCAN-View軟件將會收到上線消息如下:
CAN-ID | Length | Data |
---|---|---|
0x70A | 1 | 0x00 |
之后,該CANopen從站節(jié)點將以1000ms為時間間隔,持續(xù)向CAN網(wǎng)絡發(fā)送節(jié)點心跳報文。此時,PCAN-View軟件將以1000ms的時間間隔收到心跳報文如下:
CAN-ID | Length | Data |
---|---|---|
0x70A | 1 | 0x05 |
figure-canopen-msg-heartbeat-at-power-up
圖x CANopen節(jié)點發(fā)送上線報文和心跳包至此,可驗證該CANopen節(jié)點成功啟動,并開始正常運行。
此處對心跳消息展開解釋一下。在本例中使用的心跳消息使用CAN-ID的值為0x70A
,二進制碼為0b11100001010
,按照CANopen協(xié)議對COB-ID的規(guī)定,11位的CAN標準幀被拆分為前4位的功能碼(FUNCTION CODE)和后7位的節(jié)點地址碼(NODE ID CODE)。如圖x所示。此處心跳消息的功能碼對應0b1110
,與圖x中表格列出的值一致。
figure-canopen-cob-id
圖x CANopen中的COB-ID本例中的節(jié)點地址碼0b001010
,即0xA
,則來自于canopen_demo工程CO_OD.c文件中對對象字典的配置。
/***** Definition for ROM variables *******************************************/
struct sCO_OD_ROM CO_OD_ROM = { //constant variables, stored in flash
CO_OD_FIRST_LAST_WORD,
...
/*2101*/ 0x0A, /* local NODE-ID. */
/*2102*/ 0x1F4, /* local bitrate. */
...
CO_OD_FIRST_LAST_WORD
};
其實對象字典里還配置了更多有用的屬性,例如,本節(jié)點的CAN總線通信的位速率就在對象字典中索引號為2102
的元素上,0x1F4
對應十進制數(shù)500
,表示500kbit/s
。
(未完待續(xù)。。。)
-
轉換器
+關注
關注
27文章
8703瀏覽量
147166 -
CAN總線
+關注
關注
145文章
1951瀏覽量
130753 -
CAN
+關注
關注
57文章
2754瀏覽量
463697 -
程序
+關注
關注
117文章
3787瀏覽量
81038 -
CANopen
+關注
關注
8文章
253瀏覽量
43588
發(fā)布評論請先 登錄
相關推薦
評論