什么是CAN bus?

在谈论车联网的时候,你应该会经常听到CAN bus这个词。什么是CAN bus? 它又是如何工作的呢?

CAN bus是控制器局域网络总线技术(Controller Area Network Bus)的简称,是一种基于信息的、专为车辆设计的串行通信协议。

在汽车行业中,出于对安全性、舒适性和便捷性的要求,各种各样的电子控制单元(Electronic Control Unit, 简写为ECU)被开发了出来。车越高级,车上的控制单元越多、也越复杂,如电子燃油喷射装置、ABS装置、安全气囊装置、电动门窗等。

这些系统之间通信所用的数据类型以及对可靠性的要求不尽相同,往往需要多条总线,线束的数量也随之增加。为了满足 “减少线束数量”、“通过多个LAN进行大量数据的高速通信”的需求,1986年,以研发和生产汽车电子产品著称的德国BOSCH公司开发出面向汽车的CAN通信协议。之后,CAN 通过ISO11898 及ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。

CAN bus的工作原理

遍布车身的传感器需要实时监控车辆状态,并将此信息发送至相对应的控制单元内。比如,来自气压传感器、发动机温度传感器、油门踏脚位置传感器、发动机转速传感器等单元的信息到达发送机控制单元,后者经过分析处理之后发送相应的指令来控制喷油嘴的喷油量。

车上的控制单元不是独立工作的,它们往往需要共享信息以更好地协作。这就存在信息的传递问题。控制单元之间的通信主要有两种方式。

第一种,每条信息都通过各自独立的数据线进行交换。比如,如果两个控制单元之间有5种信号需要传递,则需要5根独立的数据线。信息越多,需要的线缆越多,控制单元之间也需要越多的针脚。

第二种,控制单元之间所有的信息都通过两根数据线进行交换。通过这种方式,所有的信息,不管容量大小,都可以通过这两根线进行传递。

这种数据线,也叫做CAN数据总线。CAN总线使用的是一种广播的通信方式,无需主机参与。也就是说,所有控制单元都能不加区分地“听”到其他单元在“说”什么,而无法单独发送信息给特定的单元——除非经过特别设置。

CAN bus vs. OBD

和CAN bus经常一起出现的,还有另外一个词OBD。那么OBD又是什么?两者有什么区别呢?

OBD的全称是车上诊断系统(On-board Diagnostics),是欧美制定的、用于监控汽车排放相关系统(如发动机和变速箱)的规范。OBD定义了排放相关系统必须支持的诊断服务和数据传输格式,设置了故障机制,便于记录故障信息并报警提示车主。

OBD的数据传输,需要底层数据链路作为支撑。这个底层数据链路,可以是CAN线,也可以是其他如K线。

看出来了吗?CAN bus是车内控制器局域网通信的底层数据链路,而OBD是基于CAN bus运行的、用于监控车辆状态的诊断系统。

目前大多数车的OBD接口都是CAN总线。

CAN bus有哪些优点?

车载环境的特殊性对通信系统的易用性、可靠性和成本提出了高要求。CAN bus的优点正好满足车域网的应用需求。

简单易用,成本低廉

上文提到,通过两根CAN数据总线,就能实现车上所有控制单元之间的信息传递,而无需复杂的模拟信号线路。这大大减轻了车身重量,节省了复杂的线缆铺设费用,从而降低了成本。

集中式管理

CAN bus通过一个入口与网络中所有的控制单元通信,实现集中式诊断、数据记录和配置。

坚固可靠

CAN数据总线十分坚固耐用,抗电气及电磁波干扰能力强。因此,CAN总线可以安装在各类车型上,即使是对安全条件要求严格的车辆应用,CAN总线也能胜任其通信任务。

高效运行

CAN bus系统中,通信的优先级是由ID决定的。优先级最高的数据可以立即发送到总线,而无需干扰其他数据。这保证了网络系统的高效运行。

易于部署

作为一种已经证明、行业通用的总线标准,CAN bus有成熟的生态系统作为支撑,可轻松安装于各种车辆。

CAN bus的应用

由于CAN bus突出的控制及发现错误的能力,它非常适合用作车辆诊断协议。事实上,CAN bus几乎可以应用于各行各业。

映翰通车载无线通讯网关VG710和车载追踪网关VT310均集成了CAN bus,通过OBD-II或J1939等协议,帮助客户实时获取车辆运行状态,更好地管理各种车载装置,保障车辆安全高效运行。