CAN接口简介
程序员文章站
2024-02-23 21:35:28
...
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_ID0x800
及以上必为扩展帧
(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