CAN总线入门(硬件部分)

记得诚 2020-07-12


之前写了一篇关于车载OBD接口的文章,带大家认识了车载总线,今天的文章是关于最重要的车载总线——CAN BUS。 汽车上的OBD接口,到底是啥东西?
文章目录:

  • 一、CAN总线是什么?
  • 二、CAN总线的作用?
  • 三、CAN总线的优点
  • 四、CAN总线的历史
  • 五、CAN总线拓扑图
    • 1. 显性和隐性
    • 2. CAN收发器的作用
    • 3. CAN控制器的作用
    • 4. 120Ω终端电阻
  • 六、基本的CAN总线电路

一、CAN总线是什么?

CAN是Controller Area Network的简称,是一种有效支持分布式控制或实时控制的串行通信网络,最早是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,1986年,BOSCH开发出面向汽车的CAN通信协议,后来,CAN总线通过ISO 11898和ISO 11595进行了标准化,现在在欧洲是汽车网络的标准协议。

把汽车比如成人体,那CAN总线就是神经系统,电子控制单元(ECU)就是身体的一部分,身体是由多个ECU组成的,各个ECU之间通过神经系统进行通信,一个部分感知到的信息可以与另一部分共享。

CAN的应用非常广泛,工业自动化、船舶、医疗设备、工业设备等方面。

二、CAN总线的作用?

在汽车上,CAN总线的作用就是把不同的部件连接起来,然后这些部件都执行同一套标准协议,这样的好处是兼容性高,信息可以可靠共享,并且能减少整车的线束数量。


节点可以挂很多部件

三、CAN总线的优点

1. 简单低成本: ECU通过单个CAN系统进行通信,而不是直接的复杂模拟信号线通信,这样减少了错误,重量,接线和成本。 2. 完全集中: CAN总线提供了一个接入点,可以与所有网络ECU进行通信,——支持集中诊断,数据记录和配置。 3. 稳定: CAN总线具有强大的抗电干扰和抗电磁干扰能力,非常适合对安全要求严格的应用(例如车辆)。 4. 高效: 通过ID对CAN帧进行优先级排序,以便优先级最高的数据可以立即访问总线,而不会引起其他帧的中断。

四、CAN总线的历史

CAN总线发展很多年了。

CAN之前版本:汽车ECU是复杂点对点布线。

1986年:博世开发了CAN协议作为解决方案。

1993年:CAN被采用为估计标准(ISO 11898)

2003年:ISO 11898称为标准系列。

2012年:博世发布了CAN FD 1.0

2015年:CAN FD协议标准化(ISO 11898-1)

2016年:CAN物理层,数据速率高达5Mbit/s,已通过ISO 11898-2标准化。

如今,CAN BUS已成为汽车、卡车、公共汽车、拖拉机、轮船、飞机等的标准配置。

五、CAN总线拓扑图

从拓扑图中可以看到一个CAN节点,主要由CPU,CAN控制器,CAN收发器组成。



CAN总线拓扑

1. 显性和隐性

CAN总线是差分线,有CAN_H和CAN_L两根线,差分线的抗干扰能力强,外界有干扰时,几乎同时会耦合到差分线的两根线上,而接收端关心的只是两信号的差值,所以外界的共模噪声可以被完全抵消,图中箭头所示,虽然两根线都受到干扰,但是两者差值不变。


CAN收发器根据CAN_H和CAN_L的差值来判断总线电平,总线电平有两种,显性电平和隐性电平,CAN2.0A/B规定的总线value如下:

电平 逻辑 总线Value
显性电平 0 CAN_H=3.5V,CAN_L=1.5V
隐性电平 1 CAN_H=2.5V,CAN_L=2.5V

有人会说,为什么显性电平是逻辑0,是因为CAN总线采用的"线与"的规则进行总线冲裁,在CAN2.0上规定了总线上同时传输显性和隐形电平时,总线是显性,即1&0=0,所以0为显性。

从下图可以看到,ISO11898的电平和ISO11519是不一样的,现在大多数都是和ISO11898一样的。


下面是两个显隐性电平的区别比较,同时给出了最大最小值。



两种标准CAN总线电平区

2. CAN收发器的作用

顾名思义,收发器既可以收,也可以发,收是接收CAN总线上的差分数据,将数据转换为TTL电平,发送给控制器;发是将CAN控制器的TTL电平信号转换为差分信号进行总线数据传输。


3. CAN控制器的作用

CAN控制器一方面接收收发器的数据,进行解析后发送给CPU;另一方面接收CPU的指令数据,然后发送给CAN收发器。

4. 120Ω终端电阻

高频信号传输时,信号波长相对传输线较短,信号在传输线终端会形成反射波,干扰原信号,所以需要在传输线末端加终端电阻,使信号到达传输线末端后不反射。

对于低频信号则不用CAN总线两端必须连接终端电阻才可以正常工作,终端电阻应该与通讯电缆的阻抗相同,典型值为120欧姆,其作用是匹配总线阻抗,提高数据通信的抗干扰性及可靠行。


终端电阻并不都是120Ω,以下是ISO 11898协议的推荐值。



终端电阻取值

四、基本的CAN总线电路

如下就是CAN BUS的基本电路,因为一般节点都是和OBD接口相连的,ESD保护非常重要,另一方面120Ω并不是任何时候都需要,所以电路设计时加一个JP1跳接帽比较好。


必要时需要在CAN_H和CAN_L预留RC EMI filters,用来吸收EMI



CAN总线上预留RC吸收EMI


今天的文章到这里就结束了。。。

后续的文章会更新CAN总线的软件协议部分,尽请期待。 如果觉得文章对你有点帮助,那就三连走起吧!

—— The End ——



记得诚 一位硬件工程师的原创分享,涵盖电路设计、PCB设计、电子元器件、电子电路和硬件科普等内容,涉及无线通信、嵌入式、物联网、GNSS定位和车载等领域。
评论
热门推荐
相关推荐
X
广告
我要评论
0
2
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦