TXD显性超时保护解决CAN总线节点硬件错误问题

总线值

CAN总线上的数据采用不归零编码方式,可具有两种互补的逻辑值之一:“显性”或“隐性”。“显性”位和“隐性”位同时传送时,总线的结果值为“显性”。比如,在执行总线的“线与”时,逻辑 0 代表“显性”,逻辑1 代表“隐性”。

CAN总线节点的基本组成如图1所示,当MCU的TXD引脚输出0时,总线电平为显性,若输出1,总线电平则为隐性。

图1 CAN节点基本组成示意图
TXD 显性超时

由于CAN总线显性电平的“支配地位”,在CAN总线组网时,若有其中一个CAN节点出现硬件或者软件上的错误,使控制器TXD引脚持续处于低电平,则会使总线电平持续保持在显性状态,总线上所有节点均不能正常通信,导致总线瘫痪。若总线节点数量众多,确定问题节点将是一项艰巨的任务。

带TXD显性超时保护功能的CAN收发器可以有效防止出错的CAN控制器通过发送持续的显性TXD信号将总线箝位在显性电平。

图2 TXD显性超时功能

如图2所示,带TXD显性超时保护的CAN收发器,在TXD引脚显性时间超过允许最大的时间tDOM后,发送器将被禁能,收发器输出表现为隐性状态,总线将不受该节点影响,从而保证总线的正常通信。收发器下一个显性输出只有在释放了TXD后才可以产生。

隔离CAN收发器

表1列出了常用的隔离CAN收发器。从列表可以看出,CTM1051K(A)T具有TXD显性超时保护功能,可以避免总线持续进入显性状态,保护总线正常通信。但由于tDOM的存在,收发器的最低工作位速率被限制。

表1 常用隔离CAN收发器
图3 CAN隔离收发器

根据 CAN 协议(ISO 11898),除了错误帧和过载帧(允许6个相等显性位),CAN帧报文中在5个连续相等位后,发送器自动插入一个与之互补的补码位;接收时,这个填充位被自动丢掉。例如,5个连续的高电平位后,CAN自动插入一个低电平位。因此,TXD只允许最多11个连续的显性位,最坏的情况是一个错误帧紧接在5个连续的显性位后,即tDOM的最小值要求收发器的最小位速率必须大于36.7kbit/s: