• 正文
  • 相关推荐
申请入驻 产业图谱

如何解决CAN通讯故障?原因分析与解决方法全攻略

06/17 11:00
1136
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

在日常工作中,我们经常收到客户的反馈,他们表示 CAN 卡无法正常通讯,这给工作带来了诸多不便。今天,就让我们深入探讨一下导致 CAN 卡通讯失败的常见原因,以及相应的解决方法。

  单个 CAN 设备发送失败

有些客户反映,即使只有一个 CAN 口在发送数据,且总线都未连接,仍然会出现发送失败的情况。这可能令人感到困惑,因为按照常理,只要发送端正常工作,似乎不应该出现这种问题。

然而,这正是 CAN 总线的独特之处。与常见的 232、485 总线不同,CAN 总线的收发器具备自我监测和纠错机制,无需额外的程序辅助。当单个设备发送数据时,发送失败的原因在于 CAN 收发器的 ACK 应答机制。在 CAN 控制器发送完数据的 crc 校验码后,它会检测“ack 位”是否呈现显性状态。这个 ACK 位必须由接收设备将电压差拉高至显性,否则发送端会认为发送失败。

这里有一个关键点需要特别注意:如果接收数据的 CAN 卡被设置为只听模式,那么它不会做出 ACK 回应,这同样会导致发送失败。因此,在排查此类问题时,务必检查接收端的设置,确保其处于正常工作模式,能够正确回应 ACK 信号。

 两个 CAN 设备对接但发送失败

还有一种常见的情况是,两个 CAN 设备都已正确对接,且波特率设置一致,但仍然无法正常发送数据。这种情况多发生在客户使用高波特率且总线较长时,尤其是没有使用终端电阻或仅使用了一个终端电阻的情况下。此时,如果使用示波器进行分析,会发现波形出现振铃现象,即波形不再呈现规整的矩形电信号上下波动。

这是由于总线较长时,末端缺乏设备消耗电能,导致信号反射形成浪涌。可以将总线想象成一条水管,当水流到达末端而无处可去时,就会产生回流。而通过在两个终端各添加一个 120 欧姆的电阻来消耗电能,就能有效消除这种浪涌现象,从而使通讯恢复正常。

 四个关键要点

综上所述,要确保 CAN 通讯成功,需要重点关注以下四个要点:

1. 接线正确:这是最基本的要求,只有确保所有线路连接无误,才能为正常通讯提供基础保障。

2. 波特率一致:两个 CAN 设备的波特率必须保持一致,否则会导致数据传输混乱,无法正确解读。

3. 对端设备有 ACK 响应:如前文所述,ACK 应答机制对于 CAN 通讯至关重要,接收端必须能够正确回应 ACK 信号,才能保证发送端确认数据已成功送达。

4. 终端电阻匹配:在长距离的 CAN 总线中,终端电阻的匹配对于信号的稳定传输起着关键作用。

合理配置终端电阻,可以有效避免信号反射和浪涌问题,确保通讯的可靠性。通过以上分析和解决方法,相信能够帮助大家更好地理解和解决 CAN 卡通讯失败的问题。

在实际工作中,只要严格按照这四个要点进行检查和配置,就能大大提高 CAN 通讯的成功率,避免因通讯故障而影响工作进度。

高性能以太网转CAN FD设备

CANFDNET-800U

CANFD与车载以太网

黑白名单模式

灵活连接扩展

 

致远电子

致远电子

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。收起

查看更多

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录