基于CAN总线技术的汽车ECU设计
控制器局域网(ControllerAreaNetwork,CAN)是Bosch公司于1986年在美国汽车工程师协会(SAE)大会上推出的一种新型串行总线,被广泛地用于汽车内部测量与执行部件之间的数据通信,其总线规范已被制订为国际标准,由于其高性能、高可靠性及独特的设计,CAN总线技术越来越受到人们的重视[1,2]。随着现代汽车技术的发展,电子设备在汽车中的比重越来越高,如电喷发动机、燃油高压共轨、制动防抱死系统(ABS)、自动变速器系统、注油控制以及电动门窗等[3],这些总成之间需要检测并交换大量数据,采用CAN总线技术不仅成本低,而且可靠性明显提高。从1992年起,Mercedes-Benz(奔驰)公司开始在高级客车中使用CAN总线技术,随后,Volvo、Saab、Volkswagen、BMW、Renault以及Fiat等汽车公司也分别在自己的汽车上使用CAN总线技术[4-6]。国内针对汽车的CAN总线技术研究还处于起步阶段,北京航空航天大学、中国计算机学会单片机公共实验室、清华大学以及中国汽车技术研究中心等单位都开展了汽车CAN总线技术的研究[7-9],但目前还不能构成系列产品,并没有真正组建汽车CAN总线网络。
本文以某即将定型汽车为原型,设计基于CAN总线技术的汽车ECU系统,对于已有CAN接口的总成,可以直接依据协议读取CAN接口的数据,对于没有CAN接口的总成,利用AT90CAN128单片机设计汽车ECU,采集传感器信息,并通过CAN接口与其他总成交换数据,组建基于CAN总线的汽车网络,这样既有利于汽车本身的数据通信,又能方便配套的便携式诊断仪器读取汽车技术状态信息。
2、CAN总线网络的组建
CAN是一种串行数据通信总线,其通信速率能达到1Mbps,并已经成为一项国际标准,其最大特点是,任一节点所传送的数据信息并不包含传送节点或接收节点的地址,信息内容通过一个标识符(ID)作上标记,在整个网络中,该标识符是唯一的,网络上的其他节点接收到信息后,每一节点都对这一标识符进行测试,以判断信息内容是否与己有关,如果是相关信息,将其接收并进行处理,否则,即被忽略。这样,不同的节点可以接收到不同的数据,保证了通信的实时性。
现代汽车广泛地采用了电子技术,而总控模块能随时接收到所需要的数据,实现汽车总成之间的数据交换使用CAN总线组成数据传输网络主要用途之一,如发动机系统、自动变速器系统、ABS系统、自动差速锁系统、中央充放气系统、动力转向系统以及电动门窗系统等总成之间的数据交换。利用CAN总线技术组建汽车信息传输网络的基本结构如图1所示。
由于一些总成生产厂家在设计时已经考虑了信息交互的接口问题,在生产时已将CAN总线技术集成到总成上。对于这类总成(如高压共轨发动机、自动变速器以及ABS等系统),只需通过ECU读取其CAN总线协议即可完成数据信息交换。对于其他总成,通过设计汽车ECU,采集相应传感器的信息,并利用CAN接口向总线广播式发送数据,可完成信息交换。
3、汽车ECU的设计
为了设计带有CAN接口的汽车ECU,较为常见的方法是用单片机与CAN控制器相结合,如使用8051单片机与CAN控制器芯片SJA1000来组合使用[4][6]。由于CAN总线技术应用领域广泛,一些芯片生产厂家(如Motorola、Intel、Philip、Atmel、Microchip以及NEC等公司)纷纷在自己的芯片中集成了CAN接口模块,这样将大大提高CAN接口通信的可靠性。本文采用Atmel公司的一款内嵌CAN控制器的AVR型单片机AT90CAN128来实现CAN节点。
AT90CAN128单片机具有以下特点:128K字节FLASH,4K字节EEPROM和4K字节的SRAM,带有硬件乘法器功能,53个通用的I/O口,32个通用工作寄存器,4个具有比较模式的定时器/计数器,2通道8位的PWM,6通道2到16位精度的PWM,2个USART和1个主从SPI串行口,1个两线(I2C)串行接口,一个8通道10位具有可选增益差分输入的A/D转换器,1个带内部振荡器的可编程看门狗定时器[10]。同时还集成了CAN控制器,与CAN标准帧2.0A和扩展帧2.0B完全兼容,具有15个独立的信息对象,能够处理所有的帧类型,具有8位静态分配的数据缓冲区,晶振频率8MHz时数据传送速率可达到1Mbps。
3.1硬件设计
在本文的设计中,利用AT90CAN128的A/D转换器采集相关传感器的电压信号(如水温、振动、位置、气压以及油压等信号),利用定时器/计数器模块采集相关传感器的脉冲信号(如转速、里程等信号),由于AT90CAN128集成了CAN控制器功能,因此,结合CAN总线收发器即可完成CAN总线的接收和发送任务。CAN总线收发器采用了ATA6660芯片,它是CAN控制器与物理传输媒体之间的物理连接子层接口。为提高系统的抗干扰性,在AT90CAN128与ATA6660芯片之间加入高速光耦芯片6N137,其接口电路如图2所示。
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)