电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

1008

主题

1008

帖子

8940

积分

高级会员

Rank: 5Rank: 5

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

hznzpf5hezb64014084813.gif

hznzpf5hezb64014084813.gif
( X' c2 E+ x' p, {7 v+ O% P& ]& r
点击上方蓝色字体,关注我们. {) M$ j% {+ z4 i: F
我们选用的TJA1043T CAN收发器,通过控制其STB(状态)引脚和EN(使能)引脚,可以切换收发器的工作模式,进而控制INH(抑制)引脚。
  [. U& B# ?( x9 r  k: Y% u( k
/ E  A" s0 e# [1 D) o+ J0 W

plnb2u2wwxv64014084913.png

plnb2u2wwxv64014084913.png
' B9 L- p4 N9 G$ \

* U0 S1 z+ p) F! @0 i2 m
2 Q+ Q" Z- Y6 K& a6 F

k3nt3bq1to264014085013.png

k3nt3bq1to264014085013.png

4 l" W5 s/ O4 j5 k9 O* u
( J6 L4 Q! r& Z. D8 I$ s我们的目标是通过控制INH引脚来管理8V电源,从而实现对整个硬件电源的控制。
! _2 k8 X# H  l3 ?, A9 l3 \- D- t! t5 g7 S

ao4f2m5d2sa64014085114.png

ao4f2m5d2sa64014085114.png

/ R8 V& z/ T4 ]# T  ], j
2 L: p1 {( i; U) M由于TJA1043T不支持网络过滤,当CAN收发器接收到任意CAN报文后,都会被唤醒并拉高INH引脚开启8V电源。MCU在上电后会判断接收到的报文是否为网络管理报文(ID在0X400至0X4FF之间)。如果不是,MCU会控制收发器的STB和EN引脚再次进入休眠状态。/ N, N4 @% Z  m  m5 I( ]8 R; r, `
6 I- W" u) c- ~; X
然而,在测试过程中我们发现,当低频率发送非网络管理报文时,CAN收发器可以正常进入休眠状态。但当高频率发送非网络管理报时,CAN收发器很快就会出现失控现象。
) p' `4 w( u( N$ f) M5 ^0 a" l3 j1 o; g7 u) p0 C  E
具体表现为:尽管STB和EN引脚的电压已经被设置为休眠状态,但INH引脚却一直保持高电平,无法进入休眠状态。测量波形如下:8 j) t! l# C( d7 T0 [
3 c+ h3 z4 x: }" G& S! K; U

b4mcguamrpp64014085214.jpg

b4mcguamrpp64014085214.jpg
: f5 A( Y! x, Y
8 b  |5 l, q  l8 M$ k+ x! ~* ~
经过深入分析,我们发现导致这个问题的主要原因是:收发器最后保持在Go-to-Sleep模式无法进入休眠模式。
9 U9 V# ?# C: D7 V) y* \
9 w9 k. }4 y4 r/ [$ d

l0eqliujoeq64014085314.png

l0eqliujoeq64014085314.png
, R% R& X& ?9 U/ w' T

1 O- e& q/ d- U! b4 h6 d4 S) Q+ w为了缓解这个问题,我们尝试通过修改CAN收发器INH引脚的阻容电路来加速INH引脚的拉低过程,从而更快地进入休眠模式。
  Y, d4 T) [4 s% T5 M
) F7 Q, u" t, a- {+ W& k& y* s, {经过实验验证,这种改进措施可以在一定程度上优化INH失控的情况,特别是在100ms周期以上发送非网络管理报文时表现更为明显。
+ ]/ C, M+ m; }! T: i# j, ^4 N( l9 O' f+ p5 s- u. F, f7 @
这种改进措施虽然能够改善INH失控的现象,但并未从根本上解决问题。收发器在Go-to-Sleep模式下仍然存在无法进入休眠模式的风险。
* J" b; d1 B* i  K! @6 L2 `4 j, l, Y
: Z! n" f4 {' t* Y( F! Q; U

gqqmejkmd3r64014085414.png

gqqmejkmd3r64014085414.png
% A$ c7 Q$ a& p9 S% X4 w
" S3 w/ x# ~! ^/ I. J. [- f
为了解决这个问题,我们在软件层面引入了一些异常处理机制。
6 ?( E. W6 Y' |7 C6 G& O4 q  e7 A7 v) v: `. a
当检测到收发器INH引脚失控(即电源一直处于开启状态)时,MCU会再次控制收发器的STB和EN引脚由休眠状态切换到正常工作状态,然后再重新设置进入休眠状态。9 M; h; p5 }0 i

; r4 b9 `2 o6 k( F3 T2 d( p通过这种方式,我们成功地解决了INH引脚失控的问题。测量波形如下:4 K! G# h1 }9 t# D) b

9 c' T+ u% p3 A' E9 z

dra13425xc064014085514.jpg

dra13425xc064014085514.jpg

- N. ]4 c" ^* X5 Q
4 Y) `' e" E' M' y% ~6 }" C( b  T* f' }

ykk203gmuvo64014085614.jpg

ykk203gmuvo64014085614.jpg

$ v4 M3 Z( k" ?' \4 W4 s. o1 ~" d" J
7 c' p; m1 D1 U$ E虽然TJA1043T CAN收发器在网络过滤方面存在一些限制,但通过合理的软件设计和异常处理机制,我们仍然可以实现客户的网络管理需求。
. O/ F; \$ _: ?4 Q: |; x& N! ~8 L4 ~9 Y& K6 N: r

gno3lrz5qdn64014085714.jpg

gno3lrz5qdn64014085714.jpg
. i$ V7 j, V# ?7 W2 R$ X  Y# v

pqrxlmvc2g364014085814.gif

pqrxlmvc2g364014085814.gif
; ?, l, t4 M6 V3 o" u$ G7 U, _
点击阅读原文,更精彩~
回复

使用道具 举报

发表回复

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

本版积分规则


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