车联网 - CAN总线详解
什么是CAN总线
CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。
CAN总线是罗伯特·博世(Robert Bosch)公司开发的汽车总线,已迅速获得汽车和航空航天行业的认可。CAN是一种串行总线协议,用于连接各个系统和传感器,以替代传统的多线织机。它支持汽车部件在高达1Mbps的单线或双线联网数据总线上进行通信。
传统布线方式
自1940年代初以来,汽车制造商通过集成越来越多的电子组件来不断改进其车辆的技术。随着技术的进步,随着电子部件取代机械系统并提供额外的舒适性,便利性和安全性,车辆变得更加复杂。在CAN总线发布之前,车辆包含大量配线,这是互连所有各种电子组件所必需的。
由于布线量大,因此,售后安装不仅需要安装人员了解集成系统之间的通信方式,而且还需要在整辆车上进行大量连接。更糟糕的是,车辆接线在车辆年份,品牌甚至型号之间都不同。结果,安装人员需要有丰富的经验,并且要为市面上最琐碎的设备进行繁琐的工作,否则需要花费大量时间进行故障排除。
CAN总线发布
BMW 850 coupe是1986年首款进入市场的CAN Bus车辆。车辆布线减少2 km,车辆的总重量至少减少了50 kg,并且仅使用了一半的连接器。与先前方式相比,车辆系统和传感器能够在单线或双线通信线上以非常高的速度(25kbps-1Mbps)进行通信。但是,CAN总线的引入也增加了车辆的复杂性,并且在市场安装后变得更加困难,并且在许多情况下无法执行。
2006年,在北美销售的所有汽车中,有70%以上将使用CAN总线技术。从2008年开始,汽车工程师协会(SAE)要求在美国销售的车辆中100%使用CAN总线通信协议,而欧盟也有类似的法律。
CAN总线优点
网络各节点之间的数据通信实时性强
CAN控制器工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。
开发周期短
CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现像在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期。
结构简单
只有2根线与外部相连,并且内部集成了错误探测和管理模块。
CAN总线是一种差分总线,总线值是由双绞线的两根线的电势差来决定的,总线值有显性和隐性两种状态。总线就是一种信息传递的通道,不管收和发都是通过它来完成的。另外CAN总线是一种串行总线,总线上一次只能传递一个报文信息。