了解 CAN 总线驱动程序的内部工作原理以及如何调试系统
扫描二维码
随时随地手机看文章
CAN是一种用于实时应用的串行通讯协议总线,CAN能够使用双绞线来传输信号,是国际上应用最广泛的现场总线之一。CAN总线的传输方式是串行数据传输,能够在1Mb/s的速率40m的双绞线上运行,还能够使用光缆连接。CAN在细节上很多地方与I2C总线差不多,不过也有一些区别比较明显。CAN总线用报文形式广播的方式从一个节点向另一个节点发送数据。对于节点来说,不管这个数据是发到哪里的,自己都要接收。
当一个节点要发送数据的时候,这个节点将要发送的数据和标识符发送给本节点的CAN芯片,并且会进入准备状态。当这个CAN小品收到总线分配后,会改变成发送报文状态。CAN芯片将数据组成报文格式发出后,其他的节点都会处于接收状态。全部节点都会对这段报文进行接收检测来判断这些报文是不是发给自己的。
在这篇文章中,我将重点介绍用于驱动这些总线电压的 CAN 驱动器输出级的典型拓扑。对于曾经在 CAN 网络中遇到过发射问题或输出差分电压问题的任何人,本文描述了驱动器的工作原理以及您可以在数据表中查看哪些电气参数来识别良好的收发器。我相信对 CAN 驱动程序的基本了解也有助于调试出现的 CAN 问题。
像TCAN332这样的 CAN 收发器通常具有等效的双输出结构,如图 1 所示。高侧输出结构由串联二极管和 P 沟道晶体管组成,而低侧输出结构由串联二极管组成和一个N沟道晶体管。在高端,如果 CANH 总线电压在任何瞬态或共模干扰期间超过 V CC,则串联二极管阻止电流流入 V CC网络。如果总线电压在瞬态和共模干扰期间降至收发器的本地接地以下,则低端上的串联二极管会阻止电流从接地流出到 CAN 总线。
图 1:CAN 收发器的等效输出原理图
根据 ISO 11898 CAN 标准,CAN 总线的两种有效状态是:
· 显性状态——最小 1.5V 输出差分电压 ( VOD) 进入 50-65Ω 差分负载(TXD = 低)。
· 隐性状态——最大 50mV V OD进入 50-65Ω 差分负载(TXD = 高)。
如图 2 所示,当高端和低端晶体管都关闭并处于高阻抗状态时,驱动器是隐性的。当高侧和低侧晶体管都打开并处于低阻抗状态时,驱动器占主导地位。
图 2:隐性和显性状态
由于两个晶体管都在隐性状态下关闭(参见图 2 的左侧),因此从 V CC流向地的电流可以忽略不计。负载电阻 (R L ) 上的 V OD非常接近 0V。在主导状态(图 2 的右侧),两个晶体管都处于导通状态并处于低阻抗状态。因此,电流将从 V CC流经 R L到地并产生 V OD。
正如我在之前的博客中所说,CANH 和 CANL在隐性状态下弱偏向 V CC /2。为避免在器件在隐性和显性状态之间切换时产生共模干扰,重要的是使 CANH 的驱动强度与 V CC和 CANL 与地相匹配。查看图 3,您可以看到 P 沟道和 N 沟道晶体管的良好匹配的漏源导通电阻 (R DSON ) 将V CC和 GND之间的 R L上的电压降集中在 V抄送/2。
如果驱动器的一半具有比另一半低得多的导通电阻,则总线共模电压将在显性状态下从 V CC /2拉开,在隐性状态下拉回到 V CC /2 . 这将导致总线状态的每次转换都发生共模转换,从而导致更高水平的传导和辐射发射。
图 3:使用 R DSON电阻值的等效原理图
在查看驱动器电气规格时,要寻找的两个最重要的事情是在给定负载电阻的显性和隐性状态下保证的输出电压(更强的驱动器将保证具有更低电阻的输出电压)以及显性和隐性之间的驱动器对称性状态。