电子产业一站式赋能平台

PCB联盟网

搜索
查看: 397|回复: 0
收起左侧

如何处理不支持网络过滤的CAN收发器失能问题

[复制链接]

1008

主题

1008

帖子

8940

积分

高级会员

Rank: 5Rank: 5

积分
8940
发表于 2024-8-28 12:00:00 | 显示全部楼层 |阅读模式

bgrwdimphgn64011275711.gif

bgrwdimphgn64011275711.gif

0 Y2 ?$ Q) {0 x- N6 Z0 Q8 P* w  ]点击上方蓝色字体,关注我们- O/ @. z+ X* y  U) U# V; r; Y* m- `
我们选用的TJA1043T CAN收发器,通过控制其STB(状态)引脚和EN(使能)引脚,可以切换收发器的工作模式,进而控制INH(抑制)引脚。
$ b  s+ ]  K4 H+ n9 f9 e+ B' k# i: A7 T- \0 P  q: u

3yjkegzlkiy64011275811.png

3yjkegzlkiy64011275811.png

8 m' Z2 w9 f1 Z0 e! Y
9 C3 @0 C. `2 {7 b! D
' v* t9 ?2 q% l: i+ I8 I

gwst0hzwqoa64011275911.png

gwst0hzwqoa64011275911.png

3 k  ?% T" q6 Q2 ^$ b0 S5 K' B: m) U$ O) S( x! C, S( [
我们的目标是通过控制INH引脚来管理8V电源,从而实现对整个硬件电源的控制。$ _2 U/ Z5 M' H5 R+ i& N( N% }
1 q% ]8 \: e% u/ h3 b

0oynzf2zqto64011276011.png

0oynzf2zqto64011276011.png

+ g7 y- }. w3 B8 W% v0 Y- V- @. P% O
由于TJA1043T不支持网络过滤,当CAN收发器接收到任意CAN报文后,都会被唤醒并拉高INH引脚开启8V电源。MCU在上电后会判断接收到的报文是否为网络管理报文(ID在0X400至0X4FF之间)。如果不是,MCU会控制收发器的STB和EN引脚再次进入休眠状态。  b0 Q! k$ H( U( h) a3 A2 n; Q) v
6 N7 m+ Q+ R; t& Z5 M7 T. n- Y) U
然而,在测试过程中我们发现,当低频率发送非网络管理报文时,CAN收发器可以正常进入休眠状态。但当高频率发送非网络管理报时,CAN收发器很快就会出现失控现象。+ m1 }; g) s/ t/ _4 n/ }2 s

4 w& G2 J! q: _4 C/ u具体表现为:尽管STB和EN引脚的电压已经被设置为休眠状态,但INH引脚却一直保持高电平,无法进入休眠状态。测量波形如下:
6 K- n+ m" \2 y0 z6 [2 ?) r. y9 x! i; n6 l

mxyo4aueqtr64011276111.jpg

mxyo4aueqtr64011276111.jpg
4 h5 c% m/ S7 i+ l: j
9 Q4 z: I% `8 E8 R9 q! ]- H
经过深入分析,我们发现导致这个问题的主要原因是:收发器最后保持在Go-to-Sleep模式无法进入休眠模式。
1 Q! w3 h- N3 S7 m& X
/ h5 f( u) H) u/ n+ K& j

vdhxlohgcja64011276212.png

vdhxlohgcja64011276212.png

' I$ t" A. e" D4 g% g* U! ]2 x* L7 e  `# |& m, v
为了缓解这个问题,我们尝试通过修改CAN收发器INH引脚的阻容电路来加速INH引脚的拉低过程,从而更快地进入休眠模式。/ f  F% y1 c; `+ o0 ^2 |! [

2 K0 T. a4 k. _经过实验验证,这种改进措施可以在一定程度上优化INH失控的情况,特别是在100ms周期以上发送非网络管理报文时表现更为明显。
9 P" d8 H  J: A- b2 g8 l
' O9 C  Y5 _( y5 w  d; ]这种改进措施虽然能够改善INH失控的现象,但并未从根本上解决问题。收发器在Go-to-Sleep模式下仍然存在无法进入休眠模式的风险。3 n4 ^3 j7 G% l
9 X" I2 H$ a. b# o4 L

mmpb2d24ws264011276312.png

mmpb2d24ws264011276312.png

% d& n! o6 {* `# }2 ^/ J! }1 ?, g6 t$ ?. J; i8 L
为了解决这个问题,我们在软件层面引入了一些异常处理机制。
" P* [  @' a# _) p% ~
- J( B$ k$ ^- s/ l当检测到收发器INH引脚失控(即电源一直处于开启状态)时,MCU会再次控制收发器的STB和EN引脚由休眠状态切换到正常工作状态,然后再重新设置进入休眠状态。0 ~6 K4 T4 q2 ?0 q- q- e

" c; ?: z" z$ b+ T$ k% k9 F. K, h通过这种方式,我们成功地解决了INH引脚失控的问题。测量波形如下:
8 }' }: o0 N* h' }/ w! O
% Q  {  [: Z/ m$ o

3jhh0macf2z64011276412.jpg

3jhh0macf2z64011276412.jpg
; e9 [2 C* J9 ^& F

, w1 T3 i. z- @2 Q. `  l
# B  ~4 p1 Z* b+ w" V

ibjur1kexbr64011276512.jpg

ibjur1kexbr64011276512.jpg

9 C0 {% H- G% K# z$ [3 G, a5 {
虽然TJA1043T CAN收发器在网络过滤方面存在一些限制,但通过合理的软件设计和异常处理机制,我们仍然可以实现客户的网络管理需求。
  }7 h. p3 s& {6 J3 T; f+ `* B6 z  n* i) `

kpxquejpfbe64011276612.jpg

kpxquejpfbe64011276612.jpg
1 D, e. ~9 t; ^; t) Y

l1habwbnzpv64011276712.gif

l1habwbnzpv64011276712.gif

, Z% J* q# b& ?1 W* L4 \点击阅读原文,更精彩~
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表