1、常见的CAN通信错误类型
位错误指的是CAN总线传输中,某个节点接收到的位与发送节点发送的位不一致。通常是由于信号干扰、噪声或时钟同步问题引起的。
常见原因:电磁干扰(EMI)、时钟偏移、物理连接问题(如电缆老化、接触不良)。
排查技巧:
帧格式错误发生在数据帧的结构部分不符合CAN协议标准时。例如,数据长度字段错误,CRC校验失败等。
常见原因:硬件或软件错误、数据解析问题、协议不匹配。
排查技巧:
CRC错误发生在数据传输过程中,接收端计算出的CRC值与发送端计算的CRC值不匹配时。
常见原因:通信线路噪声、信号干扰、时序错误。
排查技巧:
当CAN总线上的节点未能正确接收到某个数据帧的确认信号时,会发生确认错误。发送节点发送的消息没有被接收节点确认。
常见原因:接收节点无法正确接收消息(由于硬件问题、负载过重等),或者接收节点超时未发送确认信号。
排查技巧:
总线错误通常表示CAN总线处于异常状态,可能由于某些节点的错误状态或总线冲突引起。
常见原因:总线终端电阻不匹配、多个设备同时驱动总线、硬件故障、物理层问题。
排查技巧:
过载错误发生在CAN控制器因接收到过多的数据帧或过快的帧而无法及时处理时。CAN控制器会进入过载错误状态,暂时停止数据传输。
常见原因:CAN总线上的节点发送数据过于频繁,导致某些节点无法及时处理。
排查技巧:
在CAN协议中,如果连续5个相同的位值(例如5个“1”或5个“0”)在数据中出现时,会插入反码位(stuff bit)。冗余错误指的是反码位没有按规范插入,导致数据出错。
常见原因:硬件故障或协议实现不当。
排查技巧:
2、故障排查的常用工具
用于查看CAN信号的波形,可以分析信号质量、时序、噪声干扰等问题。
检查CANH、CANL信号的电压波形,确认是否符合电气规范(如电平高低、边缘清晰度)。
可以监控和记录CAN总线的通信数据,分析每一帧的内容,帮助发现帧格式错误、CRC错误、位错误等问题。
常用的工具有Vector CANoe、PEAK System的PCAN-USB等。
用于检测总线上的通信协议是否符合标准,并排除协议级错误。
该工具还可以帮助分析总线的负载情况、发送频率等。
大多数CAN控制器都提供了硬件错误诊断功能,可以通过诊断工具查询错误信息(如错误计数器、总线状态等)。
3、排查流程
确保CAN线缆连接牢固,终端电阻正确安装(120Ω)。
检查节点的电源和地线,确保稳定。
使用CAN分析仪或诊断工具获取CAN错误状态信息,查看错误帧类型及其频率。
根据错误码确定问题类型(如位错误、帧格式错误等)。
分析每个节点的通信状态,检查是否有节点因过载或硬件故障导致错误。
可以尝试暂时移除一个节点,排查问题是否仍然存在。
使用示波器查看CAN总线的波形,检查是否有干扰或噪声。
确认时序是否符合规范,边缘是否清晰。
如果出现过多的CRC错误或同步问题,尝试调整波特率,减少信号误差。
如果问题复杂,逐步排除每个可能的故障点。例如,从硬件连接到软件协议实现,从物理层到应用层逐一排查。
掌握CAN协议的基本原理和常见错误类型,将有助于在开发和调试过程中快速解决问题。