如果你不了解CAN协议,请你至少先自行了解什么是CAN以及CAN帧的构成
usb2can是一种通过usb来接入can总线的硬件设备,可以让开发者方便的调试其他使用can协议的硬件设备
USB to CAN 依赖于 can-utils,你可以使用以下命令安装
sudo apt update
sudo apt install can-utils
在你连接usb2can的硬件设备后,使用如下命令启动can0
sudo ip link set can0 up type can bitrate 1000000
如果没有报错说明成功启动(重复运行该命令会报错总线繁忙,是正常现象)
同样地,如果有其他的can设备,可以使用同样的命令,并把can0
替换为其他名字
candump
命令用来监视can总线上的所有数据,你可以尝试使用如下命令查看can0
上的数据
candump can0
如果can总线上有数据,你会获得类似这样的输出(如果你没有连接任何设备,没有输出是正常的)
can0 201 [8] 00 00 00 00 0F A0 00 00
这表示在can0
上捕获到了一条信息,这条信息的canid
为201
(十六进制),数据长度为8个字节,具体内容为00 00 00 00 0F A0 00 00
cansend
命令用来在总线上发送消息,比如这样一条命令
cansend can0 200#0011001100110011
这表示在can0
上发送一条canid
为200
(十六进制),数据长度为8个字节,具体内容为00 11 00 11 00 11 00 11
的信息
你可以尝试使用两个终端,一个进行candump
,一个进行cansend
,你会在进行candump
的终端上看到你发送的消息,有助于你理解can协议
的工作流程