没听过这个,都不好意思说自己做过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:
CAN总线开 相关文章:
- 写在CAN总线开发板助学之前(12-14)
- CAN总线活动讲座一:写在CAN总线开发板助学之前(12-12)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)