前言:
CAN 是目前应用非常广泛的现场总线之一,主要应用于汽车电子和工业领域,尤其是汽车领域,汽车上大量的传感器与模块都是通过 CAN
总线连接起来的。
CAN
总线目前是自动化领域发展的热点技术之一,由于其高可靠性,CAN
总线目前广泛的应用于工业自动化、船舶、汽车、医疗和工业设备等方面。查看linux内核源码和qemu源码可以发现,CAN的驱动和仿真都在net目录下,这是因为linux系统和qemu把CAN当做网络设备同一管理,因此我们操作只要把CAN设备挂载到ip上使之成为socket,进行网络设备操作即可。
因为我们host主机是linux系统,guest上是qemu仿真的linux系统,所以直接host的can和qemu的can通信就好了。原理如下:
![](https://i-blog.csdnimg.cn/blog_migrate/c00434fea409ba1562ef13419c8fbc67.png)
一. Host创建CAN总线设备。
vcan是linux kernel内的一个driver,提供vcan的设备,因此只需要加载该驱动