声明:我是跟着B站江科大的视频的学习过程中记录下来作者的文案,记录下来是为了方便自己日后复习。如果你也是跟着江科大的视频学习的,可以一起学习。
我在其中添加了自己的一些理解,都已经标注。由于我只有一些python基础,所以可能有错误。平常学起来也比较吃力,就把自己的一些理解加上去了,方便大家有和我一样没有基础的人进行学习,如果有不对的地方欢迎指正。
之前的话,大家可以先看一下导读,大概了解一下这个系列。
首先,看CAN总线的硬件电路,下面这两个图就是CAN总线的电路接法,左边是闭环CAN总线,是高速CAN总线的接法;右图是开环CAN总线,是低速CAN总线的接法。
第一个要点,每个设备通过CAN收发器挂载在CAN总线网络上,左图中有3个设备作为CAN总线的节点,每个设备都可以是CAN的主控系统,比如STM32单片机,有更多的设备,也是类似的接法。每个设备都需要通过一个CAN收发器接入到CAN总线。CAN收发器就是一个芯片,主要实现电平转换、输出驱动和输入采样几个功能。
第二个要点,CAN控制器引出的TX和RX与CAN收发器相连,CAN收发器的CAN_H和CAN_L与总线的CAN_H和CAN_L相连。由左图可以看出,每个主控设备内会内置有CAN控制器,比如STM32的CAN外设电路。CAN控制器会引出TX和RX两个端口,这两个端口不能直接连接到CAN总线,必须要借助CAN收发器来接入。CAN收发器会有TX、RX、CAN_H、CAN_L等引脚,CAN收发器的TX和RX就和CAN控制器的TX和RX相连,TX接TX,RX接RX,无需交叉(这点与串口通信相反)。CAN收发器的CAN_H和CAN_L就和CAN总线的CAN_H和CAN_L相连,CAN_H接CAN_H,CAN_L接CAN_L,这样每个节点就成功挂载到了CAN总线上。下面两根线就是串联各个节点的CAN总线。CAN总线里走的是差分信号,一般是用双绞线作为载体,避免干扰。
第三个要点,高速CAN使用闭环网络,CAN_H和CAN_L两端添加120Q的终端电阻。可以看到,下面两根CAN总线串联每个节点后,它的两端要分别 接一个120Ω的电阻,使CAN总线成为一个闭合的环路,所以叫闭环CAN总线。