发布时间:2023-08-09
本文将详细讲解如何通过ECI驱动的API接口快速的控制一个CAN设备的收发。
如果您需要在您的PC机器上进行CAN接口的开发和测试,由于PC机器本身不具备CAN接口,您需要通过额外的硬件来将PC机上扩展CAN接口,常见的CAN接口扩展方式有:通过USB接口扩展、通过PCIe总线扩展、通过以太网网络扩展等。我们可以提供常见的CAN接口设备,并开放相应的API接口以支持客户进行二次开发,以下内容为通过我们的Ixxat系列产品的API接口开发CAN的演示用例。
此次我将演示在Ubuntu18.04环境下通过ECI驱动进行CAN设备开发。首先,您需要下载安装我们的硬件设备驱动ECI,您可以通过我们的官方网站或者销售渠道获得。
目前我们最高支持的linux内核版本为5.8,此次测试将在5.4内核中测试。
下载驱动压缩包后将其解压,并找到src/KernelModule文件夹。
在此处编译内核模块:
输入“make”“sudo make install”;
注意,如果想要运行工程,您需要保证内核中编译信息完整并存在gcc编译器。
另外一种简单的办法是使用模块助手(module-assistant)。你可以通过输入“sudo apt-get install module-assistant”来安装它。现在您可以使用“sudo module-assistant prepare”命令让module-assistant为您安装所需的软件包。
找到src/EciDemos文件夹。
在此处编译demo文件,在编译之前,您需要做两件事情:
需要先安装libusb-dev的依赖库;
运行“sudo apt-get install libusb-dev”。
另外需要连接动态库:
运行”export LD_LIBRARY_PATH=../../bin/release$:LD_LIBRARY_PATH”。
最后编译,运行“make”。
我们打开demo进行测试。
打开bin/release文件夹路径。运行“。/LinuxEciDemo”
程序运行后可以看到,demo会自动寻找并对应对应板卡的应用:
这里测试的设备是CAN-IB640/PCIe,它本身就具有四个通道,我们通过两个通道之间物理链接后对发的形式进行测试。
可以看到能够正确的收发数据帧。
至此,数据包的收发测试完毕。
最后可以点击Crtl+C按键来退出demo程序。