4 CAN总线解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

4CAN总线4.1概述4.2CAN的物理层4.3CAN协议结构4.4典型CAN总线器件及应用CAN(ControllerAreaNetwork)即控制器局域网,可以归属于工业现场总线的范畴,通常称为CANbus,即CAN总线,是目前国际上应用最广泛的开放式现场总线之一。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,它在汽车领域上的应用最为广泛,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、volkswagen(大众)等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。同时,由于CAN总线的特点,其应用范围目前已不仅局限于汽车行业,已经在自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域中得到了广泛应用。4.1概述CAN最初出现在汽车工业中,80年代由德国Bosch公司最先提出。最初动机是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。1993年CAN成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。CAN的规范从CAN1.2规范(标准格式)发展为兼容CAN1.2规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为扩展格式),目前应用的CAN器件大多符合CAN2.0规范。CAN总线是一种串行数据通信协议,其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。CAN总线特点如下:(1)可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,通信方式灵活。(2)网络上的节点(信息)可分成不同的优先级,可以满足不同的实时要求。(3)当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据。4.1.1CAN的特点(4)可以点对点、一点对多点(成组)及全局广播等传送方式接收数据。(5)直接通信距离最远可达10km(速率5Kbps以下)。(6)通信速率最高可达1MB/s(此时距离最长40m)。(7)节点数实际可达110个。(8)采用短帧结构,每一帧的有效字节数为8个。(9)每帧信息都有CRC校验及其他检错措施,数据出错率极低。(10)通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求。(11)节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。4.1.2CAN的发展背景及其应用情况1.CAN的起源•现代社会对汽车的要求不断提高,这些要求包括:极高的主动安全性和被动安全性;乘坐的舒适性;驾驶与使用的便捷和人性化;尤其是低排放和低油耗的要求等。•在汽车设计中运用微处理器及其电控技术是满足这些要求的最好方法,而且已经得到了广泛的运用。目前这些系统有:ABS(防抱系统)、EBD(制动力分配系统)、EMS(发动机管理系统)、多功能数字化仪表、主动悬架、导航系统、电子防盗系统、自动空调和自动CD机等。•这些系统由多个电控单元相互连接而成,可分为控制器、传感器、执行器等。同时各个系统之间也互相连接,进行着越来越多的数据交换。这样就需要使用大量的线束和插接器来实现互连,进行它们之间的数据交换。随着汽车电子技术的不断发展,这种需求的增长是惊人的。•为了满足汽车内部信息交换量急剧增加的要求,有必要使用一种实现多路传输方式的车载网络系统。这种网络系统采用串行总线结构,通过总线信道共享,减少线束的数量。•车载网络除了要求采用总线拓扑结构方式外,必须具有极好的抗干扰能力;极强的差错检测和处理能力;满足信息传输实时性要求;同时具备故障的诊断和处理能力等。另外考虑到成本因素,要求其控制接口结构简单,易于配置。2.CAN的发展概况•20世纪80年代,Bosch的工程人员开始研究用于汽车的串行总线系统,因为当时还没有一个网络协议能完全满足汽车工程的要求。参加研究的还有Mercedes-Benz公司、Intel公司,还有德国两所大学的教授。•1986年,Bosch在SAE(汽车工程人员协会)大会上提出了CAN•1987年,INTEL就推出了第一片CAN控制芯片—82526;随后Philips半导体推出了82C200。•1993年,CAN的国际标准ISO11898公布•从此CAN协议被广泛的用于各类自动化控制领域。•1994年美国汽车工程师协会以CAN为基础制定了SAEJ1939标准,用于卡车和巴士控制和通信网络。•到今天,几乎每一辆欧洲生产的轿车上都有CAN;2000年销售1亿多CAN的芯片;2001年用在汽车上的CAN节点数目超过1亿个。•但是轿车上基于CAN的控制网络至今仍是各大公司自成系统,没有一个统一标准。•基于CAN的应用层协议应用较多的有两种:DeviceNet(适合于工厂底层自动化)和CANopen(适合于机械控制的嵌入式应用)。•DeviceNet自2002年被确立为中国国家标准以来,已在冶金、电力、水处理、乳品饮料、烟草、水泥、石化、矿山等各个行业得到成功应用,其低成本和高可靠性已经得到广泛认同。4.1.3一个典型的工程实例一汽-大众汽车有限公司2001年12月上市的宝来(Bora)轿车,在动力传动系统和舒适系统中就装用了两套CAN数据传输系统,其中CAN数据传输舒适系统如图4.1所示。接发电机底盘网络仪表单元MMMMMMMMMMMM前门单元车身中央控制单元空调单元前座单元顶窗单元前座单元左前门单元MMM后门单元后门单元后座单元MM后窗单元MMMCANMLIN电机加热器灯具控制面板图例:图4-1CAN数据传输舒适系统CAN总线连接了传动装置控制中央单元、灯控单元、门控单元、座椅控制单元、空调单元以及仪表盘控制单元等等。由LIN总线构成的LIN网络作为CAN网络的辅助网络,连接了车窗控制单元、雨刷控制单元、天窗控制单元等低速设备LIN网络(LocalInterconnectNetwork),由汽车厂商为汽车开发,作为CAN网络的辅助网络,目标应用在低端系统,不需要CAN的性能、带宽以及复杂性。LIN的工作方式是一主多从,单线双向低速传送数据(最高20K位/秒),与CAN相比具有更低的成本,且基于UART接口,无需硬件协议控制器,使系统成本更低。CAN数据传输舒适系统网络与动力传动系统网络通过网桥相互通信。4.2CAN的物理层物理层被细分成3个子层,它们分别是:l物理信令位编码定时和同步l物理媒体连接驱动器和收发器特性l媒体相关接口总线连接器收发器实现物理媒体连接子层。物理信令子层和数据链路层之间的连接是通过集成的协议控制器实现的,如:PCx82C200、SJA1000等。而媒体相关接口负责连接传输媒体,譬如将总线节点连接到总线的连接器,如:PCA82C250、TJA1050等。图4.2ISO11898标准数据链路层和物理层结构图4.2.1CAN的网络拓扑CAN以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。其网络拓扑形式大多是总线型结构,拓扑示意图见图4.3。节点1节点2节点3节点4CAN总线图4.3CAN的总线型网4.2.2CAN的物理媒体连接CAN总线物理层的物理媒体连接比较灵活,可以采用共地的单线式(汽车常用)、双线式、同轴电缆、双绞线、光缆等,理论上节点数目没有限制,实际可达110个。电子信号在总线上会被信号线终端反射回来,避免信号的反射对节点正确读取总线电压非常重要。在总线的两个终端加上终端电阻以终结总线,可以避免信号反射。4.3CAN协议结构CAN为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。根据ISO/OSI参考模型,CAN2.0规范细分为以下不同的层次:数据链路层和物理层(如图4.5所示)。位编码/解码位定时同步收发器特性逻辑链路子层LLC接收滤波超载通知恢复管理介质访问控制子层MAC数据包装/解包帧编码介质访问管理错误监测出错标定应答串并转换数据链路层物理层故障界定总线故障管理监控器图4.5CAN协议分层结构和功能CAN协议分层结构:逻辑链路控制子层(LLC)的作用范围:•为远程数据请求以及数据传输提供服务。•确定由实际要使用的LLC子层接收哪一个报文。•为恢复管理和过载通知提供手段。MAC子层的作用主要是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。位定时的一些普通功能也可以看作是MAC子层的一部分。物理层的作用是在不同节点之间根据所有的电气属性进行位的实际传输。CAN层结构具有以下功能:•物理层定义信号是如何实际地传输的,因此涉及到位时间、位编码、同步的解释。技术规范没有定义物理层的驱动器/接收器特性,以便允许根据它们的应用,对发送媒体和信号电平进行优化。•MAC子层是CAN协议的核心。它把接收到的报文提供给LLC子层,并接收来自LLC子层的报文。MAC子层负责报文分帧、仲裁、应答、错误检测和标定。MAC子层也被称作故障界定的管理实体监管。此故障界定为自检机制,以便把永久故障和短时扰动区别开来。•LLC子层涉及报文滤波、过载通知、以及恢复管理。CAN的报文标准帧11位标识符扩展帧29位标识符帧类型数据帧、远程帧、错误帧和过载帧数据帧:数据帧携带数据从发送器至接收器。总线上传输的大多是这个帧。远程帧:由总线单元发出,请求发送具有同一识别符的数据帧。数据帧(或远程帧)通过帧间空间与其他各帧分开。需要数据的节点可以发送远程帧请求另一节点发送相应数据帧。错误帧:任何单元一但检测到总线错误就发出错误帧。过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。例如接收器内部要求延迟下一个数据帧或远程帧时,将导致发送过载帧。CAN控制器的作用•完成CAN规范所规定的物理层和数据链路层大部分功能•有微处理器接口,易于连接单片机•结构分两种类型,独立IC或与单片机集成在一起,SJA1000属于前者•属于后者的有:PHILIPS的87C591、LPC2119,西门子的C167C,INTEL的80C196CA等•都遵循CAN2.0规范4.4典型CAN总线器件及应用4.4.1SJA1000CAN控制器SJA1000是一个独立的CAN控制器,适合于汽车和普通的工业应用。SJA1000独立的CAN控制器有2个不同的操作模式:1BasicCAN模式:和PCA82C200兼容。BasicCAN模式是上电后默认的操作模式,因此用PCA82C200开发的已有硬件和软件,可以直接在SJA1000上使用而不用作任何修改。2PeliCAN模式:是新的操作模式。它能够处理所有CAN2.0B规范的帧类型。而且它还提供一些增强功能,使SJA1000能应用于更宽的领域。工作模式通过时钟分频寄存器中的CAN模式位来选择,复位时默认模式是BasicCAN模式。CAN控制器SJA1000在系统中的位置传感器执行元件MMI模块控制器CAN控制器CAN收发器TXRX传感器执行元件MMI微控制器SJA100082C250TXRXCAN总线分布模块1分布模块2SJA1000控制器的结构发送缓冲区验收滤波器接收FIFOCAN2.0B核心模块接口管理逻辑主控制器收发器SJA1000CAN总线线路CAN核心模块:根据CAN规范控制CAN帧的发送和接收。接口管理逻辑:用于连接外部主控制器。SJA1000通过复用的地址/数据总线,与主控制器联系。发送缓冲器:用于存储一个完整的扩展或标准报文。当主控制器初始发送时,接口管理逻辑会使CAN核心模块从发送缓冲器读CAN报文。验收滤波器:通过这个可编程的滤波器能确定主控制器要接收哪些报文。接收FIFO:用于存储所有收到的报文,储存报文的多少由工作模式决定,最多能存储32个报文。图4.17SJA1000控制器功能框图SJA1000控制器功能框图•(1)接口管理逻辑(IML)接口管理逻辑解释来自CPU的命令,控制CAN寄存器的寻址,向主控制

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功