嵌入式 ARM 控制器 BL301/BL302 系列是工業級堅固型工業控制器,采用 NXP 的
高性能處理器 I.MX6ULL,搭配先進的 ARM Cortex-A7 構架,運行速度高達 800MHz,
具有高度的穩定性。本產品*可提供 4 路 RS485/RS232,1 路 CAN 口,2 路網口,2
路 DI 口,2 路 PWM 口輸出以及 1 路 USB 接口,1 路電源輸入/輸出接口、1 路 HDMI
視頻顯示接口。可運行 LINUX、Ubantu、Debian 等 OS,兼容 Node-Red、QT、Pytho
n、C++等應用程序,支持 MySQL、InfluDB、SQLite 等數據庫。
RS485&232 接口
根據板載芯片的不同,BL302 可支持 RS485 或 RS232。COM1、COM2、COM3 和
COM4 對應的設備分別為/dev/ttymxc1、/dev/ttymxc2、/dev/ttymxc5 和/dev/ttymxc4。R485
接口 200 米線長*支持波特率為 115200。
BL302 板子上有一個 CAN 接口,如需測試 CAN 接口,還需要一個 CAN 設備,可
以使用另一塊 BL302 板子,或者帶有 CAN 的板子進行測試。
準備兩塊 BL302 設備,然后將 CAN 接口連接起來,BL302 設備上 CAN 接線端子將兩個設備的 CAN 接口連接起來,注意,CAN_H 接 CAN_H,CAN_L 接 CAN_L。
首先使用 ip 命令設置兩個設備的 CAN 接口,首先設置 CAN 接口的速度,輸入如
下所示命令:
ip link set can0 type can bitrate 500000
上述命令設置 can0 速度為 500Kbit/S,兩個 CAN 設備的速度要設置為一樣的!速
度設置好以后打開 can0 網卡,命令如下:
ifconfig can0 up //打開 can0
can0 打開以后就可以使用 can-utils 里面的小工具進行數據收發測試了。一個設備用
來接收數據,一個用來發送數據,接收數據的設備使用 candump 命令,輸入如下命令:
candump can0 //接收數據
發送數據的設備使用 cansend 命令向接收單元發送 8 個字節的數據:0X11、0X22、
0X33、0X44、0X55、0X66、0X77、0X88。輸入如下命令:
cansend can0 5A1#11.22.33.44.55.66.77.88
cansend 命令用于發送 can 數據,“5A1”是幀 ID,“#”號后面的
“11.22.33.44.55.66.77.88”就是要發送的數據,十六進制。CAN2.0 一次最多發送 8 個字節
的數據,8 個字節的數據之間用“.”隔開。
如果 CAN 工作正常的話接收端就會接收到上面發送過來的這 8 個字節的數據
/ # candump can0
can0 5A1 [8] 11 22 33 44 55 66 77 88
從上面可以看出,接收端的 can0 接口接收到了 8 個字節的數據,幀 ID 為 5A1,說
明 CAN 驅動工作正常。
如果要關閉 can0 的話輸入如下命令:
ifconfig can0 down
如果要在一個板子上進行 CAN 回環測試,按照如下命令設置 CAN:ifconfig can0 down //如果 can0 已經打開了,先關閉
ip link set can0 type can bitrate 500000 loopback on //開啟回環測試
ifconfig can0 up //重新打開 can0
candump can0 & //candump 后臺接收數據
cansend can0 5A1#11.22.33.44.55.66.77.88 //cansend 發送數據
如果回環測試成功的話那么設備就會收到發送給自己的數據,如圖所示:
/ # cansend can0 5A1#11.22.33.44.55.66.77.88
can0 5A1 [8] 11 22 33 44 55 66 77 88