找回密码
 注册
关于网站域名变更的通知
查看: 50|回复: 0
打印 上一主题 下一主题

如何快速实现CAN总线故障定位?这3种方法了解下!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-8-4 16:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
总线故障
" W( |1 `2 c  y3 |: b: O" q  J! P. C% y5 {4 G% Z
CAN总线故障的原因多种多样,如节点发送周期异常、节点掉线甚至整条总线被拖垮。一个故障节点或者隐患节点往往会危害到整个产品的安全,如新能源车的控制总线中,故障节点导致仪表盘数据更新滞后、显示错误导致司机判断错误引发道路安全事故。
) a8 H: S- D4 s; k
( F6 c& ~7 `0 k+ R$ ]! R- t
' O2 U, Z; X; Y
图1 总线故障案例
* N9 R: }, A. b" i8 C. d. r. P) b
* U& r0 x3 q! _% M! U" G

$ p5 B! @3 f2 S0 f8 k$ d* I

. I# g8 g& l4 o3 H- `
  故障定位方法
+ c+ E7 m. b! I: H; o( W, \. j
方法一:将CAN节点一个一个往总线上接,每接一个节点后观察、测试总线通信状况。该方法相信是绝大多数现场应用工程师都有尝试,往往可以零成本揪出问题节点。以上方法虽然非常简单,但弊端也很多。其一,当总线节点过多或者总线布线复杂时往往使工程师抓狂;其二,假如故障原因是各节点容抗、阻抗控制不好导致的,往往多个节点的累积效应才导致问题出现,因此最后一个挂上去且总线出问题的节点不可避免要“背锅”。
7 t! d! b; T0 z+ u' e$ r1 p4 Q2 Q% ~" c' D9 E& O+ M
- B( E, R. p. P6 d# H( Y( {! [4 K* R3 N4 F' D
图2 节点依次接入总线
: }3 A; m1 p3 `9 r! N8 Z1 e8 M! q
$ z1 @9 T/ m% }  N( u+ L5 O6 X5 u  ~
% H" N5 t. f4 R# P7 V: k9 M
方法二:根据特征电平判断错误原因。从波形上对通信错误的诊断往往是最直接、高效的,但这依赖丰富的现场经验,笔者此处列举几个CAN波形案例供参考。

+ \: A& g" D' ?+ p7 [
/ o7 z) g( `- V- }- ~
; |* y( h* ?! D' W' f0 R
  \6 _9 @) [' @" h. W7 U
图3错误帧是在帧结束位置出现电平台阶。此错误由主动错误标志+错误标志叠加而成,二次抬高的是?6?个连续显性电平,因某节点错误后全局通知,各节点错误标志叠加造成的。通常,当节点受较强的电磁场干扰后易发生此类错误,如变频器、逆变器、电机等功率器件。此时,我们亦可配合FFT分析工具分析干扰频点,以此定位到干扰源并屏蔽它,如图4。
) Q, _" o# f3 z4 s! y8 d% W
, ?7 A0 X+ ]6 i9 a( }. u- H7 H6 D
图3 帧结束波形台阶
  F6 z+ }* u$ e% C
: Y; h( w  h  w1 k9 d/ w9 @: z
: O$ B$ y3 z) }3 w2 m
图4 FFT分析干扰频点
# G" \9 {0 s0 @( W
( z: L+ P4 v; N7 \4 r  Q7 S) ]
- l( B# a, ]- c  F; i" X  X* q+ `
# m7 r6 [7 D- |/ ?

" r8 G% h3 y0 H3 z: ~" M# B' A
图5错误帧波形边沿出现抖动,此错误一般是长分支导致。在一字型总线网络拓扑布线完整且两端各匹配120欧终端电阻情况下,为了再将远端新节点接入网络使用一根较长通信线直接接入CAN网络,此节点将带来长分支问题。一般地,长分支仍需要做阻抗匹配,更好的方式是从两端延长通信线接上该节点,仍“手挽手”保持一字型网络拓扑。

$ j. s$ B# ~  m$ V: }) b
6 M9 U" h+ L, }- A; i' D# j1 i* L2 I3 b% U1 s# M+ p
图5 长分支导致边沿抖动

5 O8 `, ?6 u0 d  I: \
' A  j9 Q2 t7 W1 d+ ]+ [7 ~! W! U7 l
# I$ b2 j/ V' P* P( R3 C9 i
/ m9 T8 D; A# T* E9 ]/ {5 N( ~) [, T
图6波特率异常(位宽度从2us突然变成1.6us),导致位错误引起错误帧。位宽的不稳定是波特率不稳定导致的,最有可能的原因是晶振问题,建议更换晶振测试。
/ s# g! T6 g8 t* t' i# c. J( j
$ R% p& Y8 E% v' E4 N" D
图6 波特率偏差引起错误帧

- F8 j* O8 V9 X9 r+ U# P7 w
* ?9 V' T$ m7 P, g
# I1 p8 s2 i" G% M
8 A- y8 I# h4 Q7 j; h: {
方法三:使用CAN转换器或接口类产品辅助排查。简单的故障排查一般我们采用USBCAN卡解决,通过抓取总线上的报文分析故障节点。极端情况下,一个故障节点往往能直接拖垮一个总线,总线上将无任何数据,此时怎么通过抓取报文解决问题呢?通过一个多路的CAN集线器能解决以上问题。CAN集线器的每个CAN接口都是一个独立的CAN节点,一路CAN的严重故障不会导致所有节点不能进行数据收发,此时不能正常发出数据的节点可判定为故障节点。
5 }5 I1 @; [/ z4 C7 S5 E: {& M6 h9 }3 ^# Q' F6 `) }
2 ^4 Y7 h9 c. h4 F! n1 s( {' D& @* y7 {* O/ G* H
图7 CANHUB提供8路独立CAN网络
" S. W) M! l' d# {6 X

6 t2 o3 u  Q3 R- K, F) x( a
8 g0 r1 v0 J; Z3 `
; @! ~( N. `4 p% y
  总结

  }3 J2 g4 J( S
以上内容为工程师呈现几种常用的CAN总线故障定位方法,从便捷、成本、高效方面考虑,笔者优先推荐方法三。此外,CAN集线器也兼顾中继器、信号放大器的作用,把多个节点拆分到不同独立的CAN总线上能消除负载集中,有效减小总线故障的发生。若您有更好的CAN总线故障排查方法可在文章下方留言,与广大工程师交流分享。
2 x3 M) m1 }& z0 @$ i
! S9 _8 j' \6 f6 t
( p- Y8 Z" E. I
图8 CANHub-AS8应用实例
( z5 A, F6 `6 r2 P3 F
  h5 o/ Z' r+ I8 ^* G- b' |

" n4 P+ w; S9 M6 ~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-24 05:07 , Processed in 0.078125 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表