技术文章—CAN接口异常分析指南

教育培训 阅读(1656)

   15:07:31 科技圈在这里

  CAN总线应用环境复杂多样,可能会出现各种异常情况。本文列举了常见的CAN接口异常情况及解决方法,帮您更加高效地分析及解决CAN接口应用问题。

  常见异常及解决方法

  1、两个节点近距离测试,低波特率通信正常,高波特率无法通信。

  可能原因:未加终端电阻。由于CAN收发芯片内部CANH、CANL引脚为开漏驱动,如图1,在显性状态期间,总线的寄生电容会被充电,而在恢复到隐性状态时,这些电容需要放电。如果CANH、CANL之间没有放置任何阻性负载,电容只能通过收发器内部阻值较大的差分电阻放电。如果放电速度过慢,就会出现通信问题。

  解决方法:增加终端电阻。

  

  图1 CAN收发器结构示意图

  2、组网节点数少,通信正常,增加节点后,通信异常。

  可能原因:总线电容过大。总线电容过大会影响CAN差分波形上升下降速度,如图2。

  解决方法:a. 检查CAN节点接口的外围电路,是否有外加电容、TVS管等器件,适当去除,以降低电容。b. 降低工作波特率。波特率降低可以延长位时间,减小电容的影响,但若电容过大,则不一定有效。

  

  图2 总线电容影响波形图

  3、应用中易损坏,更换模块后正常。

  可能原因:保护不足。CAN模块由于体积受限,内部保护电路等级不高。在一些环境恶劣的应用现场,干扰能量过大易造成损坏。

  解决方法:根据损坏情况适当增加保护电路。图3是推荐的典型保护电路图,电源端口有TVS保护,CAN接口有三级电路保护,可以抑制大能量的雷击浪涌。

  

  图3 典型保护电路

  4、5V模块匹配3.3V MCU,错误帧多或发不出数据。

  可能原因:电平不匹配。5V模块匹配3.3V MCU在测试中可能并无异常,但由于某些参数的微小变化,就会导致电平不能正常识别。图4标示了模块TXD输入高电平的最低值0.7VCC,如小于该值,则存在风险。

  解决方法:选择3.3V模块匹配3.3V MCU,或增加电平转换电路。

  

  图4 CAN模块输入参数

  5、近距离通信正常,远距离无法通信。

  可能原因:a. CAN速率过高。由于CAN总线的仲裁机理,其对延时有着非常严格的要求。线缆延时的存在,使得导线长度制约着实际应用中CAN的最高工作速率。CAN速率与通信距离成反比,速率越高,通信距离越短。b. 线缆阻抗大,远端信号幅值过低。

  解决方法:a.降低速率,或缩短总线长度,可参考图5线缆长度与波特率的关系。b.换用阻抗小的电线缆,或适当增大终端电阻值,可参考图6线缆长度与直流参数推荐。

  

  图5 线缆长度与波特率的关系

  

  图6 线缆长度与直流参数推荐

  通过测试定位问题

  当通过现有信息无法判断问题所在时,则需要对CAN接口进行测试,定位问题点。已推测出问题所在时,也可以对CAN接口进行测试,以验证推测与解决效果。

  1、阻抗测量

  在产品断电、或从PCB卸下后,使用数字万用表测量模块各引脚阻抗是否异常,如图7。若出现短路情况,说明模块或相关联电路有损坏现象。

  测试时,TXD、RXD、VCC以GND为参考;CANH、CANL以CANG为参考。

  

  图7 阻抗测量示意

  2、检测模块供电电压

  产品上电,使用数字万用表测量模块VCC-GND之间电压,电压应该在模块正常供电范围内,如图8。若电压值明显低于正常范围,且模块发热严重,则内部可能存在短路情况。若模块发热量正常(常规温升15℃),则需要检查外部供电电路是否异常。

  

  图8 供电测试示意图

  3、检测发送波形

  使用示波器测试TXD引脚,以及CANH、CANL的差分波形,检查波形的幅值大小、波特率、波形质量、TXD和CAN差分波形是否对应等,如图9、图10。

  

  图9 发送波形测试示意图

  

  图10 TXD与CAN差分波形

  4、检测接收波形

  使用示波器测试RXD引脚,以及CANH、CANL的差分波形,检查波形的幅值大小、波特率、波形质量、RXD和CAN差分波形是否对应等,如图11、图12。

  

  图11 接收波形测试示意图

  

  图12 CAN差分与RXD波形图

  5、检测CAN总线波形

  使用示波器测试CANH、CANL的波形,检查显性电平、隐性电平、位时间等参数是否正确。如图13、图14。

  

  图13 CAN总线波形测试示意图

  

  图14 CANH、CANL总线波形

  如果经过以上测试,均未发现CAN收发器异常情况,则可基本排除硬件问题,进一步分析需要进行软件层面的故障排查。

  CAN总线应用环境复杂多样,可能会出现各种异常情况。本文列举了常见的CAN接口异常情况及解决方法,帮您更加高效地分析及解决CAN接口应用问题。

  常见异常及解决方法

  1、两个节点近距离测试,低波特率通信正常,高波特率无法通信。

  可能原因:未加终端电阻。由于CAN收发芯片内部CANH、CANL引脚为开漏驱动,如图1,在显性状态期间,总线的寄生电容会被充电,而在恢复到隐性状态时,这些电容需要放电。如果CANH、CANL之间没有放置任何阻性负载,电容只能通过收发器内部阻值较大的差分电阻放电。如果放电速度过慢,就会出现通信问题。

  解决方法:增加终端电阻。

  

  图1 CAN收发器结构示意图

  2、组网节点数少,通信正常,增加节点后,通信异常。

  可能原因:总线电容过大。总线电容过大会影响CAN差分波形上升下降速度,如图2。

  解决方法:a. 检查CAN节点接口的外围电路,是否有外加电容、TVS管等器件,适当去除,以降低电容。b. 降低工作波特率。波特率降低可以延长位时间,减小电容的影响,但若电容过大,则不一定有效。

  

  图2 总线电容影响波形图

  3、应用中易损坏,更换模块后正常。

  可能原因:保护不足。CAN模块由于体积受限,内部保护电路等级不高。在一些环境恶劣的应用现场,干扰能量过大易造成损坏。

  解决方法:根据损坏情况适当增加保护电路。图3是推荐的典型保护电路图,电源端口有TVS保护,CAN接口有三级电路保护,可以抑制大能量的雷击浪涌。

  

  图3 典型保护电路

  4、5V模块匹配3.3V MCU,错误帧多或发不出数据。

  可能原因:电平不匹配。5V模块匹配3.3V MCU在测试中可能并无异常,但由于某些参数的微小变化,就会导致电平不能正常识别。图4标示了模块TXD输入高电平的最低值0.7VCC,如小于该值,则存在风险。

  解决方法:选择3.3V模块匹配3.3V MCU,或增加电平转换电路。

  

  图4 CAN模块输入参数

  5、近距离通信正常,远距离无法通信。

  可能原因:a. CAN速率过高。由于CAN总线的仲裁机理,其对延时有着非常严格的要求。线缆延时的存在,使得导线长度制约着实际应用中CAN的最高工作速率。CAN速率与通信距离成反比,速率越高,通信距离越短。b. 线缆阻抗大,远端信号幅值过低。

  解决方法:a.降低速率,或缩短总线长度,可参考图5线缆长度与波特率的关系。b.换用阻抗小的电线缆,或适当增大终端电阻值,可参考图6线缆长度与直流参数推荐。

  

  图5 线缆长度与波特率的关系

  

  图6 线缆长度与直流参数推荐

  通过测试定位问题

  当通过现有信息无法判断问题所在时,则需要对CAN接口进行测试,定位问题点。已推测出问题所在时,也可以对CAN接口进行测试,以验证推测与解决效果。

  1、阻抗测量

  在产品断电、或从PCB卸下后,使用数字万用表测量模块各引脚阻抗是否异常,如图7。若出现短路情况,说明模块或相关联电路有损坏现象。

  测试时,TXD、RXD、VCC以GND为参考;CANH、CANL以CANG为参考。

  

  图7 阻抗测量示意

  2、检测模块供电电压

  产品上电,使用数字万用表测量模块VCC-GND之间电压,电压应该在模块正常供电范围内,如图8。若电压值明显低于正常范围,且模块发热严重,则内部可能存在短路情况。若模块发热量正常(常规温升15℃),则需要检查外部供电电路是否异常。

  

  图8 供电测试示意图

  3、检测发送波形

  使用示波器测试TXD引脚,以及CANH、CANL的差分波形,检查波形的幅值大小、波特率、波形质量、TXD和CAN差分波形是否对应等,如图9、图10。

  

  图9 发送波形测试示意图

  

  图10 TXD与CAN差分波形

  4、检测接收波形

  使用示波器测试RXD引脚,以及CANH、CANL的差分波形,检查波形的幅值大小、波特率、波形质量、RXD和CAN差分波形是否对应等,如图11、图12。

  

  图11 接收波形测试示意图

  

  图12 CAN差分与RXD波形图

  5、检测CAN总线波形

  使用示波器测试CANH、CANL的波形,检查显性电平、隐性电平、位时间等参数是否正确。如图13、图14。

  

  图13 CAN总线波形测试示意图

  

  图14 CANH、CANL总线波形

  如果经过以上测试,均未发现CAN收发器异常情况,则可基本排除硬件问题,进一步分析需要进行软件层面的故障排查。

达到当天最大量

——