文章目录
背景
- 本文介绍了为什么CAN通信需要终端负载电阻。
CAN通信为什么需要终端电阻?
-
CAN是差分总线通信,包括H和L两根线,当二者电压相同时称为隐性表示数据1,电压不同时称为显性表示数据0。空闲状态时,总线上为隐性,只要有一个节点表现为显性,总线电平就会被拉到显性。
-
其接线方式如下图所示:可以看到,H线和L线不是完全无连接的,而是通过终端负载电阻连接在了一起。
-
我们直观的感觉,差分通信,只需要发送端和接收端的H线和L线分别对应连接,然后检测二者压差即可。 为什么需要一个终端负载电阻将H线和L线连接起来呢?
-
假设没终端负载电阻,则连接方式如下:H接H,L接L。
-
现在我们需要检测压差,我们只需要将H和L线上电压送入比较器,比较高低即可,这是没有问题的。
-
我们看CAN芯片原理图发现,当输出显性电平时,Q1和Q2打开,H线电压为VCC,L线电压为GND;当输出隐形电平时,Q1和Q2截止,此时该芯片对总线上输出为开漏状态,这也保证了输出隐形电平的节点不会影响别的节点输出显性电平。
-
因此当所有节点都处于空闲状态时,每个节点都输出为开漏状态,而不是输出一个固定的驱动电压。此时H线和L线上电压是不确定的,二者也不一定相等,因此无法满足空闲状态时H线和L线电压相等的需求。
-
并且每个节点在对总线上电压进行检测时,都是尽量地小电流进行取样,这也导致H线上高电平时的电量不容易被消耗掉,即H线上电压下降缓慢,限制了通信速率。
-
因此我们在H和L间加上 120 Ω 120 \Omega 120Ω 电阻,使得H和L线组成一个回路,不仅保证了隐性状态时H和L线上电压相等,还使得H线上的电压可以快速从高电平切换到低电平,并且当存在外界电磁干扰时能量也可以被电阻消耗掉,一举多得。