CAN总线作为一种常用的通信协议,在汽车、工业自动化等领域得到广泛应用。然而,由于各种原因,CAN总线在使用过程中可能会出现各种故障,本文将继续讲解CAN总线应用过程中的常见问题和解决办法。

低波特率通信正常,高波特率无法通信

控制器配置低波特率通信正常而提高通信速率后无法通信的问题,主要是由于终端电阻未匹配导致的。CAN收发器芯片内部的CAN线CANH、CANL引脚是开漏结构,如下图1,总线上的寄生电容在显性状态时会被充电,而从显性状态切换到隐性状态的时候,总线上的电容要放电。如果CANH、CANL之间没有匹配电阻或者匹配的终端电阻太大,就会导致电容上的电荷放电速度过慢,从而在下降沿出现边沿下降过缓的现象,如图2,进而导致控制无法采到正确的电平,引发通信问题。

CAN总线应用过程中的常见问题和解决办法-86IC网

图1、CAN收发器芯片内部CANH、CANL结构

CAN总线应用过程中的常见问题和解决办法-86IC网

图2、显性状态切换到隐性状态边沿缓慢

解决方法

匹配适当的终端电阻;

推荐使用思瑞浦的TPT1462,支持主动隐性,在TXD拉高时显性状态可快速切换至隐性状态,保证通信正常。

总线电容过大导致的通讯异常

CAN收发器为了实现CAN的仲裁与错误处理,采用单向驱动结构,即CAN波形的上升沿有驱动,而下降沿是通过整条总线与终端电阻放电产生的,所以终端电阻的第一作用是放电。CAN节点及CAN线束的电容会影响整个网络的电容,电容越大,下降边沿越缓,导致接收节点发生位采样错误,从而产生错误帧。

解决方法

检查CAN总线上是否有外加电容、是否有保护器件(TVS等)的寄生电容过大等问题,适当去除,以降低电容,建议将单个CAN节点电容控制在 40pF~100pF范围内;

降低工作波特率,波特率降低可以延长位时间,减小电容的影响,但若电容过大,则不一定有效;

推荐使用支持CAN SIC的TPT1462,主动隐性功能可保证信号的有效脉宽。

CAN总线波形出现明显的共模震荡

共模振荡通常是由于传输线缆和PCB布局走线会耦合感性负载,而信号在感性负载下传输会出现信号共模抖动,可修改终端电阻中点的对地split电容调整信号质量,调整范围1nF~100nF,推荐值4.7nF。

另外,TPT1044、TPT1057和TPT1462都是思瑞浦基于自主设计对称性调节模块专利技术的车规级CAN收发器芯片,可有效调节总线共模,确保差分输出的对称性,即使不增加Split电容,也可以达到传统CAN收发器增加Split后的效果。

CAN总线应用过程中的常见问题和解决办法-86IC网

图3、调整split电容或更换TPT1044、TPT1057、TPT1462可有效改善信号质量

CAN总线应用过程中的常见问题和解决办法-86IC网

图4、无split电容时共模抖动

CAN总线应用过程中的常见问题和解决办法-86IC网

图5、有split电容下共模无抖动

CAN总线应用过程中的常见问题和解决办法-86IC网

图6、TPT1044不增加Split电容下共模无抖动

总线干扰过大问题

CAN总线虽然有强大的抗干扰和纠错重发机制,但目前CAN被大量应用于新能源汽车、轨道交通、医疗、煤矿、电机驱动等行业,而这些场合的电磁环境比较复杂,所以如何抗干扰是工程师最为关心的话题。

为此可采用提高CAN双绞程度、加单双屏蔽层、使用CAN隔离模块、弱电远离强电、优化布线等方式以提高CAN通信抗干扰能力。同样在采用不合理的组网方式时,也可能会导致信号反射严重引起信号振铃,在总线产生振铃时,其总线差模信号会反复在显性电平和隐性电平阈值振荡,导致RXD产生误翻转,从而使接收数据受到干扰。

思瑞浦推出基于其自主创新设计振铃抑制电路专利的车规级CAN SIC(信号改善功能,Signal Improvement Capability)TPT1462Q芯片,可有效抑制总线振铃,允许工程师在多节点、复杂拓扑情况下有效减少总线中的信号反射,降低振铃现象发生的概率,同时TPT1462Q具有国际领先的抗干扰能力,即使在极其恶劣的电磁环境中,仍能维持CAN正常通信,为汽车安全通讯奠定坚实的基础。

CAN总线应用过程中的常见问题和解决办法-86IC网

图7、常规CAN总线振铃干扰波形

CAN总线应用过程中的常见问题和解决办法-86IC网

图8、CAN SIC振铃抑制对比波形

总线错误状态和分析

按照CAN协议的规定,CAN总线上的节点始终处于以下三种状态之一:

主动错误状态;

被动错误状态;

总线关闭状态;

这些状态依靠发送错误计数和接收错误计数来管理,错误类型包括位错误、ACK错误、填充错误、CRC错误、格式错误,根据计数值决定进入何种状态。错误状态和计数值的关系如下图所示。

CAN总线应用过程中的常见问题和解决办法-86IC网

图9、单元的错误状态

节点处于主动错误状态下检测到非法帧格式会主动输出错误帧,错误帧由6个显性位和8个隐性位组成;利用该特性可以使用示波器捕捉错误帧波形,分析错误类型和原因。

例如CAN的仲裁域波特率为500kbps时,以CANH触发为例。选择触发方式为脉宽触发,触发脉宽选择>11μs(保证大于5个连续显性位),触发电平>2.5V,即可抓取错误帧波形。

CAN总线应用过程中的常见问题和解决办法-86IC网

图10、错误帧波形