1. 错误类型
CAN协议定义了五种错误类型,包括位错误、ACK错误、填充错误、CRC错误和格式错误。
(1)位错误:当CAN节点发送的电平与监视的总线电平不一致时,产生位错误。在仲裁段、ACK槽和发送被动错误时,不产生位错误。
(2)ACK错误:在ACK槽时间内,发送CAN节点没有检测到显性位,即没有一个节点成功接收该帧报文,产生ACK错误。
(3)填充错误:在位填充原则作用的区域内(数据帧和远程帧的起始段~CRC段)检测到连续6个相同的状态位,产生填充错误。
(4)CRC错误:接收节点计算的CRC与发送节点发送的CRC不一致时,产生CRC错误。
(5)格式错误:在协议规定的具有特定值的区域内,检测到非法值,产生格式错误。协议规定了特定值的区域包括,数据帧和远程帧的CRC界定符、ACK界定符、错误帧界定符、过载帧界定符。
位错误、ACK错误、填充错误和格式错误在检测到错误的位的下一位开始发送错误帧;CRC错误在紧随的ACK界定符的后一位开始发送错误帧。