1、车辆CAN总线概述CAN 总线简介1. CAN 总线的发展历史20 世纪 80年代初期,欧洲汽车工业的蓬勃发展,车辆电子信息化程度的也 不断提高。 当时,由于消费者对于汽车功能的要求越来越多, 而这些功能的实现 大多是基于电子操作的, 这就使得电子装置之间的通讯越来越复杂, 同时意味着 需要更多的连接信号线, 但是传统的线束式汽车电子系统已经不能满足车辆电子 信息功能发展的需求。 为了解决这一制约现代汽车电子信息化发展的瓶颈, 德国 Bosch公司设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线 上,经过试验,这一总线能够有效解决现代汽车中庞大的电子控制装置之间的通 讯,并且能够减少
2、不断增加的信号线。所以在 1986年Bosch公司正式公布了这 一总线,且命名为 CAN 总线。CAN 控制器局部网 (CANController Area Network )属于现场总线的范畴, 它是一种有效支持分布式控制或实时控制的串行通讯网络, 它具有很高的网络安 全性、通信可靠性和实时性,简单实用,网络成本低,特别适用于汽车计算机控 制系统和环境恶劣、电磁辐射强和振动大的工业环境,因此 CAN 总线在诸多现 场总线中独占鳌头, 成为汽车总线的代名词, CAN 总线开始进入快速发展时期:1987年Intel公司生产出了首枚 CAN控制器(82526)。不久,Philips公司 也推出了
3、CAN 控制器 82C200;1991年,Bosch颁布CAN 2.0技术规范,CAN2.0包括A和B两个部分为促进 CAN 以及 CAN 协议的发展, 1992在欧洲成立了国际用户和厂商协 会(CAN in Automation,简称CiA),在德国Erlangen注册,CiA总部位于 Erlangen。 CiA 提供服务包括:发布 CAN 的各类技术规范, 免费下载 CAN 文 献资料,提供CANopen规范DeviceNet规范;发布CAN产品数据库,CANopen 产品指南;提供 CANopen 验证工具执行 CANopen 认证测试;开发 CAN 规范并 发布为 CiA 标准。199
4、3 年 CAN 成为国际标准 ISO1189(8 高速应用)和 ISO1151(9 低速应用);1993年,ISO颁布CAN国际标准ISO-11898;1994年,SAE颁布基于CAN的J1939标准;2003 年,Maybach 发布带 76 个 ECU 的新车型(CAN , LIN , MOST);2003年,VW 发布带35个ECU的新型Golf。根据 CiA 组织统计,截止到 2002年底,约有 500多家公司加入了这个协会, 协作开发和支持各类 CAN 高层协议;生产 CAN 控制器 (独立或内嵌) 厂家, 包括世界上主要半导体生产厂家在内, 已有 20多家, CAN 控制器产品的品
5、种已达 110 多种, CAN 控制器的数量已达 210,000,000 枚。 CAN 接口已经被公认为 微控制器( Microcontroller )的标准串行接口,应用在各种分布式内嵌系统。该 协会已经为全球应用 CAN 技术的权威。2. CAN 总线的特点CAN 总线与一般的通信总线相比 ,它的数据通信具有突出的可靠性、 实时 性和灵活性。其主要特性如下 :1)具有较高的性价比。 它结构简单 ,器件容易购置 ,每个节点的价格较低 ,而且开 发过程中能充分利用现在的单片机开发工具 ;2)是目前为止唯一有国际标准的现场总线 ;3)为多主方式工作 ,网络上任一节点均可在任意时刻主动向网络上其他
6、节点发 送信息而不分主从 ,通信方式灵活 ,且无需站地址等节点信息4)网络上的节点信息分成不同的优先级 ,可满足不同的实时要求 ,高优先级的 数据最多可在134 Q内得到传输;5)采用非破坏性总线仲裁技术 ,当多个节点同时向总线发送信息时 ,优先级较低的节点会主动地退出发送 ,而最高优先级的节点不受影响地继续传输数据 ,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会 出现网络瘫痪情况 ;6)只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送 接收数据 ,无需专门的“调度”;7)直接通信距离最远可达 10 km (速率 5 kb/s 以下) ,通信速率最高可达
7、 1 Mkb / s (此时通信距离最长为 40 m) ;8)节点数主要取决于总线驱动电路 ,目前可达成 110 个;9)采用短帧结构 ,传输时间短 ,受干扰概率低 ,具有极好的检错效果 ;10)每帧信息都有 CRC 校验及其他检错措施 ,保证了数据出错率低 ;11)通信介质可为双绞线、同轴电缆或光纤 ,选择灵活 ;12)节点在错误严重的情况下具有自动关闭输出功能 ,以使总线上其他节点的操作不受影响。自 CAN 总线问世以来,为满足 CAN 总线协议的多种应用需求,相继出现 了几种高层协议。目前大多数基于 CAN 总线的网络都采用 CAN 总线的高层协 议。CANopen、DeviceNet和
8、SDS是通常采用的高层协议,适用于任何类型的工 业控制局域网应用场合,而 CAL 则应用于基于标准应用层通信协议的优化控制 场合,SAEJ1939则应用于卡车和重型汽车计算机控制系统。其总线规范已被ISO 国际标准化组织制定为国际标准, 并被公认为是最有前途的现场总线之一。 CAN 总线的应用范围遍及从高速网络到低成本的多线路网络, 广泛应用于控制系统中 的各检测和执行机构之间的数据通信。随着控制 、计算机、通信、网络等技术 的发展,信息交换沟通的领域正在迅速覆盖从现场设备到控制、 管理的各个层次。 信息技术的发展引起自动化系统结构的变革, 逐步形成以网络集成自动化系统为 基础的企业信息系统。
9、现场总线(Fieldbus)就是顺应这一形势发展起来的新技术, 成为当今自动化领域技术发展的热点, 被誉为自动化领域的计算机局域网。 它的 出现,标志着自动化领域的又一个新时代的开始, 并对该领域的发展产生重要影 响。二、 CAN 总线基本原理1、 CAN 标准1)CAN 总线的分层结构OSI (Open System Interconnection开放系统互连参考模型将网络协议分为 7 层,由上至下分别为:应用层、表示层、会话层、传输层、网络层、链路层和物 理层。国际电工技术委员会定义现场总线模型分为三层: 应用层、 链路层和物理 层。 CAN 的分层定义与 OSI 模型一致,使用了七层模型
10、中的应用层、链路层和 物理层。 CAN 技术规范定义了模型最下面的两层:数据链路层和物理层,如图 1 所示。图 1 CAN 总线分层结构2)CAN 协议标准CAN总线协议现有 CAN1.0、CAN1.2、CAN2.0A和CAN2.0B四个版本。CAN2.0A以及以下版本使用标准格式信息帧 (11位),CAN2.0B使用扩展格式 信息帧(29位)。CAN2.0A及以下版本在接收到扩展帧信息格式时认为出错; CAN2.0B被动版本接收时忽略29位扩展信息帧,不认为出错;CAN2.0B主动版 本能够接收和发送标准格式信息帧和扩展格式信息帧。3)CAN总线网络基本结构一般而言,CAN总线网络由若干个具
11、有 CAN通信功能的控制单元(又称节 点)通过CAN_H和CAN_L两条数据线并联组成,CAN_H和CAN_L两条数据 线的两端各安装一个120 Q电阻构成数据保护器,避免数据传输到终端被反射回 来而产生反射波,影响数据的传送,如图 2所示。汽车CAN总线网络结构示意 图如图3所示。图2 CAN网络基本结构荫抱 死CAN图3汽车CAN总线网络结构示意图4) CAN总线节点硬件电路框图一个完整的CAN总线节点应该包含微控制器、CAN控制器和CAN收发器 三部分。其中微控制器负责完成 CAN控制器的初始化,与CAN控制器的进行 数据传递;CAN控制器负责将数据以CAN报文的形式传递,实现 CAN协
12、议数 据链路层的功能;CAN收发器是CAN控制器与CAN物理总线的接口,为总线提供差动发送功能,也为控制器提供差动接收功能。 CAN节点的基本结构框图如图4所示。部分微控制器集成有 CAN控制器,因此,节点方案有两种。图 4 CAN 节点基本结构框图5)CAN 差分通信CAN 总线的信号传输采用差分通信信号,差分通信具有较强的抗干扰能力。 CAN 收发器的差动信号放大器在处理信号时,会用 CAN_H 数据线的电压减去 CAN_L 数据上的电压,这两个数据线的电位差可对应两种不同逻辑状态进行编 码。在静止状态时,这两条导线上作用有相同预先设定值,该值称为静电平。对 于 CAN 驱动数据总线来说,
13、这个值大约为 2.5V 。静电平也称为隐性状态,因为 连接的所有控制单元均可修改它。在显性状态时, CAN_H 线上的电压值会升高 一个预定值(对CAN驱动数据总线来说,这个值至少为1V)。而CAN_L线上 的电压值会降低一个同样值(对 CAN 驱动数据总线来说,这个值至少为 1V)。 于是在 CAN 驱动数据总线上, CAN_H 线就处于激活状态,其电压不低于 3.5V (2.5V+1V=3.5V) ,而 CAN_L 线上的电压值最多可降至 1.5V(2.5V-1V=1.5V) 。 因此在隐性状态时,CAN_H线与CAN_L线上的电压差为0V,在显性状态时该 差值最低为2V,如图5所示。如果
14、CAN_H - CAN_L 2,那么比特为0,为显 性;如果CAN_H -CAN_L = 0 ,那么比特为1,为隐性。图 5 CAN 数据线的电平2、 CAN 总线通信原理当 CAN 总线上的一个节点 (站)发送数据时,它以报文形式广播给网络中所有 节点。对每个节点来说 ,无论数据是否是发给自己的,都对其进行接收。每组报 文开头的 11 位字符为标识符, 定义了报文的优先级 ,这种报文格式称为面向内容 的编址方案。 在同一系统中标识符是唯一的, 不可能有两个站发送具有相同标识 符的报文。当一个站要向其它站发送数据时,该站 CPU 将要发送的数据和自己 的标识符传送给本站的 CAN 控制器芯片,
15、并处于准备状态;当它收到总线分配 时,转为发送报文状态。 CAN 控制器芯片将数据根据协议组织成一定的报文格 式发出,这时网上的其它站处于接收状态。 每个处于接收状态的站对接收到的报 文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。当多个站点同时发送消息时,需要进行总线仲裁,每个控制单元在发送信息 时通过发送发送标识符来识别。 所有的控制单元都是通过各自的 RX 线来跟踪总 线上的一举一动并获知总线的状态。每个发射器将 TX 线和 RX 线的状态一位一 位地进行比较,采用“线与”机制,“显性”位可以覆盖“隐性”位;只有所有 节点都发送“隐性”位,总线才处于“隐性”状态。 CAN 是
16、这样来进行调整的: TX 信号上加有一个 “ 0”的控制单元的控制单元必须退出总线。 用标识符中位于 前部的“ 0”的个数就可调整信息的重要程度,从而就可保证按重要程度的顺序 来发送信息。标识符中的号码越小,表示该信息越重要,优先级越高。发送低优 先级报文的节点退出仲裁后, 在下次总线空闲时重发报文。 三个节点总线仲裁示 意图如图 6 所示。图6 总线仲裁示意图3、 CAN 报文帧结构CAN 总线报文传输由以下 4 个不同的帧类型所表示和控制: 数据帧:数据帧携带数据从发送器至接收器。 远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。 错误帧:任何单元检测到一总线错误就发出错误帧。 过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加 的延时。数据帧(或远程帧)通过帧间空间与前述的各帧分开。1) 数
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1