Socket-CAN虚拟总线

Socket-CAN virtual bus

如何创建多个虚拟套接字并将它们 link 一起创建虚拟总线?

我想模拟一个应用程序,其中许多节点通过 CAN 相互通信。

您所需要的只是来自 can-utilscangw 工具。创建两个虚拟接口:

ip link add dev vcan0 type vcan
ip link add dev vcan1 type vcan
ip link set up vcan0
ip link set up vcan1

创建路由规则,以便所有到达 vcan0 的数据包都将被发送到 vcan1:

cangw -A -s vcan0 -d vcan1 -e

在一个终端中收听 vcan1:

candump vcan1

并从另一个终端发送数据包:

cansend vcan0 123#0011

你会看到,candump 将得到这个 CAN 数据包:

vcan1  123   [2]  00 11