51Testing软件测试论坛

标题: 工程师必知:六大 CAN 错误帧原因 [打印本页]

作者: 乐哈哈yoyo    时间: 2024-7-12 15:14
标题: 工程师必知:六大 CAN 错误帧原因
在 CAN(Controller Area Network,控制器局域网络)通信中,错误帧的出现可能会导致数据传输错误、系统故障甚至整个网络瘫痪。作为工程师,深入了解 CAN 错误帧的产生原因至关重要。今天,就为大家总结一下六大 CAN 错误帧的原因。
原因一:位错误(Bit Error)
当节点将自己发送的位电平与总线上检测到的位电平不一致时,就会产生位错误。这可能是由于发送节点的硬件故障、电磁干扰或者是网络中的信号反射等原因导致的。

原因二:填充错误(Stuff Error)
CAN 协议规定,在相同极性的 5 位数据后,发送节点会自动插入一个补位。如果接收节点在应该检测到填充位的地方没有检测到,或者在不应该检测到填充位的地方检测到了填充位,就会产生填充错误。

原因三:CRC 错误(CRC Error)
发送节点在发送数据帧或远程帧时,会计算出一个循环冗余校验(CRC)值并附加在帧尾。接收节点接收到帧后,也会进行 CRC 计算。如果接收节点计算出的 CRC 值与接收到的 CRC 值不一致,就会产生 CRC 错误。这通常是由于数据在传输过程中发生了位翻转或者受到干扰导致的。

原因四:格式错误(Form Error)
当一个帧的固定格式(如帧起始、仲裁场、控制场、数据场、CRC 场、ACK 场和帧结束等)中任何一个部分不符合 CAN 协议规范时,就会产生格式错误。

原因五:ACK 错误(ACK Error)
发送节点在发送数据帧或远程帧时,会在 ACK 时隙内等待接收节点发送 ACK 信号。如果发送节点没有检测到 ACK 信号,就会产生 ACK 错误。这可能是由于接收节点没有正确接收到帧、接收节点故障或者是网络中的信号干扰等原因导致的。

原因六:超时错误(Timeout Error)
当发送节点在规定的时间内没有收到接收节点的应答信号,或者接收节点在规定的时间内没有接收到数据帧,就会产生超时错误。这通常是由于网络负载过重、节点故障或者是通信线路故障等原因导致的。

了解了这些 CAN 错误帧的产生原因,工程师们在设计、调试和维护 CAN 网络时就能更加有的放矢,快速定位和解决问题,确保 CAN 网络的稳定可靠运行。







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2