怎样避免CAN总线节点设计的错误

分享到:

CAN总线网络中,若其中一个节点出现硬件或者软件上的错误,很可能导致总线电平持续保持在显性状态,总线上所有节点均不能正常通信。在节点设计时,应该如何通过硬件手段避免这一问题发生?

 

总线值


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

 QQ截图20170613095024

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

 

图1 CAN节点基本组成示意图

 

TXD 显性超时

 

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

 

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

 QQ截图20170613095011

图2 TXD显性超时功能

 

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

 

隔离CAN收发器

 

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

表1 常用隔离CAN收发器

 

 

图3 CAN隔离收发器

 

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

 QQ截图20170613095004

 

继续阅读
如何让你的CAN更加安全?办法在这里!

每辆汽车中都使用CAN网络来连接电子控制单元(ECU),预计未来十年它仍会是主导性网络。随着汽车电子设备不断增多,跨CAN网络交换的实时数据量也在增加。

SPI、I2C、UART、I2S、GPIO、SDIO、CAN,这么多总线,你都了解吗?

总的来说,总线有三种:内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。

CAN总线中特殊波特率如何计算?

CAN总线采用的是异步串行通信,也就是没有单独的时钟线来保证各个收发器之间时钟的一致,每个收发器是按事先设置的波特率来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常重要。

重新审视物联网热潮:存在一些泡沫成分

市场观察家重新审视物联网发展轨迹发现,初期对于IoT的预测都被过度夸大了。但IoT市场仍然具有巨大的潜力,业界厂商和联盟开始从互通性、安全性以及易用性等领域…

恩智浦LPC800系列新成员:LPC84X发布

恩智浦半导体(NXP Semiconductors N.V.)在入门级Cortex-M0+内核LPC800家族新推出更大存储空间,更多功能外设,更大封装管脚数的系列—LPC84x,使得有众多好评的LPC800家族适应更广阔的应用。