摘要:在CAN总线中,显性电平是强驱动,隐性电平时弱驱动,因此当有的节点发送显性电平有的节点发送隐性电平时,总线上呈现的肯定是强驱动的状态,这就是CAN总线显性电平可以覆盖隐性电平的原因。 大家都知道,CAN总线的差分电平分为显性电平和隐性电平,显性电平的逻辑为0,隐性电平的逻辑为1,在同一个位时间,一个节点发显性电平,另一个节点发隐性电平,则总线电平为显性电平,这是CAN总线仲裁的基础。就是像有些书上写的线与的概念,如图1所示,很好理解,1&0=0,显性能覆盖隐性。
图1 孔丙火(微信公众号:孔丙火)认为,这种解释对于新手来说,容易理解,但深入研究就会发现,这仅仅是一个逻辑原理图,实际CAN总线的波形并不是这样的,显性电平时高电平,隐性电平时低电平,那实际情况下,显性电平是如何覆盖隐性电平的呢,这要从CAN收发器芯片的原理说起。图2和图3是AMIS42675和PCA82C251两款芯片的原理框图,其他CAN收发器芯片也类似。PCA82C251属于早期芯片,是基于三极管的,比较新的芯片,如AMIS42675,都是基于JFET的,但对于发送驱动的基本原理是一致的。
图2
图3 以AMIS42675为例来说明,如图2所示,在本机发送显性电平(差分高电平)时,图中两个JFET是导通的,CANH和CANL之间形成一个压差,由于CAN收发器的输入阻抗(接收器)是很大的,所以这个压差的能量主要消耗在终端电阻和传输电缆上。在本机发送隐性电平(差分低电平)时,图中两个JFET截止,CANH和CANL处于高阻状态,CANH和CANL的电平基本相等,差分电平接近于0。由此可以看出,显性电平是强驱动,隐性电平时弱驱动,因此当有的节点发送显性电平有的节点发送隐性电平时,总线上呈现的肯定是强驱动的状态,这就是CAN总线显性电平可以覆盖隐性电平的原因。这是孔丙火(微信公众号:孔丙火)的理解,希望大家批评指正。
文章在微信公众号同步推出,微信公众号:孔丙火,关注欣赏更多文章。