1.1 CAN总线架构简介
CAN总线是一种用于在不同的ECU(电子控制单元)之间传输数据的线,CAN总线协议是一种ISO 国际标准化的串行通信协议,有ISO-11898 和ISO-11519两个系列。其定义有:
ISO-11898 定义了通信速率为 125 kbps ~1Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米,如图2。ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米,如图2。
图2 两类CAN总线(引自[1])
高速CAN和低速CAN广泛应用于汽车总线,如下图3。
图3 两类CAN总线应用在汽车(引自[2])
CAN通讯速率(位速率)与CAN总线长度的关系大致如下图。
以上介绍了高低速CAN两种总线架构的基本概念,接下来具体看看这两种CAN总线。
1.2 CAN总线结构信息
将上图2细化,我们可以看到两种CAN总线结构都有CAN_H,CAN_L两根线和多个节点。其中CAN_H和CAN_L线是以双绞形式缠绕,每个节点都有CAN收发器(transceiver)和CAN控制器(controller),CAN收发器和CAN控制器可能集成在芯片(on-chip),也可能是独立于芯片(off-chip)。(图3列举了两种CAN收发器--TJA1054和82C250)
图4 两类CAN总线(引自[3])
图6 双绞线形式(提高抗干扰能力,引自附1)
1.3 CAN总线信号
CAN总线上,信号表现为电压形式,通过CAN_H和CAN_L线上的电位差来表示CAN信号,分为显性电平(dominant)和隐性电平(recessive)两种类型。其中显性电平规定为逻辑0,隐性电平则为逻辑1。其具体定义可通过下图来理解。
图7 ISO-11898 (高速CAN)和ISO-11519(低速CAN)的CAN信号定义(引自[3])
具体说,如上图第1幅图:当CAN_H和CAN_L的电压均为2.5v,两者电压差为0,就规定CAN信号为隐性电平;当CAN_H的电压为3.5v,CAN_L的电压为1.5v,两者电压差为2V,就规定CAN信号为显性电平。这里实际的规