1.1 CAN总线介绍

顾名思义,CAN总线名称如下:
在这里插入图片描述
目前世界上绝大多数汽车制造厂商都采用CAN总线来实现汽车内部控制系统之间的数据通信。
在这里插入图片描述
CAN总线由CAN_H、CAN_L双绞线组成,通过差分电压传输信号,提高了抗干扰能力,保证了数据传输可靠性。

在这里插入图片描述
在这里插入图片描述
CAN总线两端必须有120欧终端电阻。各通信节点全部并在CAN总线上,采用时分多路传输,保证各通信节点互通性。

汽车一般都提供CAN-OBD接口,用于汽车的故障维护。常见位置如下:
在这里插入图片描述

1.2 标准接口定义

CAN-OBD接口定义如下:
在这里插入图片描述
CAN-DB9接口定义如下:
在这里插入图片描述

1.3 CAN数据帧结构

CAN总线特点:串行、同步、半双工、CRC;
在这里插入图片描述
一般帧ID越小,优先级越高
在这里插入图片描述
解析时注意大小端字节转换

1.4 Linux CAN操作指令

(1)查看can网络收发包数量、是否有错误等

ifconfig can0

(2)显示can设备详细信息

ip -details link show can0

(3)关闭打开can设备

ifconfig can0 up
ifconfig can0 down
ip link set can0 up
ip link set can0 down

对can设置进行设置时,最好先关闭can设备
(4)接收can数据

candump can0

(4)发送can数据

cansend can0 -i 100 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
cansend can0 -i 0x800 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 -e

-e 表示扩展帧,CAN_ID最大29bit,标准帧CAN_ID最大11bit
-i表示CAN_ID
0x800及以上必为扩展帧
(5)设置回环模式

canconfig can0 ctrlmode loopback on 
ip link set can0 up type can bitrate 800000 loopback on

自发自收,用于测试是硬件是否正常
回环模式设置有效,设置时需要先关闭can设备
(6)设置波特率

canconfig can0 bitrate 500000
ip link set can0 up type can bitrate 800000

can的波特率一般为500kbps,CAN网络波特率最大值为1Mbps

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐