电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

624

主题

624

帖子

1848

积分

三级会员

Rank: 3Rank: 3

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

w5cp0rwmx226406039153.gif

w5cp0rwmx226406039153.gif

点击上方蓝色字体,关注我们
我们选用的TJA1043T CAN收发器,通过控制其STB(状态)引脚和EN(使能)引脚,可以切换收发器的工作模式,进而控制INH(抑制)引脚。

ioybeftskv26406039253.png

ioybeftskv26406039253.png



pt1gmpgs0kg6406039353.png

pt1gmpgs0kg6406039353.png


我们的目标是通过控制INH引脚来管理8V电源,从而实现对整个硬件电源的控制。

bdyk1fjosnh6406039453.png

bdyk1fjosnh6406039453.png


由于TJA1043T不支持网络过滤,当CAN收发器接收到任意CAN报文后,都会被唤醒并拉高INH引脚开启8V电源。MCU在上电后会判断接收到的报文是否为网络管理报文(ID在0X400至0X4FF之间)。如果不是,MCU会控制收发器的STB和EN引脚再次进入休眠状态。

然而,在测试过程中我们发现,当低频率发送非网络管理报文时,CAN收发器可以正常进入休眠状态。但当高频率发送非网络管理报时,CAN收发器很快就会出现失控现象。

具体表现为:尽管STB和EN引脚的电压已经被设置为休眠状态,但INH引脚却一直保持高电平,无法进入休眠状态。测量波形如下:

lpjmob4ux1e6406039553.jpg

lpjmob4ux1e6406039553.jpg


经过深入分析,我们发现导致这个问题的主要原因是:收发器最后保持在Go-to-Sleep模式无法进入休眠模式。

uosw3ubfn306406039654.png

uosw3ubfn306406039654.png


为了缓解这个问题,我们尝试通过修改CAN收发器INH引脚的阻容电路来加速INH引脚的拉低过程,从而更快地进入休眠模式。

经过实验验证,这种改进措施可以在一定程度上优化INH失控的情况,特别是在100ms周期以上发送非网络管理报文时表现更为明显。

这种改进措施虽然能够改善INH失控的现象,但并未从根本上解决问题。收发器在Go-to-Sleep模式下仍然存在无法进入休眠模式的风险。

re40u452qo36406039754.png

re40u452qo36406039754.png


为了解决这个问题,我们在软件层面引入了一些异常处理机制。

当检测到收发器INH引脚失控(即电源一直处于开启状态)时,MCU会再次控制收发器的STB和EN引脚由休眠状态切换到正常工作状态,然后再重新设置进入休眠状态。

通过这种方式,我们成功地解决了INH引脚失控的问题。测量波形如下:

pdkucfibifo6406039854.jpg

pdkucfibifo6406039854.jpg



x1yt5o0edxq6406039954.jpg

x1yt5o0edxq6406039954.jpg


虽然TJA1043T CAN收发器在网络过滤方面存在一些限制,但通过合理的软件设计和异常处理机制,我们仍然可以实现客户的网络管理需求。

zrwe43arypm6406040054.jpg

zrwe43arypm6406040054.jpg

idu5g5br1ln6406040154.gif

idu5g5br1ln6406040154.gif

点击阅读原文,更精彩~
回复

使用道具 举报

发表回复

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

本版积分规则


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