如何理解CAN的显隐性电平

在这里插入图片描述
在CAN(Controller Area Network)总线通信中,数据传输是通过差分信号在两条线路上进行的。为了理解CAN总线如何通过两根线表示逻辑0和逻辑1,我们需要了解隐性电平和显性电平的概念,以及CAN收发器的作用。

隐性电平与显性电平

  1. 隐性电平(Recessive Level):

    • 定义: 在CAN总线中,隐性电平指的是CANH(CAN High)和CANL(CAN Low)之间的电压差为0V。
    • 实际电压范围: -0.5V 到 0.05V。
    • 逻辑含义: 代表逻辑1。
    • 记忆法: 你可以记住“隐性”代表逻辑1,因为当CAN总线上的电压差几乎为零时,我们把它称为隐性电平(隐形的电压差,逻辑1)。
  2. 显性电平(Dominant Level):

    • 定义: 在CAN总线中,显性电平指的是CANH和CANL之间的电压差为2V。
    • 实际电压范围: 1.5V 到 3V。
    • 逻辑含义: 代表逻辑0。
    • 记忆法: “显性”代表逻辑0,因为在这种情况下,电压差非常明显,电压差为2V(显著的电压差,逻辑0)。

差分信号的表示方法

CAN总线使用差分信号来提高抗干扰能力和通信稳定性。差分信号是通过两根线路(CANH和CANL)来表示数据的状态:

  1. 隐性电平(逻辑1):

    • 电压状态: CANH和CANL的电压几乎相同,即电压差接近0V。
    • 电压范围: CANH和CANL都在接近0V,范围大约是-0.5V到0.05V。
  2. 显性电平(逻辑0):

    • 电压状态: CANH和CANL之间的电压差为2V,即CANH的电压比CANL高2V。
    • 电压范围: CANH的电压在1.5V到3V之间,CANL的电压在0V到1.5V之间。

CAN收发器的作用

CAN收发器的主要作用是将逻辑电平转换为适合CAN总线的差分信号:

  1. 数据发送: 当芯片需要发送数据时,CAN收发器将数据转换为差分信号。在发送逻辑0(显性电平)时,收发器确保CANH和CANL之间有一个2V的电压差;在发送逻辑1(隐性电平)时,收发器确保两条线的电压差几乎为0V。

  2. 数据接收: 当CAN总线接收到信号时,CAN收发器将差分信号转换为逻辑电平,然后传递给接收芯片进行处理。

总结

  • 隐性电平(逻辑1)和显性电平(逻辑0)是通过CAN总线上的电压差来表示的。
  • 隐性电平时CANH和CANL电压几乎相同,电压差接近0V。
  • 显性电平时CANH和CANL电压差为2V,CANH的电压高于CANL的电压。
  • CAN收发器的作用是将逻辑电平转换为适合CAN总线的差分信号,确保数据在总线上的正确传输。

让我们通过一个具体的例子来说明CAN总线如何使用隐性电平和显性电平来传输数据。

例子:传输数据的过程

假设我们有一个汽车控制系统,里面有多个控制单元,比如发动机控制单元(ECU)、刹车控制单元和车身控制单元。它们需要通过CAN总线互相通信。以下是一个传输逻辑0和逻辑1的具体过程:

1. 发送逻辑0(显性电平)
  • 情景: 发动机控制单元(ECU)需要告诉刹车控制单元,当前刹车状态为“激活”。
  • 电压状态:
    • CANH: 2.5V(比如在1.5V到3V的范围内)
    • CANL: 0.5V(因此电压差为2V)
  • 说明: 在这个情况下,CAN收发器将CANH电压设定在高电平(2.5V),同时将CANL电压设定在低电平(0.5V),形成显性电平,代表逻辑0。
2. 发送逻辑1(隐性电平)
  • 情景: 发动机控制单元(ECU)现在需要发送一个无关紧要的状态更新,比如当前不需要进行任何操作。
  • 电压状态:
    • CANH: 0V(或接近0V)
    • CANL: 0V(或接近0V)
  • 说明: 在这个情况下,CAN收发器将CANH和CANL的电压都调整到接近0V,从而形成隐性电平,代表逻辑1。这意味着网络中没有紧急数据传输。

具体的电压变化示意

发送逻辑0的过程:
  • 初始状态:
    • CANH: 0V
    • CANL: 0V
  • 收发器切换为显性电平:
    • CANH: 2.5V
    • CANL: 0.5V
发送逻辑0
    CANH:  |--- 2.5V ---|
    CANL:  |--- 0.5V ---|
           --------------
          电压差: 2V
发送逻辑1的过程:
  • 初始状态:
    • CANH: 2.5V
    • CANL: 0.5V
  • 收发器切换为隐性电平:
    • CANH: 0V
    • CANL: 0V
发送逻辑1
    CANH:  |--- 0V ---|
    CANL:  |--- 0V ---|
           --------------
          电压差: 0V

总结

通过这个例子,我们可以看到:

  • 逻辑0是通过将CANH设为高电压(2.5V),将CANL设为低电压(0.5V)来实现的,形成了一个明显的电压差(显性电平)。
  • 逻辑1则是通过将两条线的电压都设为接近0V来实现的,形成了电压差接近于0V(隐性电平)。

这样,汽车控制系统的不同模块就可以通过CAN总线有效地传输它们之间的数据。希望这个例子能帮助你更好地理解CAN总线的工作原理!

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空间机器人

您的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值