目录
Can总线多用于汽车电子,车载通信功能,其功能稳定接线简单,通信速率快,现介绍其常用调试方法如下:
接线
只有两根高低电平线canl canh,要分别接到串口db9的2 7号端子,如果终端控制器没有终端电阻要并联终端电阻。否则数据无法接收到,而且电阻也不能并联太多,否则随着电阻值降低功能失效,不能形成有效回路。
测试
是否联通,可以用万用表分别测试两边是否短路,用canoe测试端口能否收到数据,canoe是不带终端电阻的如果两端都不带终端电阻那么接收数据回提示短路。可以用linux命令发送can数据。发送前确保can卡驱动安装好,可以用ifconfig -p看是否有can选项,另外可以用命令查看can口是否初始化过。确保canoe和控制器两端的波特率一致,否则无法接收到数据。
can指令
联通后可以用两个控制器分别接收发送can数据,包括标准帧和扩展帧,扩展帧id 29位,数据共8个字节。可以用指令can dump ,can send测试数据收发。
1. 安装can-utils包
“`
sudo apt-get install can-utils
“`
可以通过以上命令来安装can-utils包,这个包中包含了一些CAN工具,包括发送CAN数据的工具。
2. 启动CAN接口
在发送CAN数据之前,需要先启动CAN接口。以下是启动CAN接口的命令:
“`
sudo ip link set can0 up type can bitrate 500000
“`
其中can0是CAN接口的名称,可以根据实际情况修改。bitrate参数指定了CAN总线的波特率,这里设置为500000bps。
3. 发送CAN数据
使用cansend命令可以发送CAN数据。以下是cansend命令的语法:
“`
cansend #
“`
其中,是CAN接口的名称,是CAN数据帧的标识符,是CAN数据。可以根据实际情况修改这些参数。
示例:
“`
cansend can0 123#11223344
“`
以上命令会向CAN接口can0发送一帧CAN数据,标识符为0x123,数据为0x11223344。
can检测
都正常的情况下,也有可能收不到数据,有可能是采样率设置不对,一般的采样点在0.85,用示波器看是上升沿的85%位置处。如果数据偶尔能收到一个两个说明要调整采样率。比如0.87直到能收到为止。可以通过指令设置采样率。
ip link set can0 type can bitrate 1000000 sample-point 0.8 dbitrate 5000000 dsample-point 0.75 fd on restart-ms 1000