Linux can配参

博客围绕Linux系统中CAN接口展开,指出设备CAN甩线接车报错是因波特率和采样率不一致。介绍了can0默认配置、查看及设置CAN参数的方法,还提及网卡配置规则,包括pre - up等相关内容,以及CAN通讯故障处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

项目问题:设备CAN甩线接到车上,车就会挂/报错。
问题原因:波特率和采样率不一致导致,物理连接后若can参数与总线参数不同就会报错。这里应用程序默认是不修改和启动can0的。采样率一般80%,波特率这里是250K,查看系统网卡配参,can0启动时设置的波特率是500000。

can0默认配置

can0启动时默认参数(网卡配置文件:/etc/network/interfaces)

# can0 interfaces
auto can0
iface can0 inet manual
pre-up /sbin/ip link set $IFACE type can bitrate 500000 triple-sampling on
up /sbin/ifconfig $IFACE up                                               
down /sbin/ifconfig $IFACE down

# can1 interfaces
auto can1                     
iface can1 inet manual        
pre-up /sbin/ip link set $IFACE type can bitrate 500000 triple-sampling on
up /sbin/ifconfig $IFACE up                                               
down /sbin/ifconfig $IFACE down

Linux文本内容替换

sed -i 's/500000/250000/g'  /etc/network/interfaces

查看CAN参数

以can0为例,

ip -details link show can0

查看 can0 的配置在这里插入图片描述
查看 can0 的比特率配置等,以及统计数据(接收/发送/出错帧等)

ip -details -statistics link show can0 

在这里插入图片描述

canconfig can0

在这里插入图片描述

设置CAN参数

应用代码是这样设置can参数的

ifconfig can0 down;ip link set can0 type can restart-ms 200;ip link set can0 type can bitrate 500000 sample-point 0.80 sjw 3 > /dev/null;ifconfig can0 up

ifconfig can1 down;ip link set can1 type can restart-ms 200;ip link set can1 type can bitrate 250000 sample-point 0.80 sjw 3 > /dev/null;ifconfig can1 up

//其他
ifconfig can0 down;canconfig can0 bitrate 500000 > /dev/null;ifconfig can0 up

参考资料

  1. 如何测试验证linux下的CAN接口
  2. 嵌入式linux的can0配置
  3. 网卡配置规则
  4. pre-up、up、post-up、pre-down、down、post-down
  5. I.MX6 Android CAN 命令行测试
  6. CAN接口简介
  7. 如何处理CAN通讯故障

网卡配置规则

ubuntu需要在/etc/network/interfaces文件中设置网络配置,基本的格式如下:

auto <网卡名>
iface <网卡名> inet <模式>
address <ip>
netmask <掩码>
gateway <网关>
dns-nameservers <dns1, dns2>

网卡名可通过以下命令来获取到系统全部的网卡名:

ifconfig -a

模式一般使用dhcp或static。当设置为static静态设置时,需要说明至少address和netmask两个参数,示例:

1.通过dpchp

auto eth0
iface eth0 inet dhcp

2.静态ip

auto eth0
iface eth0 inet static
address 192.168.0.11
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1

pre-up、up、post-up、pre-down、down、post-down

pre-up网卡启用前的动作
up启用时候的动作
post-up启用后的动作
pre-down关闭前的动作
down关闭时动作
post-down关闭后动作
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值