CAN总线1.3CAN总线1.3.1CAN的发展概况现代社会对汽车的要求不断提高,这些要求包括:极高的主动安全性和被动安全性;乘坐的舒适性;驾驶与使用的便捷和人性化;尤其是低排放和低油耗的要求等。在汽车设计中运用微处理器及其电控技术是满足这些要求的最好方法,而且已经得到了广泛的运用。目前这些系统有:ABS(防抱系统)、EBD(制动力分配系统)、EMS(发动机管理系统)、多功能数字化仪表、主动悬架、导航系统、电子防盗系统、自动空调和自动CD机等。1.3典型应用系统构成1.汽车总线控制系统图9-19目前国产轿车上的网络连接方式汽车CAN总线节点ECU(发动机控制器)的设计图9-20由51单片机开发的CAN节点的原理图2.陶瓷窑现场总线控制系统图9-21几种陶瓷辊道窑抽风风机给氧风机热电偶1热电偶5氧含量探头压力传感器入坯口出品口供油管道供油流量计出油流量计角执行器热电偶8(a)上彩烤花辊道窑辊道窑外型(b)墙砖辊道窑炉外型图(c)网带烧花辊道窑的辊道传送图(d)辊道窑布局示意图(1)控制系统结构及总体设计图9-22控制系统总体设计(2)控制系统硬件设计图9-23驱动模块硬件结构图1.3.1CAN的发展概况这些系统由多个电控单元相互连接而成,可分为控制器、传感器、执行器等。同时各个系统之间也互相连接,进行着越来越多的数据交换。这样就需要使用大量的线束和插接器来实现互连,进行它们之间的数据交换。随着汽车电子技术的不断发展,这种需求的增长是惊人的(如图)。1.3.1CAN的发展概况由于线束和插接器的数量不断增加,整车电子系统的复杂程度愈来愈高,其可靠性将难以保证,故障率会提高,维修会更加困难。为了满足汽车内部信息交换量急剧增加的要求,有必要使用一种实现多路传输方式的车载网络系统。这种网络系统采用串行总线结构,通过总线信道共享,减少线束的数量。车载网络除了要求采用总线拓扑结构方式外,必须具有极好的抗干扰能力;极强的差错检测和处理能力;满足信息传输实时性要求;同时具备故障的诊断和处理能力等。另外考虑到成本因素,要求其控制接口结构简单,易于配置。1.3.1CAN的发展概况20世纪80年代,Bosch的工程人员开始研究用于汽车的串行总线系统,因为当时还没有一个网络协议能完全满足汽车工程的要求。参加研究的还有Mercedes-Benz公司、Intel公司,还有德国两所大学的教授。1986年,Bosch在SAE(汽车工程人员协会)大会上提出了CAN1987年,INTEL就推出了第一片CAN控制芯片—82526;随后Philips半导体推出了82C200。1993年,CAN的国际标准ISO11898公布从此CAN协议被广泛的用于各类自动化控制领域。1.3.1CAN的发展概况1992年,CIA(CANinAutomation)用户组织成立,之后制定了第一个CAN应用层“CAL”。1994年开始有了国际CAN学术年会(ICC)。1994年美国汽车工程师协会以CAN为基础制定了SAEJ1939标准,用于卡车和巴士控制和通信网络。到今天,几乎每一辆欧洲生产的轿车上都有CAN;高级客车上有两套CAN,通过网关互联;1999年一年就有近6千万个CAN控制器投入使用;2000年销售1亿多CAN的芯片;2001年用在汽车上的CAN节点数目超过1亿个。但是轿车上基于CAN的控制网络至今仍是各大公司自成系统,没有一个统一标准。1.3.1CAN的发展概况基于CAN的应用层协议应用较通用的有两种:DeviceNet(适合于工厂底层自动化)和CANopen(适合于机械控制的嵌入式应用)。任何组织或个人都可以从DeviceNet供货商协会(ODVA)获得DeviceNet规范。购买者将得到无限制的、真正免费的开发DeviceNet产品的授权。DviceNet自2002年被确立为中国国家标准以来,已在冶金、电力、水处理、乳品饮料、烟草、水泥、石化、矿山等各个行业得到成功应用,其低成本和高可靠性已经得到广泛认同。1.3.2CAN的性能特点有专门的国际标准ISO11898。任一节点可在任一时刻主动发送。报文以标识符分为不同的优先级,可满足不同的实时性要求。优先级最高的报文保证134us内得到传输。非破坏性总线仲裁技术,大大节省了总线冲突的仲裁时间。通过对报文滤波可实现点对点、一点对多点和全局广播等多种传送方式。速率最高可达1Mbps,最远可达10km节点数可达110个,标识符几乎不受限制1.2CAN的性能特点短帧结构,传输时间短,受干扰概率低,适于工业环境每帧信息都采用CRC校验及其他检错措施,数据出错率极低。通信介质选择灵活(双绞线、同轴电缆或光纤)错误严重情况下自动关闭输出,保证不影响总线上其他节点通信。性价比高,器件容易购置,节点价格低。开发技术容易掌握,能充分利用现有的单片机开发工具。1.3.3位数值表示和通信距离“显性”位0和“隐性”位1若总线上有两个以上驱动器同时分别发送“0”和“1”,其结果是总线数值为显性“0”。VCAN-HVCAN-L隐性位隐性位显性位CAN总线上两个节点间的最大距离速率kbps1000500250125100距离m40130270530620速率kbps5020105距离m13003300670010000CAN和485的比较特性RS-485CAN-bus成本低高网络特性单主网络多主网络容错机制无多重错误处理和检错机制总线利用率低高节点错误的影响大无通讯距离1.5km10km通讯速率低高第2章CAN技术规范1991年9月BOSCH公司发布了CAN技术规范2.0,该技术规范包括A和B两部分。2.0A给出了CAN报文的标准格式2.0B给出了标准的和扩展的两种报文格式1993年11月ISO正式将它颁布为:道路交通工具-数据信息交换-高速通信控制器局域网标准ISO11898。2.0B完全兼容2.0A。所以我们介绍2.0B。2.1基本概念位速率在一个给定的CAN系统里,位速率是唯一且固定的远程数据请求通过发送远程帧,需要数据的节点可以请求另一节点发送相应数据帧仲裁当总线开放时任何单元均可开始发送报文,运用非破坏性逐位仲裁规则解决潜在冲突:在标识符(仲裁区)发送期间,每个发送器都监视总线上当前的电平,并与它发送的电平进行比较,如果相等则继续发送,如果发送一个隐性位(1)而检测到的是一个显位(0),那么此节点失去仲裁,立即停止后续位的发送。仲裁区值最小的竞争者将赢得仲裁。2.1基本概念——标识符的逐位仲裁01ArbitrationLostModule1Module2BusLine显性隐性失去仲裁节点1节点2线上可见2.2依据OSI模型的CAN的分层结构位编码/解码位定时同步驱动器接收器特性逻辑链路子层LLC接收滤波超载通知恢复管理介质访问控制子层MAC数据包装/解包帧编码介质访问管理错误监测出错标定应答串并转换数据链路层物理层故障界定总线故障管理监控器2.3报文传送及其帧结构2.3.1帧格式和帧类型标准帧11位标识符扩展帧29位标识符帧类型数据帧、远程帧、错误帧和过载帧编码规则1)位填充:发送器监视发送位流,连续5个相同位便自动插入一个补码位。(错误帧和过载帧以及帧结束标志不执行位填充)2)采用不归零(NRZ)编码2.3.2数据帧由7个不同的场组成。数据场长度可为0CAN2.0B存在标准和扩展两种帧格式为了设计简单,可以对标准格式执行部分扩展,不一定要完全扩展可以用整个标识符进行报文滤波,也可以把标识符屏蔽一部分进行报文滤波仲裁场控制场数据场CRC场帧间空间帧结束帧起始ACK场帧间空间数据帧数据帧的标准格式和扩展格式标准格式扩展格式仲裁场控制场数据场11位标识符SOFRTRIDEr0DLC仲裁场控制场数据场11位标识符SOFRTRIDEDLC18位标识符r1r0SRR数据帧的标准格式和扩展格式帧起始(SOF)仅由一显位构成。所有站都必须同步于首先发送的那个帧起始前沿仲裁场(标准格式)由11位标识符ID28~ID18、远程发送请求位RTR组成,其中ID高七位不可全为1(隐性)。仲裁场(扩展格式)由29位标识符ID28~ID0、SRR位、IDE位、RTR位组成SRR是隐性位,它用于替代标准格式的RTR位。IDE=1(隐性)代表扩展格式。IDE位在扩展格式中位于仲裁场而在标准格式中位于控制场。数据帧的标准格式和扩展格式控制场由6个位组成数据长度码DLC3~DLC0指示数据场的字节数,0~8,其他数值不允许使用。保留位r1和r0必须为0,IDE(标准格式)=0数据场:0~8个字节,8位/字节,MSB先发CRC场由15位CRC序列和1位CRC界定符组成。CRC界定符为一隐性位。保留位控制场数据场或CRC场数据长度码仲裁场IDE/r1r0DLC3DLC2DLC1DLC0数据帧的标准格式和扩展格式应答场为2位,包括应答间隙和应答界定符,不进行位填充。在应答间隙时间,发送器发隐位;所有正确接收到有效报文的接收器发一个显位。应答界定符为隐位(1)。帧结束:由7个隐位组成,不进行位填充。7.2.3.3远程帧需要数据的节点可以发送远程帧请求另一节点发送相应数据帧远程帧的RTR位是隐性的,它没有数据场,所以数据长度码没有意义。2.3.4错误帧错误帧由两个不同的场组成,第一个场是不同站提供的错误标志的叠加,第二个场是错误界定符。错误标志分两种,主动错误标志(6个显性位)和被动错误标志(6个隐性位)检测到错误条件的“错误主动”站发送主动错误标志,这样一来所有其他站都会检测到错误条件并开始发送错误标志。叠加在一起最多12个显性位错误标志的重叠错误界定符帧间空间或过载帧错误帧数据帧错误标志2.3.4错误帧检测到错误条件的“错误被动”站发送被动错误标志。从那时开始,等待6个相同极性的位,一旦等到,被动错误标志就算完成错误界定符包括8个隐性位。一个站发送错误标志以后,就发送一个隐性位,并一直监视总线,直到发现一个隐性位,就发送其余7个隐性位。2.3.5过载帧过载帧包括两个场:过载标志(6个显位及其叠加)和过载界定符(8个隐位)导致发送过载标志的条件:①接收器内部要求延迟下一个数据帧或远程帧,②在间歇场第一或第二位检测到一个显性位过载标志的形式与主动错误标志一样一个站发出过载标志,其他站都将检测到过载条件并发出过载标志。过载界定符的形式与错误界定符一样。过载标志发送后,站就监视总线直到发现从显位到隐位的跳变,然后发送其余7个隐性位。过载标志的重叠过载界定符帧间空间或过载帧过载帧帧结束或错误界定符或过载界定符过载标志2.3.6帧间空间对于数据帧或远程帧,无论它前面是什么帧,都用帧间空间来分开;但是对于过载帧或错误帧,没有帧间空间与前面帧分开间歇场由3个隐位组成。间歇场期间不允许启动发送数据帧或远程帧。总线空闲周期可为任意长度。此时,总线是开放的,任何站可随时发送。间歇场总线空闲帧帧间空间帧2.4错误类型和界定5种错误类型:(1)位错误:发送器监视到总线位数值与发出的位数值不同。仲裁场填充位和应答间隙发出隐位而检测到显位则例外(2)填充错误:应该使用位填充的地方出现第6个相同位。(3)CRC错误:计算结果与收到的CRC不同(4)形式错误:固定形式的位场中出现非法位(5)应答错误:在应答间隙,发送器未检测到显位2.4错误类型和界定检测到CRC错误,应在应答界定符后发送错误标志;检测到其他错误应在下一位发送错误标志。节点的3种故障状态:①错误主动,②错误被动,③总线关闭正常情况下节点是“错误主动”站,此类站检测到错误时发送主动错误标志出现错误较多的节点转为“错误被动”站,此类站检测到错误时只能发被动错误标志出现太多错误时节点转为“总线关闭”状态,此时节点不可对总线有任何影响(例如关闭输出驱动器)2.4错误类型和界定为了界定故障,在每个节点中都有两种计数——发送错误计数和接收错误计数,按照以下规则计数:(1)接收