如何解决CAN总线超强干扰

CAN总线系统由一系列的网络节点通过总线相互连接组成,在实际应用中网络节点既是干扰源又是被干扰对象,尤其在超强干扰的情况下,如何使系统可靠运行成为一大难题。前段时间有个用户反馈说自己的设备启动后多个节点处于失控状态,用CANScope测试全是错误帧如图1所示。

11.jpg

图1  强干扰下的报文

随后让客户把测试的波形发来一看,是环境干扰惹的祸,如图2所示。

13.jpg

图2  强干扰下的波形

这种强干扰导致了帧错误增加,重发频繁,正确数据无法及时到达。所以如何解决CAN总线超强干扰呢,下面给您介绍一种方案吧。

一、  将CAN转为光纤传输

怎么能彻底解决强干扰带来的隐患呢?只要数据的传输不依赖电信号就能完全隔离掉干扰。光纤作为一种无法被电磁干扰的传输介质,我们可以把 CAN 容易受到干扰的部分使用光信号传输,增加CAN转光纤转换器。如图3所示,为使用致远电子的三台CANSwitch-AF2S2组合的光纤主干网络。

14.jpg

图3  使用光纤转换器实现光纤主干传输

实现上面的光纤传输使用的是CANSwitch-AF2S2集线器(Hub)功能,在此模式下的设备可以实现自组网,实现设备级联,只要通过软件配置好设备,CAN 总线就会按照规定进行转发到相应 CAN 口上。下面再介绍它的另一种功能——转换器(Converter)功能。

Converter(转换器)功能支持TCP Sever/TCP Client/UDP工作方式和灵活的拓扑结构,通过配置软件用户可以灵活的设定相关配置参数。典型应用如下:

● TCP Server  模式

在 TCP 服务器(TCP Server)模式下,CANSwitch-AF2S2 不会主动与其它设备连接。它始终等待客户端(TCP Client)的连接,在与客户端建立 TCP 连接后即可进行双向数据通信。建立通讯的过程如图4所示。

15.jpg

图4 TCP Sever 模式通讯示意图

● TCP Client  模式

在 TCP 客户端(TCP Client)模式下,CANSwitch-AF2S2 将主动与预先设定好的 TCP服务器连接。如果连接不成功,客户端将会根据设置的连接条件不断尝试与 TCP 服务器建立连接。在与 TCP 服务器端建立 TCP 连接后即可进行双向数据通信。建立通讯的过程如图5所示。

16.jpg

图5  TCP Clinet 模式通讯示意图

● UDP模式

UDP 模式使用 UDP 协议进行数据通信。UDP 是一种不基于连接的通信方式,它不能保证发往目标主机的数据包被正确接收,所以在对可靠性要求较高的场合需要通过上层的通信协议来保证数据正确,但UDP 方式可以提供比 TCP 方式更高的通信速度,以保证数据包的实时性。工作在这种方式下的设备,地位都是相等的,不存在服务器和客户端。通讯的过程如图6所示。

17.jpg

图6 UDP 模式通讯示意图

二、 一些硬件抗干扰的隔离与防护措施

1、使用TVS二极管

TVS二极管并联在信号线和信号地线之间,用来保护电缆受到雷击或静电放电时产生的浪涌高压。当 TVS 上的电压超过一定的幅度时,器件迅速导通,从而将浪涌能量泄放掉,并将电压的幅度限制在一定的范围内。在这里建议在 CANH、CANL信号线上使用两个 TVS管进行双向保护,如下图所示。

18.jpg

图7  TVS二极管防护

2、使用隔离收发器

如下图所示的CTM1051(A)HP模块内部集成高可靠的浪涌防护电路,静电放电抗扰度高达8kV,雷击浪涌抗扰度高达4kV,可有效解决工业现场因静电、浪涌干扰而导致的通讯异常问题。

19.jpg

图8  隔离收发器 

3、信号保护器

外接专用的信号保护器消除干扰,如 ZF-12Y2 消耗干扰强度或者是CANbridge 网桥做隔离。

20.jpg

图9  ZF系列防雷器

本资源为汽车CAN总线BusOff(总线关闭)检测与自动恢复功能的完整实现代码,适用于嵌入式汽车电子控制单元(ECU)开发。BusOff状态是CAN总线通信中常见的故障类型,通常由于物理层干扰硬件异常或网络负载过高引起。若不及时检测和恢复,将导致ECU间通信中断,影响整车功能安全和用户体验。 本资源基于状态机思想,结合快恢复与慢恢复策略,能够智能判断总线异常并自动切换恢复方式,兼顾恢复速度与系统稳定性。代码结构清晰,接口独立,便于集成到不同的项目中。主要功能包括: 1. 实时检测CAN总线BusOff状态; 2. 支持快恢复(多次快速尝试)与慢恢复(多次失败后延长恢复间隔); 3. BusOff计数与DTC(故障码)上报机制,便于后续诊断和维护; 4. 关键参数(如恢复次数、恢复时间)可灵活配置,适应不同车型和硬件平台; 5. 提供标准化的初始化、周期处理、状态查询等接口,便于上层应用调用。 本资源包含详细的头文件、源文件及接口说明文档,并附有详细的设计思路和关键代码讲解,适合汽车电子开发工程师、嵌入式软件开发者参考和二次开发。 如需移植,只需实现底层CAN驱动相关接口(如总线状态检测、通道初始化等),即可快速集成到您的项目中。 欢迎下载试用,如有问题或建议,欢迎留言交流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值