CAN总线错误处理.docx
《CAN总线错误处理.docx》由会员分享,可在线阅读,更多相关《CAN总线错误处理.docx(6页珍藏版)》请在第壹文秘上搜索。
1、CAN总线错误处理CAN怎样处理错误错误处理内建在CAN协议中,对CAN系统的运行十分重要。错误处理的目标是检测CAN总线上出现的报文中的错误,从而传送器可以重传出错的报文。总线上的每个CAN控制器都会尝试检测报文中的错误。如果发现错误,发现节点将传送一个错误标志,从而中断总线通信。其它节点将检测错误标志导致的错误(如果它们尚未检测到初始错误)并采取合适的措施(例如丢弃当前报文)。每个节点维护两个错误计数器:传送错误计数器和接收错误计数器。有几个规则规定这些计数器怎样增加和/或减少计数。总的来讲,检测到故障的传送器增加其传送错误计数器比侦听节点增加其接收错误计数器要快。这是因为,很有可能是传送
2、器发生了故障!当任何错误计数器增加到超过某个值时,节点将首先进入错误被动,也就是说,它在检测到错误时不会积极地阻止总线通信,然后离开总线,这意味着节点根本不参与总线通信。使用错误计数器,CAN节点不但可以检测故障,而且可以执行错误限制。错误检测机制CAN协议定义了五种以上不同的方法来检测错误。其中两种工作在位层次,另外三种工作在报文层次。位监视位填充帧检查应答检直循环冗余检查1 .位监视CAN总线上的每个传送器都会监视(也就是回读)传送的信号电平。如果真正读到的位电平与传送的位电平不同,会发出信号指示位错误(仲裁过程中不会发出位错误)。2 .位填充节点连续发送五个具有相同电平的位后,将在发送出
3、去的位流中加上第六个相反电平的位。接收方将删除这个额外的位。这样做是为了避免总线上出现过度的直流电成分,但它同时也给予了接收方检测错误的额外机会:如果总线上出现五个以上相同电平的连续位,会发出信号指示填充错误。3 .帧检查CAN报文的一些部分具有固定的格式,也就是说,标准明确定义了何种电平和何时出现这种电平(CRC定界符、ACK定界符、帧结束以及间歇,但是间歇还有一些另外的特殊错误检查规则)。如果一个CAN控制器在这些固定字段中的一个中检测到无效值,将发出组成错误。4 .应答检查总线上正确接收报文的所有节点(不管这些节点是否对报文内容感兴趣)预期将在报文中所谓的应答时隙中发送一个显性电平。这是
4、,发送方将发送一个隐性电平。如果发送方无法在应答时隙中检测到显性电平,会发出应答错误的信号。5 .循环冗余检查每个报文都包含一个15位的循环冗余校验和(CRC)。节点如果在报文中检测到与自己计算所得不同的CRCz将发出CRC错误的信号。错误限制机制总线上的每个CAN控制器都将在每个报文中尝试检测以上列出的错误。如果发现错误,发现节点将发送一个错误标志,从而停止总线通信。其它节点将检测到由错误标志引发的错误(如果它们尚未检测到原始错误)并采取恰当的措施(也就是丢弃当前报文)。每个节点维护两个错误计数器:传送错误计数器和接收错误计数器。有几个规则规定这些计数器怎样增加和/或减少计数。总的来讲,检测
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN 总线 错误 处理
