CAN总线错误检测机制详解

需积分: 45 7 下载量 177 浏览量 更新于2024-08-10 收藏 370KB PDF 举报
"CAN总线协议的错误检测机制是确保数据通信可靠性的关键部分。它涉及到五种主要的错误类型,这些错误可能在通信过程中发生,但彼此之间并不互斥。" 在CAN总线协议中,错误处理是保证通信质量的重要环节。以下是这五种错误类型的详细解释: 1. **位错误(Bit Error)**:位错误发生在发送器在发送位的同时监控总线,发现所发送的位与监测到的位不一致时。不过,仲裁场的填充位流和应答间隙发送的“隐性”位期间,若监测到“显性”位,通常不会被视为位错误。同样,如果发送器发送被动错误标志时检测到“显性”位,也不会记录为位错误。 2. **填充错误(Stuff Error)**:CAN总线使用位填充技术,如果连续出现六个相同的位(无论是0还是1),则会检测到填充错误。这是为了防止长串相同位导致的同步问题。 3. **CRC错误(CRC Error)**:循环冗余校验(CRC)是一种用于检测数据传输错误的校验方法。发送器和接收器都会执行相同的CRC计算,如果接收器计算出的CRC值与接收到的CRC序列不匹配,就表明存在CRC错误。 4. **形式错误(Form Error)**:形式错误发生在固定格式的位场中出现非法位,即不应出现的位配置。值得注意的是,接收器在帧末尾后的显性位不被视为帧错误。 5. **应答错误(Acknowledgment Error)**:在应答间隙(ACK SLOT)期间,如果接收器没有返回预期的“显性”位,即没有正确响应,发送器会检测到应答错误。 这些错误检测机制使得CAN总线能够自我诊断并及时报告问题,从而提高了系统的健壮性和可靠性。在CAN 2.0版本中,还引入了两种报文格式,即标准格式和扩展格式,以满足不同应用场景的需求。标准格式保留11位标识符,而扩展格式则提供29位标识符,扩展了地址范围。同时,CAN 2.0兼容设备能够处理这两种格式的报文,确保了网络中的兼容性。