如果你希望在家里就能通过现有工具开发控制器域网(CAN)项目,Kvaser和我们的合作伙伴可以提供帮助。Kvaser的CAN适配器和数据记录仪都能与一个通用驱动程序协作,此驱动程序包括一个Virtual CAN Driver – 虚拟CAN驱动程序。此虚拟CAN驱动可用来监测和传输CAN数据,这样你借助它们就可以开始做CAN开发项目,继续你正在进行的开发项目,和进一步了解CAN – 所有这些你都可以在家里通过现成的工具实现。
技术博客
新手入门 – 使用Kvaser的虚拟驱动
在这里,我将举一个例子来说明如何做到这一点。使用Kvaser CANKing – Kvaser网站上提供的免费总线监测软件,以及同样可以在Kvaser网站下载的Kvaser Drivers for Windows – Kvaser的Windows驱动程序,我可以通过此驱动程序中的两个虚拟端口发送和接收CAN报文。
教程全文和屏幕截图:
虚拟驱动程序教程
在这里下载并安装 Kvaser Drivers for Windows:
https://www.kvaser.com/download/
同样在此处下载并安装 Kvaser CANKing。
打开CANKing并从第一个窗口选择 Template (模板)。
选择 OK后,你会看到Templates – 模板选择窗口。在此窗口中选择2 CAN channels (2路CAN通道),这样你的桌面上就出现两个CAN窗口…一个Kvaser驱动程序最多支持两路虚拟通道,所有这是当前唯一有意义的选择,因为你需要至少两路通道来传递数据。
你的桌面上应该有五个打开的窗口:Kvaser CANKing窗口、两个CAN通道窗口、一个Select Formatter (选择格式器)窗口和Output(输出)窗口。如果你的电脑桌面上不是这样,可以去View (查看)菜单并手动打开这五个窗口。你还需要Timed Transmission (定时传输)和History List (历史记录)窗口,所以也打开这些窗口。我喜欢在我的桌面上调整这些窗口,这样我就可以看到所有的东西,而且它们位置合理、易于观察。我的桌面现在是这样:
注意你必须在CAN Channel下的CAN 1和CAN 2窗口中都选择Virtual CAN Driver – 虚拟CAN驱动。一个应该是0–Kvaser Virtual CAN Driver,另一个应该是1 – Kvaser Virtual CAN Driver。这两路通道也应具有相同的总线配置信息。所有这些都应该默认设置。现在在你的Kvaser CANKing窗口中选择Start Run。这将同时打开两路虚拟通道并开始通信。现在我们创建一条报文。
转到右上角的 Message (报文)菜单,选择Universal (通用),或使用快捷键Ctrl+U。打开的窗口将如下所示:
在这个CAN Message 1 窗口中,我们将选择要通过我们的虚拟CAN总线发送的CAN报文。在最上面一栏中添入一个简单的CAN标识符,例如$0F0,然后在DLC(数据长度代码)栏中键入一个介于1和8之间的数字。我喜欢用8发送一个完整的数据帧。现在点击窗口右下角的Randomize Data(随机数据)。我的窗口现在看起来像这样:
我们现在已准备好传送数据了。在CAN Message 1 窗口中单击Send。如果你是按照上面的步骤正确操作,应该会在Output Window窗口中看到两个报文,在History List 窗口中会看到一个报文。输出窗口显示一个报文已发送,同时在另一路通道上已接收到的相同的报文。我们刚刚做的是将CAN报文从一路虚拟通道发送到另一路虚拟通道。以下是在我的Output Window顶部显示内容:
你可以看到,这与在CAN Message 1窗口中选择的随机数据完全相同,具有我选择的CAN标识符,从通道0发送出,在通道1上接收到。
让我们用不同数据长度代码(DLC)再发送一条报文。转到CAN Message 1窗口,更改CAN标识符,我将使用$050作为新标识符。现在将DLC改为3。再次单击Randomize Data 键,然后点击Send。一条新报文应该从通道0发出,并在通道1上接收,这次只有三个数据字节。你可以在我的CAN Message 1 窗口和Output Window中看到以下内容:
现在,我们进入此教程的第二步,使用History List 窗口发送重复的CAN数据帧。你的桌面上的Timed Transmission (定时传输)窗口应仍然打开着。如果没有,可以转到View 菜单将其打开。我在我的Timed Transmission窗口里写了1000毫秒并选了Cyclic (循环)传输模式:
接下来,我查看我的History List 窗口,可看到我最初通过虚拟通道发送和接收的两条报文:
现在如果你在History List 窗口中选择Send All (全部发送),你将看到你之前创建的报文被从历史记录中提取出来,并根据你在 Timed Transmission窗口中的参数设置,在虚拟CAN总线上传输。下面是我的Output Window现在显示的内容:
Download and install Kvaser CANlib SDK and develop a PC based application that accesses a CAN bus, then test your application through the virtual CAN driver.
这只是通过 Kvaser 虚拟CAN驱动和 Kvaser CANKing进行开发的一个例子。其他可通过此软件执行的任务包括:
-
开发一个示例.dbc文件,它可用于解码任何CAN数据(J1939、NMEA2000或CANOpen),然后通过CANKing生成一些数据,让这些数据运行,以查看解码是否正确。在Kvaser.com网站上搜索J1939DBC文件,如果你想在使用.dbc文件之前了解更多信息,请查看此链接:
https://www.kvaser.com/e_library/an-introduction-to-j1939-and-dbc-files/
-
下载并安装Kvaser合作伙伴的CAN分析工具试用版,并通过你的虚拟CAN总线发送和接收数据来了解该工具。
-
下载并安装Kvaser CANlib SDK,并开发一个适用于电脑的应用程序,该应用程序能访问CAN总线,然后通过虚拟CAN驱动测试此应用程序。