【转】CAN总线学习笔记(3)- CAN协议错误帧

依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加油!

1 错误帧的帧结构

在发送和接收报文时,总线上的节点如果检测出了错误,那么该节点就会发送错误帧,通知总线上的节点,自己出错了。
错误帧由错误标志错误界定符两个部分组成。
错误帧

  • 主动错误标志:6个连续的显性位;
  • 被动错误标志:6个连续的隐性位;
  • 错误界定符:8个连续的隐性位。

可以看到在错误标志之后还有0~6位的错误标志重叠,这一段最低有0个位,最多有6个位,关于这一段是怎么形成的,将在下文中解释。

2 错误检测

2.1 位填充原则

在了解CAN总线中的错误检测之前,首先需要了解什么是位填充。
CAN协议中规定,当相同极性的电平持续五位时,则添加一个极性相反的位
位填充

  • 对于发送节点而言:
    在发送数据帧遥控帧时,对于SOF~CRC(除去CRC界定符) 之间的位流,相同极性的电平如果持续5位,那么在下一个位插入一个与之前5位反型的电平;
  • 对于接收节点而言:
    在接收数据帧遥控帧时,对于**SOF~CRC(除去CRC界定符)**之间的位流,相同极性的电平如果持续5位,那么需要删除下一位再接收。

位填充作用域

Tips: 注意:填充位的添加和删除是由发送节点和接收节点完成的,CAN-BUS只负责传输,不会操纵信号。

2.2 错误的种类

在CAN总线通信中,一共有五种错误:

  • 位错误
  • ACK错误
  • 填充错误
  • CRC错误
  • 格式错误

2.2.1 位错误(Bit Check Error)

你可能感兴趣的:(#,CAN总线学习笔记)