1)发送报文时,发送节点会根据特定的多项式计算数据帧的SOF位到数据域最后一位的校验和值,并将该值放入数据帧的CRC域,随数据帧一起广播到总线上 。
2)在接收到数据之后 , 接收节点应用相同的多项式来计算校验和值,并将其与接收到的校验和值进行比较 。如果两者一致 , 正常接收;如果不是,则丢弃该消息并发送一个错误帧来请求发送节点重新发送该消息 。
确认错误(确认错误)
接收方在收到消息后 , 将在ack响应位中给出一个明确的级别 。如果发送器检测到该位是隐性的,它将报告一个错误 。
格式错误(表单错误)
检测与固定格式的位段相反的格式时检测到的错误 , 如检测crc定界符和ack定界符以及eof区是否出现支配位 。
比特误差(比特误差)
将输出电平与总线电平(不包括填充位)进行比较,当两个电平不同时检测到错误 。如果发送了显性位 , 但总线是隐性位,则会报告错误 。
填充错误(填充器错误)
在需要进行位填充的段中,连续检测到6位相同电平时检测到的错误 。
CAN总线错误检测机制CAN总线上的每个节点控制器将检测消息是否出错 。如果节点发现消息有错,就会发送一个错误标志,从而中断总线上正常的数据传输 。总线上未发现原始消息错误的其他节点在收到错误标志后将采取必要的措施,如丢弃当前总线上的消息 。
CAN节点内有两种错误状态计数器:
1)TEC /Transmit Error Counter,发送错误状态计数器,出现一次错误该计数器值 82)REC /Receive Error Counter,接收错误状态计数器 , 出现一次错误该计数器值 13)消息成功发送或接收一次,对应的 TEC 或 REC 值相应 -1
算错
CAN规范定义了节点的三种错误状态:
1) 主动错误:正常状态,在此状态下,节点可以发送所有类型的帧,包括错误?。环⑾执砦蠛蠡岷芑鞫厣媳ù砦?。2)被动错误:节点可以发送除错误帧以外的所有?。籘EC or REC 计数超过127就进入此状态;此时,该节点发现错误后只会发送6个隐性位 , 不会把错误广播出去 。并且 , 发送连续帧时,中间必须间隔8bit的延缓时间 。3)总线关闭:节点被控制器从总线上隔离;或者TEC大于255,就会进入这个状态,需要重启 , 或者等待128个11位隐性位电平 。
CAN总线错误检测机制
推荐阅读
- ps字体边缘模糊处理 ps如何消除边缘锯齿
- 重庆乐尚装饰业主评价 乐尚装饰怎么样
- 什么开放四字成语
- 十个月宝宝的早教有哪些 10个月宝宝如何早教
- 脸上的雀斑怎么去掉最好的方法 脸上的雀斑怎么去掉
- 管理培训生面试
- 设计为什么不要去外包 外包公司为什么没人去
- 山东工艺美术学院和八大美院 山东工艺美术学院怎么样
- 朋友结婚送什么礼物合适 金婚送什么礼物好