CAN总线的通信错误及其处理

在CAN总线中存在5种错误类型,它们互相并不排斥,下面简单介绍一下它们的区别、产生的原因及处理方法。
  位错误:向总线送出一位的某个节点同时也在监视总线,当监视到总线位的电平与送出的电平不同时9则在该位时刻检测到一个位错误。但是在仲裁区的填充位流期间或应答间隙送出隐性位而检测到显性位时,不认为是错误位。送出认可错误标注的发送器,在检测到显性位时也不认为是错误位。
  填充错误:在使用位填充方法进行编码的报文中,出现了第6个连续相同的位电平时,将检 测出一个填充错误。
  CRC错误:CRC序列是由发送器CRC计算的结果组成的。接收器以与发送器相同的方法计算CRC。如果计算的结果与接收到的CRC序列不同,则检测出一个CRC错误。
  形式错误: 当固定形式的位区中出现一个或多个非法位时,则检测到一个形式错误。
  应答错误:在应答间隙,发送器未检测到显性位时,则由它检测出一个应答错误。
  检测到出错条件的节点通过发送错误标志进行标定。当任何节点检测出位错误、填充错误、形式错误或应答错误时,由该节点在下一位开始发送出错误标志。
  当检测到CRC错误时。出错标志在应答界定符后面那一位开始发送.除非其他出错条件的错误标志已经开始发送。
  在CAN总线中,任何一个单元可能处于下列3种故障状态之一:错误激活状态(ErrorActive)、错误认可状态(Error Pasitive)和总线关闭状态(Bus off)。
  错误激活单元可以照常参与总线通信,并且当检测到错误时,送出一个活动错误标志。错误 认可节点可参与总线通信,但是不允许送出活动错误标志。当其检测到错误时,只能送出认可错 误标志,并且发送后仍为错误认可状态,直到下一次发送初始化。总线关闭状态不允许单元对总 线有任何影响。
  为了界定故障,在每个总线单元中都设有2个计数:发送出错计数和接收出错计数。这些 计数按照下列规则进行。
  (1)接收器检查出错误时,接收器错误计数器加1,除非所有检测错误是发送活动错误标志或超载标志期间的位错误。
  (2)接收器在送出错误标志后的第一位检查出显性位时,错误计数器加8。
  (3)发送器送出一个错误标志时,发送器错误计数器加8。有两种情况例外:其一是如果发 送器为错误认可,由于未检测到显性位应答或检测到应答错误,并且在送出其认可错误标志时,未检测到显性位;另外一种情况是如果仲裁器件产生填充错误,发送器送出一个隐性位错误标志,而检测到的是显性位。除以上两种情况外,发送器错误计数器计数不改变。
  (4)发送器送出一个活动错误标志或超载标志时,检测到位错误,则发送器错误计数器加8。
  (5)在送出活动镨误标志、认可错误标志或超载错误标志后,任何节点都最多允许连续7个显性位。在检测到第11个连续显性位后,或紧随认可错误标志检测到第8个连续的显性位,以及附加的8个连续的显性位的每个序列后,每个发送器的发送错误计数都加8,并且每个接收器的接收错误计数也加8。
  (6)报文成功发送后,发送错误计数减1,除非计数值已经为0。
  (7)报文成功发送后,如果接收错误计数处于1~197之间,则其值减1;如果接收错误计数为0,则仍保持为0;如果大于127,则将其值记为119~127之间的某个数值。
  (8)当发送错误计数等于或大于128,或接收错误汁数等于或大于128时,节点进人错误认,可状态,节点送出一个活动错误标志。
  (9)当发送错误计数器大于或等于256时,节点进人总线关闭状态。
  (1O)当发送错误计数和接收错误计数均小于或等于127时,错误认可节点再次变为错误激活节点。
  (11)在检测到总线上11个连续的隐性位发送128次后,总线关闭节点将变为2个错误计数器均为0的错误激活节点。
  (12)当错误计数器数值大于96时,说明总线被严重干扰。
  如果系统启动期间仅有1个节点挂在总线上,此节点发出报文后,将得不到应答,检查出错误并重复该报文,此时该节点可以变为错误认可节点,但不会因此关闭总线。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CAN总线的规范中定义了冲击电流和持续时间的限制,以确保系统的可靠性和稳定性。以下是一般情况下CAN总线允许的冲击电流和持续时间的一些指导: 1. 冲击电流(Transient Current):CAN总线允许的冲击电流通常在几十毫安(mA)到一百多毫安(mA)之间。具体的限制值取决于CAN总线的规范和设备制造商的要求。在实际应用中,为了防止电流过大引起系统故障,建议在设计和选择外设时留出一定的冲击电流余量。 2. 冲击持续时间(Transient Duration):CAN总线允许的冲击持续时间通常在几微秒(μs)到几毫秒(ms)之间。这个时间范围可以用来描述瞬态事件(如电源噪声、电磁干扰等)对CAN总线的影响。较长的冲击持续时间可能会导致数据传输错误或系统不稳定,因此需要通过适当的电路设计和滤波器来抑制瞬态事件。 需要注意的是,具体的冲击电流和持续时间限制可能因CAN总线版本、通信速率、设备制造商等而有所不同。因此,在实际应用中,建议参考相关的CAN总线规范和设备或芯片的规格表,以获取更准确的冲击电流和持续时间参数。 总结:CAN总线允许的冲击电流和持续时间范围通常是几十毫安到一百多毫安和几微秒到几毫秒。确切的限制值需要根据CAN总线规范和设备制造商的要求来确定。在实际应用中,应遵循相关规范并考虑系统的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值