汽车局域网CAN总线详解
2015-05-08
一、概述
随着汽车工业以及自动化程度的发展,现代汽车中所使用的电子控制系统和通讯系统越来越多,如发动机电控系统、自动变速器控制系统、防抱死制动系统(ABS)、自动巡航系统(ACC)和车载多媒体系统等,这些系统之间。系统和汽车的显示仪表之间,系统和汽车故障诊断系统之间均需要进行数据交换,如此巨大的数据交换量,如仍然采用传统数据交换的方法,即用导线进行点对点的连接的传输方式将是难以想象的,因此,用串行数据传输系统取而代之就成为必然的选择。目前汽车上的电子部件越来越多,它们分别担负着不同的作用并挂在不同的总线- CAN总线上。CAN 是控制局域网络(Control Area Network)的简称[/B],最早由德国BOSCH 公司推出,用于汽车内部测量与执行部件之间的数据通信。其总线规范已被ISO 国际标准组织制订为国际标准。CAN 的信号传输采用短帧结构,每一帧的效字节数为8 个,因而传输时间短,受干扰的概率低。当节点严重错误时,具有自动关闭的功能,以切断该节点与总线的联系,使总线上的其他节点及其通信不受影响,具有较强的抗干扰能力。CAN 总线开始被用于汽车的电子系统通讯上起源于欧洲,它具有极强的抗干扰能力及纠错能力。汽车在运行过程中,所属电子部件之间需要进行通讯以交换实时数据,但是由于这些电子部件可能分别挂在不同的CAN总线上,而不同的CAN总线具有不同的数据传输速率,所以不同的CAN总线之间不能直接进行数据通讯,这就需要一个CAN总线网关控制器来进行协调高速CAN总线和低速CAN总线之间的通信。示意图如下图所示。
二、硬件设计
1、 总体框图
作为一个工业上应用的可靠CAN节点,看门狗、电源隔离和信号隔离是必要的,总体原理框图如下:
2、 硬件原理图
从以上可以看出,该硬件电路主要由三部分组成。
I、 处理器最小系统
处理器采用带有两路CAN接口的ARM7系列单片机 - LPC2119,该单片机内部有两路CAN接口、32位处理器、内部总线结构为哈佛总线结构。如下图所示:
复位电路主要采用采用专用复位芯片SP706以及数据缓冲芯片74HC125来构成,如下图所示:
该电路具有按键复位、上电复位和低电压复位功能。按键复位主要用于系统调试功能,经74HC125可以输出两路复位信号-系统复位信号和JTAG复位信号。
时钟电路采用常用的无源晶振与微调电容组成。如图所示。
程序烧写口采用JTAG方式,比较方便在线调试。如图所示。
II、 电源控制部分
本系统共需要四组电源:5V、3.3V、1.8V,另外还有CAN隔离电源(5V)。电源主芯片采用开关电源AP1509,其中5V电源是主电源,为其他各组电源提供输入电源,由于汽车上只有DC12V电源,所以需要进行DC/DC转换,电路如下:
AP1509是一款宽输入电压范围的DC/DC转换器,输入电压可高达22V,输出负载电流可高达2A。并且有可控输入信号端SD,可以切断或开启该芯片的正常工作,以达到节电的目的。
本系统的处理器LPC2119需要两组电源- 3.3V和1.8V,其中1.8V为处理器的内核电源,3.3V为处理器的I/O电源,电路如下:
由于CAN总线现场的电磁干扰非常强,所以需要对CAN电源进行单独隔离,避免干扰处理器的正常运行。主要就是采用一个隔离芯片,电路如下:
III、 CAN收发电路
该部分是系统的核心部分。共有两路完全相同的电路分别挂在两路CAN总线上。
电路如下:
CAN电路部分与处理器部分需要通过光耦进行电气隔离。采用了高速光耦芯片
TLP113。CAN收发器芯片采用TJA1050,该芯片的主要特点有:
● 高速 (高达 1 Mbaud)
● 至少可以连接110个节点
● 总线保护及终端保护功能
● 符合ISO 11898 标准
从上图可以看出,在结构上,CAN收发器TJA1050左侧连接系统处理器,右侧连接CAN总线。实现了单片机对CAN总线数据的操作。
三、软件设计
CAN 是一种实时数据总线,它不需要给出信号接受者的地址,信号发送者将安全编码后的数据发给所有的接受者。高速的CAN 总线每毫秒内可传送32bytes 有效数据。每个信号接受者从总线上读取其所需的数据。CAN总线数据的收发遵循CAN-BUS 2.0协议,运用到汽车上即为j1939协议。CAN-BUS 技术减少了线束的数量和控制器接口的引脚数,与此同时可以更简单、迅速地实现在线编程、诊断,甚至多个控制器共同作用等新功能。当停车发动机熄火时,CAN-BUS 的舒适型系统将自动处于休眠状态,整个系统处于最低耗电状态,从而节省能源的消耗。一旦接受到车门开启等信号,无需发动机启动,系统立即被唤醒而激活,开始接受各处节点传递的信息。本装置主要负责两条CAN总线上数据的互相转发,并不对数据作任何改动或诊断,即全透明传输.设置高速CAN总线上的数据传送速率为500K,低速CAN总线上的数据传送速率为125K.汽车上的每个电子模块均有CAN接口,以连接到CAN总线上.汽车运行时,所有电子模块均通过各自的CAN接口向CAN总线发送系统实时数据,而需要CAN数据的模块则从CAN总线接收数据,然后再作处理或诊断.软件总体架构采用中断结构,数据帧采用8位标准帧格式.该车载网关控制器的软件流程图如下:
主程序流程图
中断服务程序流程图
目前CAN总线在汽车上已经得到广泛应用,包括雅阁、新天籁、迈腾、领域、奥迪、宝马、奔驰、凌志等!