以下是可能导致CAN通讯丢帧的常见原因及解决方案
两个节点的波特率计算参数不一致(如分频值、BS1/BS2时间段),建议:使用相同的波特率计算工具,确保时钟配置一致
当总线利用率超过70%时可能丢帧,建议降低发送频率或优化ID过滤设置
终端电阻缺失(120Ω)或接触不良,PCB布局问题导致信号反射(建议检查走线长度和匹配)
软件处理延迟,接收FIFO溢出(未及时读取邮箱),建议:优化中断服务程序,及时处理接收数据
未使用双绞线或屏蔽层接地不良,可以通过示波器观察总线波形质量
排查步骤建议:
先确认物理层波形正常
检查双方波特率寄存器配置值是否相同
测试低负载状态下是否仍会丢帧
启用错误中断监测错误计数器
调整总线波特率容差(建议控制在1%以内),并增加重发机制。
|