通讯协议--CAN转换模块调试
CAN模块调试
在工作中经常会遇到不是原生的CAN通讯接口,可能时通过USB或者串口等接口转换。这时我们可以借助 slcand 工具,将这些设备虚拟成标准的 canX 接口,配合 can-utils 工具包进行调试。
安装调试工具 can-utils
can-utils 是Linux下用于调试CAN总线通信的常用工具包,包含 cansend、candump、canconfig 等命令。
安装方式:
1 | sudo apt-get install can-utils |
slcand 简介
slcand 是 SocketCAN 提供的串口CAN驱动桥接工具,用于将基于串口的CAN设备(如slcan协议)桥接为 canX 虚拟接口。

常用参数说明:
-c:打开CAN接口(start interface)
-s6:设置CAN速率,对应500kbps(速率参数详见下表)
-o:开启标准输出(通常用于调试)
-f:进入守护进程模式(fork模式)
-S9600:设置串口波特率(根据硬件要求设置)
/dev/ttyACM3:对应你的串口CAN设备路径
can1:指定映射的虚拟CAN接口名
| -s参数值 | 速率(kbps) |
|---|---|
| s0 | 10 |
| s1 | 20 |
| s2 | 50 |
| s3 | 100 |
| s4 | 125 |
| s5 | 250 |
| s6 | 500 |
| s7 | 800 |
| s8 | 1000 |
用法
启动 slcand 服务:
1
sudo slcand -c -s6 -o -f -S9600 /dev/ttyACM3 can1
此命令将 /dev/ttyACM3 设备(如USB转CAN)以500kbps速率挂载为 can1 接口。
启用 CAN 接口:
1
sudo ip link set can1 up
也可以关闭:
1
sudo ip link set can1 down
发送CAN数据:
1
cansend can1 123#112233
这会向CAN总线发送ID为0x123,数据为 11 22 33 的标准帧。
接收CAN数据:
1
candump can1
实时监听 can1 接口上的数据帧。
用法1
2
使用注意事项
1、每次使用 slcand 后都要使用 ip link set canX up 激活接口;
2、确保串口波特率与实际设备匹配;
3、某些USB转CAN设备可能使用 ttyUSB0、ttyACM0 等,需要根据实际情况调整;
4、使用 dmesg | grep tty 可查看接入的串口设备。








