基于CAN总线的电动汽车控制系统设计本文介绍将CAN总线技术应用到电动汽车控制系统,并采用通用扩展单元解决了电动汽车电控系统的电路设计复杂性的问题,优化了组合各电控单元信息以实现充分信息共享,从而达到提高电动汽车控制系统性能的目的。一、前言CAN总线是德国BOSCH公司在20世纪80年代初为解决汽车中众多的控制与测试仪器之间的数据交换而开发的一种通信协议。由于CAN总线具有突出的可靠性、实时性和灵活性,因而得到了业界的广泛认同和运用,并在1993年正式成为国际标准和行业标准,被誉为“最有前途的现场总线”之一。以CAN为代表的总线技术在汽车上的应用不但减少了车身线束,也提高了汽车的可靠性。在国外现代轿车的设计中,CAN已经成为必须采用的技术,奔驰、宝马、大众、沃尔沃及雷诺等汽车都将CAN作为控制器联网的手段。我国目前CAN总线技术在汽车上的应用存在着很大的空白,在电动汽车上应用CAN总线技术研究尚处于起步阶段。电动汽车融合了许多的电子控制系统,如电池管理系统、电机控制系统、驱动控制系统、再生制动系统及ABS系统等。电子设备的大量应用,必然导致车身布线增长且复杂、运行可靠性降低、线路上的功率损耗加大、故障维修难度增大。特别是电子控制单元的大量引入,为了提高信号的利用率,要求大批的数据信息能在不同的电子单元中共享,汽车综合控制系统中大量的控制信号也需要实时交换,传统线束已远远不能满足这种需求。将CAN总线动汽车控制系统,并采用通用扩展单元解决电动汽车电控系统的电路设计复杂性的问题,优化组合各电控单元信息以实现充分信息共享,达到提高电动汽车控制系统性能的目的。二、CAN的发展背景(一)CAN的起源现代社会对汽车的要求不断提高,这些要求包括:极高的主动安全性和被动安全性;乘坐的舒适性;驾驶与使用的便捷和人性化;尤其是低排放和低油耗的要求等。在汽车设计中运用微处理器及其电控技术是满足这些要求的最好方法,而且已经得到了广泛的运用。目前这些系统有:ABS(防抱系统)、EBD(制动力分配系统)、EMS(发动机管理系统)、多功能数字化仪表、主动悬架、导航系统、电子防盗系统、自动空调和自动CD机等。这些系统由多个电控单元相互连接而成,可分为控制器、传感器、执行器等。同时各个系统之间也互相连接,进行着越来越多的数据交换。这样就需要使用大量的线束和插接器来实现互连,进行它们之间的数据交换。随着汽车电子技术的不断发展,这种需求的增长是惊人的(如图)。CAN属于现场总线范畴,是一种有效支持分布式控制或实时控制的串行通信网络。CAN总线在工业控制领域广泛应用得益于其自身的技术特点。由于线束和插接器的数量不断增加,整车电子系统的复杂程度愈来愈高,其可靠性将难以保证,故障率会提高,维修会更加困难。为了满足汽车内部信息交换量急剧增加的要求,有必要使用一种实现多路传输方式的车载网络系统。这种网络系统采用串行总线结构,通过总线信道共享,减少线束的数量。车载网络除了要求采用总线拓扑结构方式外,必须具有极好的抗干扰能力;极强的差错检测和处理能力;满足信息传输实时性要求;同时具备故障的诊断和处理能力等。另外考虑到成本因素,要求其控制接口结构简单,易于配置。(二)CAN的发展状况20世纪80年代,Bosch的工程人员开始研究用于汽车的串行总线系统,因为当时还没有一个网络协议能完全满足汽车工程的要求。参加研究的还有Mercedes-Benz公司、Intel公司,还有德国两所大学的教授。1986年,Bosch在SAE(汽车工程人员协会)大会上提出了CAN1987年,INTEL就推出了第一片CAN控制芯片—82526;随后Philips半导体推出了82C200。1993年,CAN的国际标准ISO11898公布从此CAN协议被广泛的用于各类自动化控制领域。1994年开始有了国际CAN学术年会(ICC)。1994年美国汽车工程师协会以CAN为基础制定了SAEJ1939标准,用于卡车和巴士控制和通信网络。到今天,几乎每一辆欧洲生产的轿车上都有CAN;高级客车上有两套CAN,通过网关互联;1999年一年就有近6千万个CAN控制器投入使用;2000年销售1亿多CAN的芯片;2001年用在汽车上的CAN节点数目超过1亿个。但是轿车上基于CAN的控制网络至今仍是各大公司自成系统,没有一个统一标准。基于CAN的应用层协议应用较通用的有两种:DeviceNet(适合于工厂底层自动化)和CANopen(适合于机械控制的嵌入式应用)。任何组织或个人都可以从DeviceNet供货商协会(ODVA)获得DeviceNet规范。购买者将得到无限制的、真正免费的开发DeviceNet产品的授权。DviceNet自2002年被确立为中国国家标准以来,已在冶金、电力、水处理、乳品饮料、烟草、水泥、石化、矿山等各个行业得到成功应用,其低成本和高可靠性已经得到广泛认同。三、CAN的工作原理及特点(一)CAN的工作原理当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。每组报文开头的11位字符为标识符(CAN2.0A),定义了报文的优先级,这种报文格式称为面向内容的编址方案。当一个节点要向其它节点发送数据时,该节点的CPU将要发送的数据和自己的标识符传送给本节点的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时,网上的其它节点处于接收状态。每个处于接收状态的节点对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新节点而无需在硬件或软件上进行修改。当所提供的新节点是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。(二)CAN总线特点CAN总线是一种串行数据通信协议,其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。CAN总线特点如下:(1)可以多种方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。(2)网络上的节点(信息)可分成不同的优先级,可以满足不同的实时要求。(3)采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据。(4)可以点对点、一点对多点(成组)及全局广播几种传送方式接收数据。(5)直接通信距离最远可达10km(速率5Kbps以下)。(6)通信速率最高可达1MB/s(此时距离最长40m)。(7)节点数实际可达110个。(8)采用短帧结构,每一帧的有效字节数为8个。(9)每帧信息都有CRC校验及其他检错措施,数据出错率极低。(10)通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求。(11)节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。四、CAN协议规范CAN为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。CAN的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。在汽车电子行业里,使用CAN连接发动机控制单元、传感器、防刹车系统、等等,其传输速度可达1Mbit/s。同时,可以将CAN安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置。技术规范的目的是为了在任何两个CAN仪器之间建立兼容性。可是,兼容性有不同的方面,比如电气特性和数据转换的解释。为了达到设计透明度以及实现灵活性,根据ISO/OSI参考模型,CAN2.0规范细分为以下不同的层次:数据链路层和物理层(如图4.5所示)。在以前版本的CAN规范中,数据链路层的LLC子层和MAC子层的服务及功能分别被解释为“对象层”和“传输层”。逻辑链路控制子层(LLC)的作用范围如下:•为远程数据请求以及数据传输提供服务。•确定由实际要使用的LLC子层接收哪一个报文。•为恢复管理和过载通知提供手段。MAC子层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。位定时的一些普通功能也可以看作是MAC子层的一部分。位编码/解码位定时同步驱动器接收器特性逻辑链路子层LLC接收滤波超载通知恢复管理介质访问控制子层MAC数据包装/解包帧编码介质访问管理错误监测出错标定应答串并转换数据链路层物理层故障界定总线故障管理监控器CAN协议分层结构和功能1.CAN规范中的对应ISO/OSI参考模型的网络层物理层的作用是在不同节点之间根据所有的电气属性进行位的实际传输。五、CAN总线在电动汽车上的应用CAN总线应用于电动汽车上具有以下优点。减少各功能模块所需的线束数量和体积。减少整车质量并降低汽车成本,具有较高的数据传输可靠性和安装便捷性,扩展了汽车功能。一些数据如车速、电机转速和SOC等能够在总线上共享,因此去除了冗余的传感器,使传感器信号线减至最少,控制单元可做到高速数据传输。可以通过增加节点来扩展功能,如果数据扩展增加新的信息,只需升级软件即可。实时监测并纠正由电磁干扰引起的传输错误,并在检测到故障后存储故障码。目前存在的多种汽车网络标准,其侧重的功能有所不同,为方便研究和设计应用,SAE车辆网络委员会将汽车数据传输网划分为A、B、C3类。A类面向传感器/执行器控制的低速网络,数据传输位速率通常只有1~10kb/s。主要应用于电动门窗、座椅调节和灯光照明等控制。B类面向独立模块间数据共享的中速网络,位速率一般为10~100kb/s。主要应用于电子车辆信息中心、故障诊断、仪表显示和安全气囊等系统,以减少冗余的传感器和其它电子部件。C类面向高速、实时闭环控制的多路传输网,最高位速率可达1Mb/s,主要用于悬架控制、牵引控制、先进发动机控制和ABS等系统,以简化分布式控制和进一步减少车身线束。到目前为止,满足C类网要求的汽车控制局域网只有CAN协议。六、方案设计(一)系统原理图图1为电动汽车CAN总线控制系统原理图。图1系统原理图该系统主要由驱动控制模块、再生制动控制模块、电机控制模块、能量管理模块、电池控制模块、仪表显示模块及故障诊断模块等组成。通过CAN实现各个控制模块间的信息通信。除了指令的发送和接收外,汽车的一些基本状态信息(如电机转速、电池荷电状态、车速等)是大部分控制单元必须获取的数据,控制单元采用广播方式向总线发送数据。如果在同一时刻所有控制单元都向总线发送数据,将发生总线上的数据冲突,因此,CAN总线协议提出了用标识符识别数据优先权的总线仲裁。表1给出了电动汽车电控单元接收及发送的数据类型及其它单元对这些信息共享的程序。表1电动汽车电控单元接收及发送的数据类型ABSASR空调系统1电池荷电状态TRRR2电机转速RTRRR3车速RRRTR4RRTR5RRRRT6RRTRRR7电机温度RT8电池温度RT9驾驶室内温度RRT注:T-发送,R-接收(二)模块单元电路框图在对高速CAN上的节点进行硬件设计时采用通用扩展单元(UDU)。这样只需通过改变软件来实现各节点的不同功能,从而简化了硬件系统设计。通用扩展单元结构如图2所示。图2通用扩展单元在通用扩展单元中选用AT89C52作微控制器它是一个低电压、高性能的CMOS8位单片机,片内含8kB的可反复擦写的只读程序存储器(EPROM)和256B的随机存取数据存储器(RAM),兼容标准MCS251指令系统,片内置通用8位中央处理器和Flash存储单元,可适用于许多较复杂系统的控制应用场合。CAN控制器采用Philips公司生产的SJA1000,它是应用于汽车和一般工业环境的独立CAN控制器,具有完成CAN高性能通信协议所要求的全部必要特性,具有简单总线连接的SJA1000可完成物理层