"); //-->
在最近的CAN网络管理开发过程中,我们遇到了一些具有挑战性的问题。
客户要求我们的系统支持CAN网络管理功能,特别是需要使用ID范围在0X400至0X4FF之间的任意CAN报文来唤醒硬件。为了降低成本,我们选择了恩智浦的TJA1043T作为CAN收发器。然而,这款收发器并不支持网络过滤功能,这给我们带来了不少麻烦。

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


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

由于TJA1043T不支持网络过滤,当CAN收发器接收到任意CAN报文后,都会被唤醒并拉高INH引脚开启8V电源。MCU在上电后会判断接收到的报文是否为网络管理报文(ID在0X400至0X4FF之间)。如果不是,MCU会控制收发器的STB和EN引脚再次进入休眠状态。
然而,在测试过程中我们发现,当低频率发送非网络管理报文时,CAN收发器可以正常进入休眠状态。但当高频率发送非网络管理报时,CAN收发器很快就会出现失控现象。
具体表现为:尽管STB和EN引脚的电压已经被设置为休眠状态,但INH引脚却一直保持高电平,无法进入休眠状态。测量波形如下:

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

为了缓解这个问题,我们尝试通过修改CAN收发器INH引脚的阻容电路来加速INH引脚的拉低过程,从而更快地进入休眠模式。
经过实验验证,这种改进措施可以在一定程度上优化INH失控的情况,特别是在100ms周期以上发送非网络管理报文时表现更为明显。
这种改进措施虽然能够改善INH失控的现象,但并未从根本上解决问题。收发器在Go-to-Sleep模式下仍然存在无法进入休眠模式的风险。

为了解决这个问题,我们在软件层面引入了一些异常处理机制。
当检测到收发器INH引脚失控(即电源一直处于开启状态)时,MCU会再次控制收发器的STB和EN引脚由休眠状态切换到正常工作状态,然后再重新设置进入休眠状态。
通过这种方式,我们成功地解决了INH引脚失控的问题。测量波形如下:


虽然TJA1043T CAN收发器在网络过滤方面存在一些限制,但通过合理的软件设计和异常处理机制,我们仍然可以实现客户的网络管理需求。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
CAN 教程
车载以太网 10BASE-T1S 迎来升级,太比特级传输速率已提上日程
集成隔离式 CAN 收发器 - ISO1050
使用 3.3V CAN 收发器在工业系统中实现可靠的数据传输
Microchip推出集成式紧凑型CAN FD系统基础芯片解决方案,专为空间受限应用而设计
驱动汽车电子创新:RIGOL CAN-FD总线分析解决方案
CAN简介与Atmel Start上CAN驱动开发培训教程
dsPIC33EV 5V CAN-LIN入门工具包
ARM,CAN ARM-CAN接口板
ARM,CAN 请问:我在你们那买的ARM-CAN接口板上用的是什么型号光耦?
一文读懂|CAN总线为何要加终端电阻
基础知识之CAN总线
MC34901: 面向工业应用的高速CAN收发器
CAN入门书
集成以太网、CAN、USB、加密技术功能的闪存微控制器
如何配置控制器局域网络(CAN)位时序实现系统性能优化?
高工作电压5.7 kV rms隔离式CAN FD收发器
低速串行总线调试-CAN译码
CAN-RS232通信转换模块的设计与实现
ARM7MCU提供以太网、CAN、USB、加密技术
ZLGCAN,ARM,CAN 请教ZLGCAN有关ARM-CAN问题
创新的现场总线CAN-bus实验室
南芯科技推出车规级高速CAN/CAN FD协议收发器
ISO 16845标准详解
CAN资料
PHILIPS_CAN_控制器SJA1000的BasicCAN控制模块
国内首颗:纳芯微CAN FD收发器NCA1044-Q1通过丰田VeLIO认证
FlexRay线控制动参考设计
FullCAN函数库V1.0
BCM系统解决方案