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