码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux can配参


    文章目录

    • 背景
      • can0默认配置
      • 查看CAN参数
      • 设置CAN参数
    • 参考资料
      • 网卡配置规则
      • pre-up、up、post-up、pre-down、down、post-down

    背景

    项目问题:设备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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    Linux文本内容替换

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

    查看CAN参数

    以can0为例,

    ip -details link show can0
    
    • 1

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

    ip -details -statistics link show can0 
    
    • 1

    在这里插入图片描述

    canconfig can0
    
    • 1

    在这里插入图片描述

    设置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
    • 2
    • 3
    • 4
    • 5
    • 6

    参考资料

    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    ifconfig -a
    
    • 1

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

    1.通过dpchp

    auto eth0
    iface eth0 inet dhcp
    
    • 1
    • 2

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    pre-up网卡启用前的动作
    up启用时候的动作
    post-up启用后的动作
    pre-down关闭前的动作
    down关闭时动作
    post-down关闭后动作
  • 相关阅读:
    【JavaScript】video标签配置及相关事件:
    深入了解RPA业务流程自动化的关键要素
    Oracle之ADG与DG的区别?
    新项目,不妨采用这种架构分层,很优雅!
    strapi系列-常用操作记录(创建中间件,创建关系型数据库,数据去掉attributes那一层)
    springboot基于微信小程序的电器商城系统的设计与实现毕业设计源码251453
    平曲线坐标、反算桩号计算程序
    面试中的行为考察:展示你的人际交往能力
    linux时间编程
    docker——知识点回顾(2)
  • 原文地址:https://blog.csdn.net/mayue_web/article/details/127590036
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号