CAN总线-错误机制与错误检测

1、位检测(整个过程):位错误(1、2、3、4的错误标志在下一位发送,5ACK界定符后发送

检测与自身发出不同(Ps:在仲裁场和ACK处发出隐性位,而回读显性不会认为是错误

2、填充错误:检测到违背位填充规则(eg:连续6个相同的)

3、格式错误:固定格式位场出现了含一个或多个非法位(eg:DEL为一位隐性,若检测到显性则错误)

4、ACK错误:发送节点发送报文,检测到隐性——说明没有节点接收到此报文

5、CRC检测-CRC错误:节点计算的CRC序列与接受的CRC序列不同

关于CRC(循环冗余校验):

冗余:利用辅助变量来检验(eg 发1的时候,若发11,则接受11则正确,其他10,01为错误)

循环:传输数据=信息数据+校验码引入模2除法(不进位不退位,相同为0,不同为1)

所以方法为:约定除数、检验余数(效验码位数=约定除数位数-1)

校验码(唯一):先令全为0、用数据处于约定除数、余数为校验码

6、错误检测(TEC:发生错误计数器、REC:接收错误计数器)

错误产生,REC+1,正确接收,REC-1(TEC也一样)——结果:节点状态发生改变

  1. 节点处于主动错误状态:一个节点发出错误帧,其他节点识别后也会发出错误帧,由此就可以使得一个节点错误就会通知其他节点,防止收到了错误的报文(除仲裁场和ACK期间)
  2. 节点处于被动错误状态::节点接收报文的时候检测到的错误发出的错误帧,一定会被正常的报文或者其他节点的错误帧覆盖掉,只有节点主动发出报文,错误帧才会被其他节点正常检测到并且触发其他节点发出错误帧      分析:如果一个节点连续检测到错误,进入被动模式,说明此节点有可能已经出现了问题和干扰,所以此时节点检测的错误可能已经不被信任,故发出错误帧是被正常报文或正常的错误帧覆盖
  3. 总线关闭:防止一个节点出现故障或持续被干扰时,不断发出错误帧,从而影响其他节点正常收发报文

 原因:电阻不匹配(信号反射)、电容不匹配(电平上升下降沿)、支线(阻抗匹配)、采样点(总线的节点采样点位置设置不一样)、电源(电磁干扰大)

  排查:CANoe软件工具——Trace:

  1. 判断终端节点是否在线、加载DBC判断是否有终端节点的报文(或万用表测终端电阻)
  2. 确认错误帧出现频率,是否为周期或者仅在固定的时间段出现
  3. 排除错误帧出现是否固定的ID或固定的节点
  4. 分析错误帧,是否与正常报文有相关,同时结合重传和报文的优先级综合分析
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值