logo

【工控研究】嵌入式系统中高实时性CAN通信方案对比研究

嵌入式系统领域,控制器局域网络(CAN)协议广泛应用于工业自动化、汽车电子及其他需要高实时性的环境。传统CAN通信方案通常依赖于Linux用户态下的通用Socket CAN编程。这种方式的优点在于其使用了标准的Socket API,易于理解和使用。然而,其缺点也是显而易见的,尤其在需要严格实时性的应用场合。

本文将分析传统Socket CAN方案存在的局限性,并探讨基于用户态直接读写硬件寄存器的解决方案,以应对严格实时性需求。

 

传统Socket CAN方案

使用Socket CAN的主要问题在于其实时性。Socket API调用依赖操作系统调度,频繁的系统调用会增加内核态与用户态切换的资源开销,从而导致消息延迟。在高频率数据交互场景中(如1ms周期通信),这种延迟可能影响系统稳定性。例如,当系统负载较高时,消息传递的延迟与抖动现象会更加显著。因此,在对实时性要求严格的场景中,传统Socket CAN方案可能无法满足应用需求。

 

望获实时Linux系统方案:用户态下直接读写硬件寄存器

为了提升Socket CAN方案的实时性,望获实时Linux提出了一种优化方法,允许用户态程序直接与硬件交互。该方案通过绕过操作系统的中间层,使应用程序能够直接访问硬件寄存器,从而消除了系统调用带来的延迟和资源开销。

在该方案下,开发者可以在应用程序中直接控制CAN接口,通过硬件寄存器完成数据传输。这种方式减少了数据传输的延迟,提升了交互的稳定性,确保信息的快速与准确传递。此外,该方案支持多种硬件平台的适配,能够灵活应对不同应用场景的需求变化。

 

测试环境

本次测试采用创龙3576板卡,通过连接CAN0和CAN1接口,验证两种方案CAN通信性能

 

传统方案

测试工具:使用cansend和candump命令。

发送周期:设定为1毫秒,同时在施加hackbench压力的条件下进行测试,测试持续时间为1小时。

数据交互测试:记录从发送到接收的最短时间、最长时间以及最大抖动值。

 

测试结果:

hackbench压力测试下,Socket CAN的测试结果如下:

最短时间:374微秒

最长时间:1900000

最大抖动:144059微秒

 

在无压力测试条件下,结果如下:

最短时间:281微秒

最长时间:993微秒

最大抖动:127微秒

 

望获实时Linux优化方案

测试方案:采用望获实时Linux专用CAN程序,运行在绑定的隔离核心上,并将中断绑定至指定的CPU。

发送周期:设定1毫秒,在hackbench压力下进行为期1小时的测试。

数据交互测试:记录从发送到接收的最短时间、最长时间以及最大抖动值。

1805041438064a44584f96d93ce43735(1)(1)(2).jpg

 

测试结果:

最短时间:128微秒

最长时间:147微秒

最大抖动:12微秒

 

从测试结果来看,基于用户态直接与硬件交互的CAN通信方案在实时性上显著优于传统的Socket CAN方案。该方案通过绕过操作系统直接访问硬件寄存器,减少了上下文切换和资源开销,从而降低数据传输延迟。这种性能提升对工业自动化、汽车电子和机器人系统等需要快速响应的应用至关重要。这些领域要求系统在极短时间内处理事件,以确保正常运行和安全性。

该方案将数据交互控制权置于用户态程序,减少了系统调用开销,提升了效率和系统可靠性。测试数据显示,该方案在最短消息传递时间和最大抖动等关键指标上优于传统方案,适用于高性能需求场景。

研究为更高效的CAN通信系统提供了新的视角与解决方案,推动了嵌入式系统中CAN通信技术的发展,并为未来在其他领域的应用创造了新的可能性。随着行业对实时性能需求的提升,该方案有望在更多领域得到验证。

 

为了让更多企业用户亲身体验望获实时Linux带来的卓越性能和实时性优势,望获实时Linux官网特别推出了限时免费下载镜像试用活动。立即点击下方链接https://www.onewos.com/,只需简单几步操作,即可获得望获实时Linux V2正式版的软件功能体验。

上一篇:AI赋能半导体厂务能源管理,协同减碳共赴可持续未来 施耐德电气亮相SEMICON China 2025 下一篇:罗克韦尔自动化推出更智能、更安全的 M100 电子式电机启动器,革新电机控制技术
最新资讯

光纤感应头

货期:2-8周

价格¥ 0.00

绝对值编码器

货期:2-8周

价格¥ 0.00

测速发电机

货期:2-8周

价格¥ 0.00

联轴器

货期:2-8周

价格¥ 0.00

安装支架

货期:暂无

价格¥ 0.00

联轴器

货期:2-8周

价格¥ 371.00

安装配件

货期:2-8周

价格¥ 0.00