在工業物聯網時代,CAN是一種非常普遍的通信技術。本文將給大家介紹如何使用EPCM3568A-LI邊緣計算控制器與上位機實現CAN通信范例。
?EPCM3568A-LI產品簡介EPCM3568A-LI采用RK3568四核處理器,主頻高達2.0GHz,內置1TOPs NPU,作為邊緣計算網關,EPCM3568A-LI以其強大的計算能力,輕松高效處理數據,為用戶帶來更加便捷、智能的能源管理體驗。
?前期準備1.軟件方面
ZCANPRO.exe
下載EPCM3568A-LI開發環境
2.硬件方面
EPCM3568A-LI小型邊緣計算網關;
網線1根/交換機1個;
USBCAN-8E-U1個。
?CAN概述CAN(Controller Area Network,控制器局域網)是一種高可靠性的串行通信協議,專為汽車和工業控制等關鍵領域設計。它以高可靠性、實時性和出色的抗干擾能力為特點,非常適合在需要精確數據傳輸的控制系統中使用。
圖1EPCM3568A-LI的CAN接口
?USBCAN-8E-U介紹
USBCAN-8E-U是致遠電子開發的一款基于Linux操作系統的高性能CAN接口卡,其兼容USB2.0全速總線規范,集成1~4路CAN-bus接口,CAN通道集成獨立的電氣隔離保護電路。接口卡使PC通過USB端口連接至CAN網絡,構成一個CAN-bus控制節點。
圖2USBCAN-8E-U
USBCAN-8E-U高性能CAN接口卡是CAN-bus產品開發、CAN-bus數據分析的強大工具;同時、即插即用等特點,也是便攜式系統用戶的最佳選擇。USBCAN-8E-U接口卡上自帶電氣隔離模塊,使接口卡避免由于地環流的損壞,增強系統在惡劣環境中使用的可靠性。
USBCAN-8E-U高性能CAN接口卡支持Win2000/XP/7/8/10等操作系統,也支持Linux的操作系統。
在ZLG產品用戶手冊上有USBCAN-8E-U的具體介紹和用法說明,用戶可以自行查閱,
?EPCM3568A-LI與上位機的CAN通訊實驗本節,我們將利用EPCM3568A-LI的CAN接口(圖1)和USBCAN-8E-U(圖2),配合上位機模擬CAN通信。操作流程如下:
首先為EPCM3568A-LI接通電源,并通過網線將其與筆記本連接至同一交換機。待系統啟動后,使用MobaXterm的SSH登錄,IP:192.168.1.136,用戶名:zlgmcu,密碼:zlgmcu,如圖3。
圖3SSH登錄EPCM3568A-LI
1.初始化EPCM3568A-LI的CAN接口在使用Socket CAN之前,需要先設置CAN的波特率,波特率為1000kbps,并激活CAN網絡接口。執行如下指令:
sudo ifconfig can0 downsudo ip link set can0 type can bitrate 1000000sudo ifconfig can0 up
完成初始化后,輸入如下指令,可以看到如圖4所示
sudo ifconfig can0
圖4can0設備節點
2.安裝CAN通信測試工具can-utils
在確保EPCM3568A-LI能夠上網的情況下,執行下面指令,安裝CAN 通信測試工具 canutils:
sudo apt install can-utils
安裝完后輸入sudo can后按TAB鍵發現多了幾個工具,如圖5所示:
圖5can-utils命令行可執行工具
canutils 工具包內含 5 個獨立的程序:canconfig、candump、canecho、cansend、cansequence。這幾個程序的功能簡述如下:
canbusload:測量CAN總線的負載情況,幫助用戶評估CAN總線的性能和穩定性。
canfdtest:測試CAN Flexible Data Rate(CAN FD)總線的工具,用于發送和接收CAN FD數據幀。
canplayer:回放CAN總線數據,模擬將保存的CAN數據文件發送到CAN總線。
cansend:往指定的 CAN 總線接口發送指定的數據。
candump:捕獲CAN總線上的數據幀,并將其顯示在終端上。
cangen:生成CAN總線數據幀,模擬發送特定的CAN數據。
3.EPCM3568A-LI和USBCAN-8E-U接線
接下來看EPCM3568A-LI的CAN接口,如下所示:
圖6EPCM3568A-LI的CAN接口
USBCAN-8E-U接口卡集成了1~4路CAN通道,可以連接一個CAN-bus網絡或者CAN-bus接口的設備,其CAN-bus通道采用標準公頭DB9座子引出。DB9的引腳定義如圖7所示。
圖7DB9插座的管腳信號定義
用戶可以通過選配的DB9OPEN5轉換器,將DB9插座的CAN-bus 信號轉換至易于連接的5引腳OPEN5連接器,接口說明見圖8。
圖8DB9OPEN5轉換器信號定義
CAN-Bus通訊連接如圖9所示。
圖9CAN-Bus通訊連接
所以我們將EPCM3568A-LI和USBCAN-8E-U的H、L兩兩對接,如圖10,然后開始實驗。
圖10EPCM3568A-LI和USBCAN-8E-U接線
4. 收發實驗
4.1設置上位機ZCANPRO
如圖11,啟動通道0,并且將波特率設置為1000kbps。
圖11設置上位機ZCANPRO
4.2EPCM3568A-LI發送CAN數據幀
首先在EPCM3568A-LI執行下面指令查看CAN0的負載情況,如圖12所示
sudo canbusload can0@1000000 -r -t -b -c
圖12使用canbusload查看can0負載
可以看到當前CAN0上沒有負載。
接下來,EPCM3568A-LI發送CAN數據幀,上位機接收,在ZCANPRO上顯示收到的數據。EPCM3568A-LI發送11223344,幀ID為123,輸入下面指令:
cansend can0 123#11223344
上位機收到數據11223344,幀ID來自123,如圖13所示:
圖13上位機收到EPCM3568A-LI發送的CAN數據幀
4.3EPCM3568A-LI接收CAN數據幀
接下來,上位機發送CAN數據幀,EPCM3568A-LI接收并顯示在終端上。EPCM3568A-LI設置成接收數據幀模式,輸入下面指令:
candump -ta can0 &
在上位機使用ZCANPRO發送數據00 11 22 33 44 55 66 77,如圖14所示:
圖14使用ZCANPRO給EPCM3568A-LI發送CAN數據幀
如圖,EPCM3568A-LI接收到00 11 22 33 44 55 66 77,來自幀ID:100,如圖15所示:
圖15EPCM3568A-LI接收到ZCANPRO發送的數據幀
4.4使用cangen循環發送CAN數據幀
我們也可以用cangen,這將在CAN0接口上生成8字節數據長度的CAN幀,并且每1000毫秒生成一幀。此外,您也可以根據需要調整其他選項來滿足您的測試需求。
cangen -g 1000 -D r can0
這是EPCM3568A-LI循環發送的數據,如圖16所示:
圖16在EPCM3568A-LI使用cangen循環發送CAN數據幀
這是上位機接收到的數據,如圖17所示:
圖17上位機收到EPCM3568A-LI使用cangen循環發送的CAN數據幀從圖16和圖17中可以看到,EPCM3568A-LI發出的CAN數據幀與上位機收到的數據幀是一樣的,本實驗實現了EPCM3568A-LI與上位機的CAN通信。
-
CAN
+關注
關注
57文章
2754瀏覽量
463720 -
工控機
+關注
關注
10文章
1735瀏覽量
50549 -
工業物聯網
+關注
關注
25文章
2377瀏覽量
64227
發布評論請先 登錄
相關推薦
評論