CAN基础内容详解(二)——物理层

物理层主要完成设备间的信号传送,把各种信号转换成物理信号,并将这些信号传输到其他目标设备。在这一层中,CAN-bus对信号电平、通信时使用的电缆及连接器等进行了详细规定。
CAN-bus由ISO标准化后发布了两个标准,分别是ISO11898(125kpbs~1Mbps的高速通信标准)和ISO11519(小于125kpbs的低速通信标准)。这两个标准仅在物理层不同,在数据链路层是相同的。

CAN收发器与信号电平

位于CAN-bus物理层的器件要完成逻辑信号与电缆上物理信号的转换,该器件称为收发器。
如下图所示为CAN收发器的引脚图。
CAN基础内容详解(二)——物理层_第1张图片
1、发送时将逻辑信号转换成物理信号,此收发器转换得到的信号为差分电平信号。
2、接收时将物理信号转换成逻辑信号,此收发器将差分电平信号转换为逻辑信号。

CAN-bus使用两根电缆进行信号传输,分别为CAN_High和CAN-Low(简称CAN_H和CAN_L)。
CAN收发器根据两根电缆之间的电压差来判断总线电平,这种传输方式称为“差分传输”。
电缆上的电平信号只有两种可能,分别为显性电平(代表逻辑0)和隐形电平(代表逻辑1)
如下图所示是ISO11898和ISO11519信号电平的对比
CAN基础内容详解(二)——物理层_第2张图片
CAN基础内容详解(二)——物理层_第3张图片
信号使用双绞线进行传输,是因为双绞线上传输差分信号可以抑制共模干扰,能够提高通讯的稳定性、可靠性和抗干扰的能力。
CAN基础内容详解(二)——物理层_第4张图片

线与原理

如下左图为CAN收发器的引脚图,其中CAN_H引脚在芯片里面等效电路为如下右图所示
CAN基础内容详解(二)——物理层_第5张图片
CAN收发器开路集电极和总线相连通过切换开关状态输出高低电平。
CAN基础内容详解(二)——物理层_第6张图片
状态1:截止状态,晶体管截止(开关未接合)
无源:总线电平=1,电阻高
状态0:接通状态,晶体管导通(开关已接合)
有源:总线电平=0,电阻低

因为所有的收发器的输出开关都是并联的,所以在总线上显性电平具有优先权,只要有一个单元输出显性电平(低电平),总线上即为显性电平(低电平)。而隐形电平(高电平)则具有包容的意味,只有所有的单元都输出隐性电平(高电平),总线上才为隐性电平(显性电平比隐性电平更强)。
CAN控制器在发送的同时,会监听总线的当前电平是否与自己发送的电平一致,如果不一致则会进行相应的处理。如果不一致发生在仲裁域,就会迫使输出隐形电平的节点退出发送;如果发生在其他区域,则会出现触发错误。

同步与填充位

通信方式分为两种,同步串行通信与异步串行通信。CAN-bus属于异步串行通信的方式。
CAN基础内容详解(二)——物理层_第7张图片
异步串行通信的优点是减少了一根时钟线,缺点是各接收器的时钟不可能完全一致,总是会有偏差,有些偏快,有些偏慢,这些误差会累积直到通信出错。

如下图所示为标准波特率时采集的数据。
CAN基础内容详解(二)——物理层_第8张图片
如下两幅图分别为波特率偏大20%和波特率偏小20%时采样的数据。
CAN基础内容详解(二)——物理层_第9张图片
CAN基础内容详解(二)——物理层_第10张图片
由上述几幅图可以看出,由于各接收器的时钟可能会存在偏差,这就导致传输一两个位时,误差可能看不出来,但是传输的位数变多了之后,这些误差会累积直到通信出错。

那么如何解决这个问题呢?
同步!
同步串行通信和异步串行通信的波形图如下图所示。
同步就像给钟表校时一样,隔一段时间所有节点的时钟就同步一次。这样尽管大家的时钟仍有误差,但是可以消除累积误差。
CAN-bus规定信号的跳变沿时刻进行同步,因此只要信号发生变化,节点时钟就会被同步。如下图所示,累积的误差可以限制在两个跳变沿之间,减少错误的发生。
CAN基础内容详解(二)——物理层_第11张图片
然而这种同步方式又会带来新的问题,比如说发送多个相同位时,并无跳变沿可用于同步,这样就会导致误差不断累积,最后导致通信出错。
CAN基础内容详解(二)——物理层_第12张图片
那么CAN-bus如何消除这种累积误差?
CAN-bus通过位填充提供同步信号,从而消除累积误差。CAN-bus规定,如果传输的信号连续5个位时相同的,就要插入一个电平相反的位,这个额外插入的位称为“填充位”。
CAN基础内容详解(二)——物理层_第13张图片
接下来先让我们了解一下位时间这个概念。
一个标称的位时间=1/波特率

  • 同步段用于同步各节点,正常情况下跳变沿落在此段内。
  • 传播段用于补偿网络内的传输延时。
  • 相位缓冲段用来补偿跳变沿的相位误差,可以被再同步处理延长或缩短。
  • 采样点时刻读取的电平代表这个位的电平,一般位于相位缓冲段1的结尾
  • 信息处理时间是从采样点开始留出的一段用于计算后续位电平的时间。
    CAN基础内容详解(二)——物理层_第14张图片
    只有采样点设置正确了,我们才能进行正确的采样,获得正确的数据。
    不同的波特率下,1位时间的时间份额不相同,采样点也不相同,如下图为不同波特率下的采样点设置。
    CAN基础内容详解(二)——物理层_第15张图片
    不同波特率下的时间份额设置可参考下表。
    CAN基础内容详解(二)——物理层_第16张图片

你可能感兴趣的:(CAN总线)