CAN协议的错误类型有哪些


CAN(Controller Area Network)协议中定义了多种错误类型,这些错误类型有助于确保网络通信的可靠性和稳定性。以下是CAN协议中常见的错误类型:
一、位错误(Bit Error)
定义:节点在发送信号时,会将自己发送到总线上的电平同时与从总线回读到的电平进行比较,如果内容不一致,就会产生位错误。
示例:发送节点发送0,但检测到总线上的电平为1,即为位错误。
二、应答错误(ACK Error)
定义:发送节点在总线发送一帧报文后,如果其他节点接收了该报文,就要在该帧ACK段对应时间段向总线发送一个显性位来应答。发送节点在ACK段从总线回读到一个显性位,如果在ACK段时间段内没有回读到显性位,那么发送节点就会检测到一个ACK应答错误,表示没有一个节点成功接收该帧报文。
示例:发送节点发送了一帧报文,但在ACK段没有收到任何节点的应答信号(即一直为0),则触发ACK错误。
三、填充错误(Stuff Error)
定义:在需要正常位填充的帧位置里检测到连续六个同性位(即数据帧连续6位都是相同的电平时),就会检测到一个填充错误。
示例:CAN报文发送时,按照规则每5个相同位应填充1个相反位,若填充的非相反位,则触发填充错误。
四、CRC错误(CRC Error)
定义:每个CAN报文都包含一个循环冗余校验(CRC校验)。如果接收器的CRC计算与发送器的CRC不匹配,接收器就会将其检测为CRC错误。
示例:接收节点计算的CRC值与发送节点传输的CRC值不一致,则触发CRC错误。
五、格式错误(Format Error)
定义:在一帧报文里,如果在必须发送特定值的区域内检测到了非法值,就会检测到一个格式错误。这些特定值区域通常包括CRC界定符、ACK界定符、帧结束等。
示例:如CRC界定符、ACK界定符、帧结束都是隐性位,若检测到显性位即为格式错误。但需要注意的是,接收节点在帧结束EOF最后一位检测到显性位,不认为是格式错误,而认为是超载帧的开始;而发送节点在此时会认为是格式错误。
这些错误类型共同构成了CAN协议中的错误检测机制,有助于确保网络通信的准确性和可靠性。当检测到错误时,CAN节点会采取相应的行动,如发送错误帧、记录错误计数等,以维护网络的稳定性和可靠性。
责任编辑:Pan
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。