如图5,异常位出现时,CAN模块的供电为5.19V,此时TXD高电平阀值应该约为3.17V,而MCU的供电仅为3.08V,IO输出电压无法达到3.17V,故无法识别高电平。当TXD出现噪声尖峰时,使TXD短时间高于3.17V,触发CAN模块内部切换,总线差分信号发生变化。
此处验证了上文的猜测,确定故障发生原因为:高温上电时,MCU、CAN模块供电电压出现波动,CAN模块的TXD引脚无法识别MCU发生的高电平信号,导致错误帧持续出现,造成CAN通信中断。
3、解决方案
更换为电平匹配的隔离模块后(由5V隔离模块更换成3.3V隔离模块),TXD高电平阀值电压及CAN总线通讯电平幅值如下图7所示,均已恢复正常幅值,通讯无异常。
图7 更换模块后的TXD高电平阀值以及CAN总线电平