CAN
CAN总线协议(Controller Area Network), 控制器局域网总线,是德国BOSCH(博世)公司研发的一种串行通讯协议总线, 它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。
CAN硬件连接
开发板和外部设备CAN接线如下:
开发板 | 外部设备 |
---|---|
CAN_L | CAN_L |
CAN_H | CAN_H |

CAN通讯测试
本次测试使用CAN分析仪进行测试,将两个设备的H端和L端连接即可

检查接口
检查开发板can0和can1接口是否有生成
root@linaro-alip:/# ifconfig -a
can0: flags=128<NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 54
can1: flags=128<NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 55
···
参数设置
开发板设置波特率并进行测试(本次以CAN0为测试样本)
#将CAN0接口关闭
sudo ip link set can0 down
#设置比特率为 250000
sudo ip link set can0 type can bitrate 250000
#将CAN0接口启用
sudo ip link set can0 up
#发送(标准帧,数据帧,ID:7ff,date:11223344556677)
cansend can0 -i 0x7ff 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
#接收
candump can0
测试结果
- 开发板测试结果:

- CAN分析仪测试效果:
