今日头条
嵌入式 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、Python、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
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !