CAN通信错误帧分析
五大错误帧位错误、填充错误、CRC错误、格式错误、应答错误一、位错误1、表现形式发送节点或者接收节点发送某个位且该位为隐性。但在回读时总线上是显性该错误即为位错误。2、产生原因①物理层故障线束损坏、连接器问题或终端电阻不匹配②电磁干扰外部电磁源可能干扰CAN信号导致位错误不过这种可能性比较低③发送节点的硬件故障收发器损坏导致无法正确驱动总线④总线上的冲入如果有两个或两个以上的节点同时尝试发送显性位就会导致总线上的冲突二、填充错误1、表现形式can通信机制中连续出现5个同极性的位后需要自动插入一个相反极性的位即为填充但是发送节点或接收节点在总线上检测到连续的六个同极性的位该错误即为填充错误。2、产生原因常见原因波特率设置错误、采样点设置错误①硬件故障发送节点的硬件可能在传输过程中出现故障导致位填充规则被违反②外部干扰虽然外部干扰通常会导致位错误但在某些情况下它也可能导致位填充规则被违反。③网络负载过重当网络上的通信量过大超出了网络的处理能力时可能会导致数据传输错误包括填充错误。④协议错误如果网络上的设备没有正确地遵守CAN协议例如错误地实现了位填充⑤软件配置错误不当的软件配置如错误的过滤器设置、错误的帧格式或位定时设置都可能导致填充错误。⑥物理层涉及问题如果CAN网络的物理布局设计不当例如总线太长或网络分支太多也可能引起通信问题三、CRC错误1、表现形式CAN报文中有个CRC序列用于检测数据在传输过程中是否发生错误接收节点会对发送节点计算的CRC值进行比较如果不一致则出现CRC错误。2、产生原因①总线干扰电磁干扰、信号衰减或其他总线上的噪声可能导致数据位在传输过程中发生改变②硬件故障发送或接收节点的硬件可能导致数据在传输过程中损坏③软件错误发送节点在计算CRC时可能发生了软件错误导致发送的CRC字段不正确四、格式错误1、表现形式接收节点在接收到帧时检测到某个段不符合规定比如帧结束位不是隐性位或者应答场的格式错误等就会检测到格式错误。2、产生原因①发送节点的软件错误在构建数据帧时软件未能正确设置字段的长度或内容②硬件故障发送节点的硬件可能在处理数据帧时出现故障导致帧格式不正确③协议配置错误节点可能被错误地配置位使用非标准的帧格式五、ACK错误1、表现形式发送节点在发送完帧后会在应答场中监测是否接收到应答信号。如果发送节点在应答场中没有检测到显性位即没有接收到应答信号则认为出现应答错误。2、产生原因①接收节点故障接收节点可能由于硬件故障或软件错误而无法发送应答位②接收节点忙接收节点可能正处于忙碌状态无法在ACK槽期间响应③总线问题上的信号质量问题可能导致节点A无法检测节点B的应答位。六、总结错误帧与检测单元的关系发送单位接收单位位错误√√填充错误√√CRC错误/√格式错误/√ACK错误√/