CAN总线错误类型和故障界定

时间:2017-11-10

  CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并终成为国际标准(ISO11898)。是国际上应用广泛的现场总线之一。在建立之初,CAN总线就定位于汽车内部的现场总线,具有传输速度快、可靠性高、灵活性强等优点。上世纪90年代CAN总线开始在汽车电子行业内逐步推广,目前已成为汽车电子行业的通信协议,并且在医疗设备、工业生产、楼宇设施、交通运输等领域中取得了广泛的应用。

 CAN总线错误检测

  CAN总线协议定义了 5种错误类型用于监测总线上的数据传输。这五种错误包括:

CAN总线错误类型和故障界定

  1.位错误(Bit Error):

  CAN总线上的节点在发送数据的同时也在检测总线上的电平。如果在仲裁域之外,所发送的数据与节点监测到的数据不一致,则CAN总线产生了位错误。但是,如果在发送ACK段或者被动错误标志时,节点检测到总线上电平与发送值不一致,并不判定产生了位错误。

  2.填充规则错误(Stuff Error):

  在CAN总线传输中,报文的侦起始、仲裁域、控制域、数据域以及CRC校验部分只要连续出现五个相同的位就需要额外插入一个相反的位,这是CAN总线位填充的机制。在CAN总线通信中,如果一个节点检测到六个连续相同的电平就判断总线出现了位填充错误。

  3.CRC校验(CRCError):

  CAN总线的数据帧自带了CRC校验,在发送数据的同时也计算这一帧的CRC校验码,将校验码在数据帧的末尾部分发送。接收节点接收到数据帧后计算接收到的数据帧中数据域的CRC码,并与接收到的CRC校验码比较以确定接收到的数据是否准确,如果不正确,则出现了 CRC校验错误。

  4.格式错误(Form Error):

  在固定格式的位场中出现了非法位,比如,在本该是隐性位的CRC界定符中出现了显性电平,则监控节点判断出现了格式错误。

  5.应答错误(Acknowledgement Error ):

  在CAN总线传输中,发送节点发送的应答场为隐性位,接收节点需要在应答场中向总线发送显性位覆盖隐性位以表示接受完成。如果发送节点监测到帧的应答场仍然是隐性位,则表明出现了应答错误,没有节点接收到数据,发送失败。

  CAN总线错误界定

CAN总线错误类型和故障界定

  当节点检测到一个错误之后,会向总线发送错误帧,同时本地错误计数器递增。在CAN总线上的每个节点都设有两个错误寄存器:接收错误计数器和发送错误计数器,分别用来计数接收和发送错误。检测到错误,相应的错误计数器递增;成功发送或者接收一愤消息,相应的错误计数器递减直到为0。当错误计数器小于127时,节点处于主动错误状态,错误计数器在127到255时,节点处于被动错误状态,错误计数器超过255时,节点进入离线状态,处于离线状态的节点将不再参与总线上的数据传输。

 CAN总线错误标定

  检测到错误条件的站通过发送错误标志指示错误。对于错误主动节点,错误信息为主动错误标志;对于错误被动的节点,错误信息为被动错误标志。站检测到的错误无论是位错误、填充错误、形势错误、还是应答错误,这个站都会在下一位时发送错误标志信息。检测到CRC错误时,错误标志的发送开始于ACK界定符之后的位,除非其他错误标志已经开始发送。

上一篇:智能配电系统简介
下一篇:can总线分层结构及报文传输

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料