【问题标题】:vcan0 interface linux communicationvcan0接口linux通讯
【发布时间】:2016-05-10 10:59:03
【问题描述】:

Linux 支持虚拟can 接口。它由以下人员启用:

modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ifconfig vcan0 up

使用cam-utils 时,例如camsniffercansend

cansend vcan0 321#1212
cansniffer vcan0

我可以看到罐头数据包;但仅在同一主机内。我试过 Ubuntu VirtualBox 机器。来宾和主机操作系统都使用主机专用适配器vboxnet0 互连。

还尝试了 SocketCAN socket(PF_CAN, SOCK_RAW, CAN_RAW),但无法在其他机器上接收(在同一台机器上工作)尝试使用广播管理器 socket(PF_CAN, SOCK_DGRAM, CAN_BCM) 执行 stderr 时说“不支持操作”

简单地说,可以在 Linux 主机之间发送和接收 CAN 数据包吗?它的虚拟机(vboxnet0)或物理连接(以太网)无关紧要。

注意:我分别使用 Ubuntu 16.04 和 12.04 作为主机和来宾操作系统。

【问题讨论】:

    标签: linux can-bus socketcan


    【解决方案1】:

    CAN 使用自己的物理总线。 vcan 设备设计用于测试通过总线通信而不需要实际物理连接的软件,它们实际上并非由管理程序提供,而是 SocketCAN 的一部分。

    从外观上看,您正试图在 Virtualbox 中建立虚拟 CAN 总线,将多台机器连接在一起,就好像它们都具有 CAN 控制器并连接到物理总线一样。我看过,但似乎这样的功能不存在,除了为 VirtualBox 编写扩展之外,可能不太可能。

    您希望使用 CAN 是否有特定原因?试图从 ECU 中提取数据或与具有 CAN 控制器的嵌入式硬件进行通信?就台式电脑通信而言,以太网更方便、更快捷,并且得到很好的支持。

    【讨论】:

    • 学习为汽车模拟设置虚拟环境。例如,门锁模拟。编写了一个程序来切换驾驶员车门锁定/解锁;导致剩余 3 个门获得 CAN 消息并自动锁定/解锁。程序仅在屏幕上显示消息 Locked/unlocked。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多