【问题标题】:raspberry pi - canbus can-utils timeout?树莓派 - canbus can-utils 超时?
【发布时间】:2018-07-15 07:52:48
【问题描述】:

我正在使用带有 MCP2515 + canbus-utils 的树莓派。

我的树莓派正在使用电池 - 所以当我打开汽车并启动 PI 时 - 一切正常。

但是当我关闭汽车,然后在 1 小时后尝试打开时,canbus-utils 没有回放,我需要重新启动 can 服务。

知道为什么吗?

canbus-utils 是否有某种超时?那可以改变\忽略吗?

【问题讨论】:

    标签: raspberry-pi can-bus


    【解决方案1】:

    当 PI 是总线上的唯一成员时,控制器切换到 bus_off 状态,因为没有人确认消息发送,否则消息将无限期发送,以保护重传的总线过载。

    几个月前还有一个内核版本没有从一些错误条件中恢复。 最新版本的内核已修复此问题。

    使用 sudo rpi-update 获取最新内核。

    还在你的 CAN 总线的初始化脚本中添加以下内容

    ip link set can0 type can restart-ms 100
    

    【讨论】:

    • 好的,我会试一试 :-) ......................然后我可以离开 PI一直开着,什么时候我会打开汽车我会得到数据?所以我的代码不需要重新启动? - 我理解你正确吗? BTY 你知道版本应该是什么吗? - 谢谢,
    • $ cat /proc/version Linux 版本 4.14.52-v7+ (dc4@dc4-XPS13-9333) (gcc 版本 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88- g8460611)) #1123 SMP Wed Jun 27 17:35:49 BST 2018 所以至少 4.14.52
    • 更新了答案,指出我在 can 设备上设置了重启计时器。
    • 关于您的回放的 2 个问题 - 此行有什么作用 ?ip link set can0 type can restart-ms 100 ,我是否必须为此升级 PI? --> 谢谢,
    • 来自link "restart-ms 100" 自动重启延迟时间。如果设置为非零值,则在指定的延迟时间(以毫秒为单位)后出现总线关闭情况时,将自动触发 CAN 控制器重启。默认情况下它是关闭的。
    猜你喜欢
    • 2013-12-13
    • 1970-01-01
    • 2022-12-05
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2014-09-14
    • 2019-07-16
    相关资源
    最近更新 更多