CAN错误帧分类
CAN错误帧根据产生错误的节点类型可以分为发送错误和接收错误两大类,根据错误产生的原因则可以分为位错误、填充错误、ACK错误、格式错误以及CRC错误,图中为各类错误帧所检测范围的分布。
位错误:回读总线位状态与自身发送的位不同,发送节点发送错误帧,需要注意仲裁段和ACK位发送隐性位但是回读到显性位除外。
填充错误:违反位填充规则,发送节点在发送报文时遇到5个相同极性位后需要插入1个极性相反的位,接收节点再接收报文时则需要删除填充位。如果接收到的报文存在6个相同极性的位,则第6个位便是出现了填充错误,需要在该位后发送错误帧。
ACK错误:当发送节点发送报文后,在ACK位没有在总线上检测到其他节点发送的显性电平。
格式错误:固定格式位场(如CRC界定符、ACK界定符、EOF等)与协议标准定义的显隐性不同则会被检测为非法位触发格式错误,发送和接收节点都会发送错误帧。
CRC错误:接收节点计算的CRC序列与接收到报文中的CRC序列不同。