当前所在位置:首页 > 技术知识 > 安全模块

技术知识

北京盟通科技是工业自动化领域的高科技企业,依托于核心团队多年的海外和行业经验,致力实时现场总线技术及工业通讯技术的推广

在Linux环境下通过ECI驱动进行开发--如何修改CANdemo

发布时间:2023-08-09

本文将详细讲解如何修改ECI驱动的demo按照需求控制一个CAN设备的收发。

如果您需要在您的PC机器上进行CAN接口的开发和测试,由于PC机器本身不具备CAN接口,您需要通过额外的硬件来将您的PC机上扩展CAN接口,常见的CAN接口扩展方式有:通过USB接口扩展、通过PCIe总线扩展、通过以太网网络扩展等。我们可以提供常见的CAN接口设备,并开放相应的API接口以支持客户进行二次开发,以下内容为通过我们的Ixxat系列产品的API接口开发CAN的演示用例。

此次我将基于上次在Ubuntu18.04环境下通过ECI驱动进行CAN设备收发。首先,您需要下载安装我们的硬件设备驱动ECI,并安装调试,详细请查询上一篇文章“测试你的第一个CANdemo

找到ECI驱动demo代码路径

在驱动压缩包中找到src/EciDemos文件夹。

注意,如果想要编译修改工程,您需要保证内核中编译信息完整并存在gcc编译器。



在此处打开LinuxEciDemo.c

可以找到我们目前调用的demo,默认是全部调用的。

在修改demo之前,我们此次采用了CAN-IB200/PCIe板卡进行测试,他的demoEciDemo111

我们找到EciDemo111.c并进行修改。

修改demo发送数据帧

此处的宏定义,是设置了发送的CAN数据帧的数量,默认是80000条,为了方便演示,我将其修改为103700x25=37)条。

测试发送10条数据,板卡一侧讲打印如下信息:



我们另一侧通过我们的USB-CAN测试盒进行抓包分析,可以看到CAN卡正确的发送了10个数据帧。



与此同时,我们同步测试接受数据的能力,我们打开测试盒的发送功能,让他周期发送数据帧。



在板卡一侧将会收到以上数据帧,并打印到窗口中:



如果将其修改为370条,则得到以下数据:


修改demo波特率

EciDemo111.c找到如下位置并进行修改。



我们在此处将波特率修改为500K

我们在CAN盒子这边也修改为500k,此时我们应当正确的收到数据帧。



板卡一侧也应当能够正确收到CAN盒发出的波特率为500k的数据帧。




以上就是,CANdemo修改的简单演示,如果您需要修改更多复杂的应用,可以参照我们的手册和demo来进行您自己的应用开发,我们的CAN设备均采用相同驱动并提供二次开发接口。如果您有任何其他CAN相关的问题,请随时和我们联系。