一尘不染

如何在Linux上创建虚拟CAN端口?(C ++)

linux

我想创建一个程序来模拟CAN端口,以用于另一个大型应用程序的测试。程序应通过此虚拟CAN发送以前记录的数据。有人对这种东西有经验吗?

我正在考虑建立虚拟COM,并通过它发送打包在CAN框架中的数据。能行吗?以及如何在Linux上建立虚拟COM?找到了用于Linux的线程虚拟串行端口, 但可惜我不知道如何将其实现为程序的源代码(初学者linux用户和linux下的程序员)。

很想阅读您的经验和建议。


阅读 900

收藏
2020-06-07

共1个答案

一尘不染

您需要SocketCAN驱动程序,该驱动程序可在Ubuntu等现代Linux发行版中找到。SocketCAN提供虚拟CAN端口驱动程序:

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

现在,您可以通过vcan0设备发送和接收CAN帧。维基百科文章提供了有关如何使用SocketCAN的简单代码示例。

您还需要can-utils进行测试。

您可以在eLinux.org上找到有关SocketCAN及其用法的更多信息。

2020-06-07