CAN数据总线(CANBUS)第4讲CAN通信技术概述CAN(ControllerAreaNetwork)即控制器局域网络。由于其高性能、高可靠性、及独特的设计,CAN越来越受到人们的重视。国外已有许多大公司的产品采用了这一技术。CAN最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。现代汽车越来越多地采用电子装置控制,如发动机的定时、注油控制,加速、刹车控制(ASC)及复杂的抗锁定刹车系统(ABS)等。由于这些控制需检测及交换大量数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题,采用CAN总线上述问题便得到很好地解决。1993年CAN成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。CAN的规范从CAN1.2规范(标准格式)发展为兼容CAN1.2规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为扩展格式),目前应用的CAN器件大多符合CAN2.0规范。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的起源现代社会对汽车的要求不断提高,这些要求包括:极高的主动安全性和被动安全性;乘坐的舒适性;驾驶与使用的便捷和人性化;尤其是低排放和低油耗的要求等。在汽车设计中运用微处理器及其电控技术是满足这些要求的最好方法,而且已经得到了广泛的运用。目前这些系统有:ABS(防抱系统)、EBD(制动力分配系统)、EMS(发动机管理系统)、多功能数字化仪表、主动悬架、导航系统、电子防盗系统、自动空调和自动CD机等。汽车电子技术发展的特点:汽车电子控制技术从单一的控制逐步发展到综合控制,如点火时刻、燃油喷射、怠速控制、排气再循环。电子技术从发动机控制扩展到汽车的各个组成部分,如制动防抱死系统、自动变速系统、信息显示系统等。从汽车本身到融入外部社会环境。现代汽车电子技术的分类:单独控制系统:由一个电子控制单元(ECU)控制一个工作装置或系统的电子控制系统,如发动机控制系统、自动变速器等。集中控制系统:由一个电子控制单元(ECU)同时控制多个工作装置或系统的电子控制系统。如汽车底盘控制系统。控制器局域网络系统(CAN总线系统):由多个电子控制单元(ECU)同时控制多个工作装置或系统,各控制单元(ECU)的共用信息通过总线互相传递。带有中央控制单元的车带有三个中央控制单元的车带有三个中央控制单元和总线系统的车带有三个中央控制单元的CAN驱动网络车用网络发展原因电子技术发展----线束增加线控系统(X-BY-WIRE)计算机网络的广泛应用智能交通系统的应用汽车发展带来的问题(1)汽车电子技术的发展汽车上电子装置越来越多汽车的整体布置空间缩小(2)传统电器设备多为点到点通信导致了庞大的线束(3)大量的连接器导致可靠性降低。粗大的线束与汽车中有限的可用空间之间的矛盾越来越尖锐,电缆的体积、可靠性和重量成为越来越突出的问题,而且也成为汽车轻量化和进一步电子化的最大障碍,汽车的制造和安装也变得非常困难。(4)存在冗余的传感器。Volvo汽车近三十年来线束增长的情况车用网络:通过总线将汽车上的各种电子装置与设备连成一个网络,实现相互之间的信息共享,既减少了线束,又可更好地控制和协调汽车的各个系统,使汽车性能达到最佳。汽车网络化的优点布线简单,设计简化,节约铜材,降低成本。可靠性提高,可维护性大为提高实现信息共享,提高汽车性能满足现代汽车电子设备种类功能越来越多的要求总之,使用汽车网络不仅可以减少线束,而且能够提高各控制系统的运行可靠性,减少冗余的传感器及相应的软硬件配置,实现各子系统之间的资源共享,便于集中实现各子系统的在线故障诊断。Canbus的发展历史大众公司首次在97年PASSAT的舒适系统上采用了传送速率为62.5Kbit/m的Canbus。98年在PASSAT和GOLF的驱动系统上增加了Canbus,传送速率为500Kbit/m。2000年,大众公司在PASSAT和GOLF采用了带有网关的第二代Canbus。2001年,大众公司提高了Canbus的设计标准,将舒适系统Canbus提高到100Kbit/m,驱动系统提高到500Kbit/m。2002年,大众集团在新PQ24平台上使用带有车载网络控制单元的第三代Canbus。2003年,大众集团在新PQ35平台上使用五重结构的Canbus系统,并且出现了单线的LIN-BUS。◆20世纪80年代,Bosch的工程人员开始研究用于汽车的串行总线系统,因为当时还没有一个网络协议能完全满足汽车工程的要求。参加研究的还有Mercedes-Benz公司、Intel公司,还有德国两所大学的教授。◆1986年,Bosch在SAE(汽车工程人员协会)大会上提出了CAN◆1987年,INTEL就推出了第一片CAN控制芯片—82526;随后Philips半导体推出了82C200。◆1993年,CAN的国际标准ISO11898公布从此CAN协议被广泛的用于各类自动化控制领域。CAN技术的发展◆1992年,CIA(CANinAutomation)用户组织成立,之后制定了第一个CAN应用层“CAL”。◆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产品的授权。◆DeviceNet自2002年被确立为中国国家标准以来,已在冶金、电力、水处理、乳品饮料、烟草、水泥、石化、矿山等各个行业得到成功应用,其低成本和高可靠性已经得到广泛认同。基于CAN总线的汽车电器网络结构发动机ECU自动变速器ECUABS/TCSECU安全气囊ECU电控悬架ECU巡航控制ECU动力转向ECU电机控制ECU电池管理ECU灯光控制ECU刮雨洗涤控制ECU电动座椅ECU门锁防盗ECU电动车窗ECU后视镜喇叭ECU气候控制ECU警告信号ECU仪表显示ECU整车控制器ECU(网关)整车控制器ECU(网关)高速总线低速总线故障诊断ECU目前汽车上的网络连接方式主要采用2条CAN:一条用于驱动系统的高速CAN,速率达到500kb/s。主要面向实时性要求较高的控制单元,如发动机、电动机等另一条用于车身系统的低速CAN,速率是100kb/s。主要是针对车身控制的,如车灯、车门、车窗等信号的采集以及反馈。其特征是信号多但实时性要求低,因此实现成本要求低。CAN总线布置、结构和基本特点CAN总线系统上并联有多个元件。这就要求整个系统的布置满足以下要求:•可靠性高:传输故障(不论是由内部还是外部引起的)应能准确识别出来•使用方便:如果某一控制单元出现故障,其余系统应尽可能保持原有功能,以便进行信息交换•数据密度大:所有控制单元在任一瞬时的信息状态均相同,这样就使得两控制单元之间不会有数据偏差。如果系统的某一处有故障,那么总线上所有连接的元件都会得到通知。•数据传输快:连成网络的各元件之间的数据交换速率必须很快,这样才能满足实时要求。CAN总线布置、结构和基本特点考虑到信号的重复率及产生出的数据量,CAN总线系统分为三个专门的系统•CAN驱动总线(高速),500Kbit/s,可基本满足实时要求。•CAN舒适总线(低速),100Kbit/s,用于对时间要求不高的情况。•CAN“infotainment”总线(低速),100Kbit/s,用于对时间要求不高的情况。CAN-BUS系统组成:CAN收发器:安装在控制器内部,同时兼具接受和发送的功能,将控制器传来的数据化为电信号并将其送入数据传输线。数据传输终端:是一个电阻,防止数据在线端被反射,以回声的形式返回,影响数据的传输。数据传输线:双向数据线,由高低双绞线组成。Canbus上的控制器中发送信息的线路通过一个开路集电极和总线相连。Canbus的收发器如图所示,使用一个电路进行控制,这样也就是说控制单元在某一时间段只能进行发送或接受一项功能。逻辑“1”:所有控制器的开关断开;总线电平为5Vor3.5V;Canbus未通讯。逻辑“0”:某一控制器闭合;总线电平为0伏;Canbus进行通讯。Canbus的收发器因此总线导线上就会出现两种状态:状态1:截止状态,晶体管截止(开关未接合)无源:总线电平=1,电阻高状态0:接通状态,晶体管导通(开关已接合)有源:总线电平=0,电阻低2个以上控制器所组成的Canbus系统当用2个以上的控制器连接在Canbus总线上(如图所示),用逻辑1来表示断开和用逻辑0表示闭合。不考虑其他总线规则情况下,总线会出现下图的情况:1.任何开关闭合,总线上的电压为0伏2.所有开关断开,总线上的电压为5伏因此:1.只要任何一个控制器激活,则总线激活2.所有控制器关闭,总线处于未激活状态激活的总线称为显性电平;未激活的总线电平称为隐形电平功能CAN构件通过RX-线来检查总线是否有源(是否正在交换别的信息),必要时会等待,直至总线空闲下来为止。(某一时间段内的电平1(无源))如果总线空闲下来,发动机信息就会被发送出去。Canbus采用双绞线自身校验的结构,既可以防止电磁干扰对传输信息的影响,也可以防止本身对外界的干扰。系统中采用高低电平两根数据线,控制器输出的信号同时向两根通讯线发送,高低电平互为镜像。并且每一个控制器都增加了终端电阻,已减少数据传送时的过调效应。基本构造+1V-1V外界的干扰同时作用于两根导线产生的电磁波辐射相互抵消~0V数据传输线数据传输终端数据传输终端CAN收发器CAN收发器原则上CAN总线用一条导线就足以满足功能要求了,但该总线系统上还是配备了第二条导线。在这个第二条导线上,信号是按相反顺序传送的,这样可有效抑制外部干扰。CAN导线的特点各个CAN系统的所有控制单元都并联在CAN数据总线上。CAN数据总线的两条导线分别叫CAN-High和CAN-Low线。两条扭绞在一起的导线称为双绞线。双绞线,CAN-High和CAN-Low线(CAN驱动数据总线)控制单元之间的数据交换就是通过这两条导线来完成的,这些数据可能是发动机转速、油箱油面高度及车速等。为了清楚起见CAN导线分别用单颜色来表示CAN-High线总