【问题标题】:How to connect two VCAN ports in Linux?如何在 Linux 中连接两个 VCAN 端口?
【发布时间】:2019-06-15 05:59:13
【问题描述】:

我设置了两个 vcan 设备,我想将它们视为连接在一起。我希望能够使用 can-utils candump 在一条线路上收听,并从另一条线路发送 can 消息。没有物理设备我怎么能做到这一点?

为了澄清,我正在编写软件来通过我已经能够进行的 CAN 进行通信,但为​​了方便实际的数据收集和进一步开发,我需要两个可以启用的设备相互通信。虽然现实世界中的简单解决方案是通过将设备物理连接在一起来解决的,但我需要一个可以在计算机上运行的编程解决方案。

【问题讨论】:

    标签: linux virtual can-bus socketcan canutils


    【解决方案1】:

    添加can网关内核模块:

    sudo modprobe can-gw
    

    然后通过 can-utils 自带的 cangw 为各个接口创建网关规则。
    例如,将消息从 vcan0 路由到 vcan1:

    sudo cangw -A -s vcan0 -d vcan1 -e 
    

    反之亦然:

    sudo cangw -A -s vcan1 -d vcan0 -e
    

    现在您将能够看到在 vcan0 上以及在 vcan1 上发送的所有消息,反之亦然。

    【讨论】:

    • 这很完美!你知道 can-gw 的文档在哪里吗?
    • 我不确定是否存在文档。如果您不带参数输入 cangw,您将获得有关用法的详细信息和一些示例。
    • 在 BBB 上完美运行,连接 can0 和 can1 cangw -A -s can0 -d can1 -e 如果 modprobe can-gw 未设置,则不会让你设置此规则
    猜你喜欢
    • 1970-01-01
    • 2015-10-14
    • 2019-05-29
    • 2011-07-05
    • 2012-12-16
    • 2011-02-10
    • 1970-01-01
    • 2020-12-29
    • 2011-05-27
    相关资源
    最近更新 更多