CAN总线物理层特性详细分析
CAN总线物理层特性详细分析
CAN总线(Controller Area Network Bus)是由BOSCH公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线,广泛应用于汽车、嵌入式、工业控制等领域。下图是车载网络的构想示意图:
CAN控制器根据两根通信线(CAN_H、CAN_L)上的电位差来判断总线电平(差分信号)。总线电平分为显性电平(逻辑0)和隐性电平(逻辑1),二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。
CAN总线是:异步,半双工。其无需时钟线,通信速率由设备各自约定,并且由于其半双工通信可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序。
CAN总线的传输方式:广播式和请求式。
广播式传输方式,你可以理解为一个人拿着大喇叭分配工作(发送方发送数据),其他人都可以听到这个喇叭喊话的声音(接收方接收数据),如果此时喇叭喊“张三”(报文ID),那么张三会站出来(响应)。
请求式传输方式,也有一个人才分配工作,不过这个人不想拿着大喇叭主动吆喝别人过来(不主动发送数据),而是假如李四过来问能不能给我分配一个工作(接收方先请求),分配工作的人说可以,即可对李四分配工作(发送方发送数据)。
在了解CAN总线的硬件电路之前我们先回顾一下其他通信协议:
名称 | 引脚 | 双工 | 时钟 | 电平 | 设备 |
---|---|---|---|---|---|
USART | TX、RX | 全双工 | 异步 | 单端 | 点对点 |
IIC | SCL、SDA | 半双工 | 同步 | 单端 | 多设备 |
SPI | SCLK、MOSI、MISO、CS | 全双工 | 同步 | 单端 | 多设备 |
CAN | CAN_H、CAN_L | 半双工 | 异步 | 差分 | 多设备 |
USB | DP、DM | 半双工 | 异步 | 差分 | 点对点 |
对于CAN总线的硬件电路,每个设备通过CAN收发器挂载在CAN总线网络上,CAN控制器引出的TX和RX与CAN收发器相连,CAN收发器引出的CAN_H和CAN_L分别与总线的CAN_H和CAN_L相连。CAN总线可分为高速CAN总线和低速CAN总线。
高速CAN使用闭环网络,CAN_H和CAN_L两端添加120Ω的终端电阻,数据传输速率125k~1Mbps,传输距离小于40m:
其中两个120Ω终端电阻的作用:
①防止回波反射,使波形更平稳;若是不加中断电阻,反射波形可能如褐色所示,加入中断电阻如紫色所示:
②在没有设备操作时,使电压“收紧”,使其电压一致。这里的原理可以类比IIC通信的上拉电阻
CAN总线是差分信号,所以终端电阻可以在没有设备操作时将两根线“收紧”至电压一致状态,代表就是默认的逻辑电平“1”,当设备想要“0”时,就去把总线拉开,当设备想要“1”时,就不去碰总线,在终端电阻的作用下,自动恢复到“1”:
低速CAN使用开环网络,CAN_H和CAN_L其中一端添加2.2kΩ的终端电阻,数据传输速率10k~125kbps,传输距离小于1Km:
CAN总线采用差分信号,即两线电压差(-)传输数据位,前面我们也了解了,CAN总线的信号分为高速和低速两种:
对于高速CAN规定:
- 压差为0V时表示逻辑1(隐性电平)
- 电压差为2V时表示逻辑0(显性电平)
对于这里的显隐性对应的逻辑状态可能会有人不解,因为通常情况下,我们应该显性对应1,隐性对应0,但是这里为什么反着来了呢?
这里主要是因为显性和隐性所表示的是总线的收紧状态,前面我们了解到CAN总线的默认状态是CAN_L和CAN_H两条总线收紧状态,不需要设备干预所以是隐性电平,又知道总线收紧时其所对应的电平状态为逻辑电平“1”,而总线张开,需要设备干预所以为显性电平,又知道总线张开时所对应的逻辑电平“0”,因此会出现隐性电平和逻辑“1”绑定,显性电平和逻辑“0”绑定。
简单点来说,显性电平和隐性电平表示的是总线的状态,而定义“0”和“1”是为了和电路约定俗成的规则相对应。
对于低速CAN规定:
- 电压差为-1.5V时表示逻辑1(隐性电平)
- 电压差为3V时表示逻辑0(显性电平)
其数据手册引脚介绍:
名称 | 引脚 | 描述 |
---|---|---|
TXD | 1 | 传输数据输入,从CAN控制器读入数据到总线驱动器 |
GND | 2 | 电源地 |
VCC | 3 | 电源电压 |
RXD | 4 | 传输数据输出,从CAN控制器读出数据到总线驱动器 |
Vref | 5 | 参考电压输入 |
CAN_L | 6 | 低电平CAN总线 |
CAN_H | 7 | 高电平CAN总线 |
S | 8 | 选择输入高速/静默模式(相当于一个开关,可不用) |
物理层特性:
物理层 | ISO 11898(High speed) | ISO 11519-2(Low speed) |
---|---|---|
通信速度 | 最高1Mbps | 最高125kbps |
总线最大长度 | 40m/1Mbps | 1km/40kbps |
总线单元 | 最大30 | 最大20 |
总线拓扑 | 隐性 | 显性 |
Min | Nom | Max |
CAN_High(V) | 2.00 | 2.50 |
CAN_Low(V) | 2.00 | 2.50 |
电位差(H-L)(V) | -0.5 | 0 |
双绞线(屏蔽/非屏蔽)闭环总线阻抗(Z) | 120Ω (Min.85Ω Max.130Ω) | 总线电阻率(r): 70mΩ/m |
双绞线(屏蔽/非屏蔽)开环总线阻抗(Z) | 120Ω (Min.85Ω Max.130Ω) | 总线电阻率(Г): 90mΩ/m |
CAN_L与GND间静电容量 | 30pF/m | CAN_H与GND间静电容量 |