CAN总线的特点及J1939协议通信原理.doc_第1页
CAN总线的特点及J1939协议通信原理.doc_第2页
CAN总线的特点及J1939协议通信原理.doc_第3页
CAN总线的特点及J1939协议通信原理.doc_第4页
CAN总线的特点及J1939协议通信原理.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CAN总线的特点及J1939协议通信原理、内容和应用来源:/User/eking/article/3776_1.htm众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及应用。迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。 在我国的轿车中已基本具有电子控制和网络功能,排放和其他指标达到了一定的要求。但货车和客车在这方面却远未能满足排放法规的要求。计划到2006年,北京地区的货车和客车的排放要满足欧标准。因此,为了满足日益严格的排放法规,载货车和客车中也必须引入计算机及控制技术。采用控制器局域网和国际公认标准协议J1939来搭建网络,并完成数据传输,以实现汽车内部电子单元的网络化是一种迫切的需要也是必然的发展趋势。 1 CAN总线特点及其发展控制器局域网络(CAN)是德国Robert bosch公司在20世纪80年代初为汽车业开发的一种串行数据通信总线。CAN是一种很高保密性,有效支持分布式控制或实时控制的串行通信网络。CAN的应用范围遍及从高速网络到低成本底多线路网络。在自动化电子领域、发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电气系统中,如灯光聚束、电气窗口等,可以替代所需要的硬件连接。它采用线性总线结构,每个子系统对总线有相同的权利,即为多主工作方式。CAN网络上任意一个节点可在任何时候向网络上的其他节点发送信息而不分主从。网络上的节点可分为不通优先级,满足不同的实时要求。采用非破坏性总线裁决技术,当两个节点(即子系统)同时向网络上传递信息时,优先级低的停止数据发送,而优先级高的节点可不受影响地继续传送数据。具有点对点、一点对多点及全局广播接收传送数据的功能。 随着CAN在各种领域的应用和推广,对其通信格式的标准化提出了要求。1991年9月Philips Semiconductors制定并发布了CAN技术规范(Versio 2.0)。该技术包括A和B两部分。2.OA给出了CAN报文标准格式,而2.OB给出了标准的和扩展的两种格式。1993年11月ISO颁布了道路交通运输工具-数据信息交换-高速通信局域网(CAN)国际标准ISO11898,为控制局域网的标准化和规范化铺平了道路。美国的汽车工程学会SAE于2000年提出的J1939,成为货车和客车中控制器局域网的通用标准。 2.J1939协议通信原理及内容 (1)J1939与CANJ1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。主要运用于载货车和客车上。它是以CAN2.0为网络核心。表1介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。表2则给出了J1939年的一个协议报文单元的具体格式。可以看出,J1939标识符包括:PRIORTY(优先权位);R(保留位);DP(数据页位);PDU FORMAAT(协议数据单元);PDU SPECIFIC(扩展单元)和SOURCE ADDRESS(源地址)。而报文单元还包括64位的数据场。表1 CAN2.0的标准和扩展格式及J1939协议所定义的格式CAN扩展帧格式SOF11位标识符SRRIDE18位扩展标识符J1939帧格式帧起始位优先权3位R位(保)数据页DPPF格式6位SRR位扩展标识PFPS格式(8位)源地址(8位)CAN12456712131415 1617242532帧位置28262524231817 1615870表2 J1939协议报文单元的具体格式一个J1939协议报文单元PRIORITYRDPPDU FORMATPDU SPECIFICSOURCE ADDRESSDATA FIELD311888064(2)数据传转协议 J1939通信中的核心是负责数据传输的传输协议。它的功能分为两部分: (1)数据的拆分打包和重组。一个J1939的报文单元只有8个字节的数据场。因此如果所要发送的数据超过了8字节,就应该分成几个小的数据包分批发送。数据场的第一个字节从1开始作为报文的序号,后7个字节用来存放数据。所以可以发送2557=1785个字节的数据。报文被接收以后按序号重新组合成原来的数据。 (2)连接管理。主要对节点之间连接的建立和关闭,数据的传送进行管理。其中定义了5种帧结构:发送请求帧、发送清除帧、结束应答帧、连接失败帧以及用来全局接收的广播帧。节点之间的连接通过一个节点向目的地址发送一个发送请求帧而建立。在接收发送请求帧以后,节点如果有足够的空间来接收数据并且数据有效,则发送一个发送清除帧,开始数据的传送。如果存储空间不够或者数据无效等原因,节点需要拒绝连接,则发送连接失败帧,连接关闭。如果数据接收全部完成。则节点发送一个结束应答帧,连接关闭。(3)J1939的参数格式 J1939中还定义了参数的具体格式,如标识符、优先级、数据长度、参数的范围等。参数又划分为状态参数和测量参数。状态参数表示具有多态信号的某一种状态,如发动机刹车使能/禁能、巡航控制激活/关闭,扭矩/速度控制超载模式、错误代码等。而测量参数则表示所接收到的信号的值的具体大小,如缸内爆发压力、最大巡航速度、发动机转速等。3J1939协议的应用(1)J1939应用于网络构建 J1939网络层中定义了如何构建网络及连接的功能。网络层的功能包括数据的过滤、重新打包和转发。分别由以下各部分实现。 a.中继器。可以增强数据信号,使数据传输更远的距离。 b.网桥。数据的转发和过滤。它可以把网络拆解成网络分支、分割网络数据流,隔离分支中发生的故障,这样就可以减少每个网络分支的数据信息流量而使每个网络更有效,提高整个网络效率。 c.路由。可以使网络段具有独立的地址空间不同的数据传输率和媒介。 d.网关。可以在不同的协议和数据设置的网段之间传送数据。图1为典型的汽车网络连接。(2)J1939应用于故障诊断 J1939包括在线故障诊断功能,由诊断应用层定义。诊断应用层面向以下几方面。 a.安全。在数据链路层上定义一个安全的框架,使得符合工业标准的开发工具执行必要的诊断任务。包括获取诊断信息,获取节点配置信息,标定控制模式。但对非开放型的数据加密。 b.连接。建立J1939网络节点与开发工具之间的连接。连接器的设计也必须符合J1939协议。 c.诊断状态数据支持。提供一系列的数据格式。包括读取出错数据、清除错误数据、监测通信参数、获取节点的配置以及其他的一些信息。d.诊断测试支持。可以使开发工具把各种控制节点放到具体的测试模式中以正确设计子网体系。诊断工具通过连接器与其他节点进行通信以获取诊断数据。因此所有的控制节点都应该具备以下功能:读取诊断故障代码、清除诊断故障代码、获取实时信息。而诊断故障代码记载了出错的参数及所在的节点等主要信息。4节点设计及数据通信 最小化节点的主控制芯片采用51系列的单片机,控制器采用PHILIPS公司的SJA1000,控制器接口采用82c250。为了构建CAN总线局域网络,采用了研华公司生产的双端口CAAN控制卡PCL-841,每块PCL-841卡集成了两块PHILIPS的SJA1000控制器和82c250控制器接口。这样两块控制卡就有四个端,相当于四个独立的节点,用数据线连接起来,就组成了基本的CAN局域网。 软件的编写主要包括对寄存器的配置、硬件初始化、中断调用、数据通信几大模块。中断调用中包括数据中的中断接收、中断发送,以及错误处理、报警等模块。通信模块又分为数据的发送、接收、请求等。 综上所述,J1939通信协议解决了如下问题。 (1)优先权问题。如自动换挡要求减油门,巡航控制同时要求增油,而ASR则要求减油门以维持驱动轴的低扭矩。根据重要程度,则应确定换挡优先,协议能定义各个子系统的优先权顺序。 (2)灵活性问题。因为各个子系统都是不同类型的控制系统,网络应具备将各个子系统有机地融合在一起的能力。 (3)可扩展性。即需要增加新的子系统时,不需要对基本系统作修改。 (4)独立性。每个子系统都可以独立工作,某个子系统出现故障时并不影响其他系统的正工作。 (5)为满足不同控制系统的要求,应具有高的数据传输速率带宽,具有通用的故障诊断接口诊断协议。 (6)车辆状态共享。如发动机转速、车速、轮速等数据必须各子系统共享,数据的传输及刷新时间取决于各个子系统的特性,并由此决定优先权。CAN基本知识什么是CAN ?CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。CAN 是怎样发展起来的?CAN最初出现在80年代末的汽车工业中,由德国Bosch公司最先提出。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。提出CAN总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。1993年,CAN 已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN 仍可提供高达50Kbit/s的数据传输速率。由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。CAN 是怎样工作的?CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI开放式互连模型的各层。应用层协议可以由CAN用户定义成适合特别工业领域的任何方案。已在工业控制和制造业领域得到广泛应用的标准是DeviceNet,这是为PLC和智能传感器设计的。在汽车工业,许多制造商都应用他们自己的标准。表1 OSI开放系统互连模型7应用层最高层。用户、软件、网络终端等之间用来进行信息交换。如:DeviceNet6表示层将两个应用不同数据格式的系统信息转化为能共同理解的格式5会话层依靠低层的通信功能来进行数据的有效传递。4传输层两通讯节点之间数据传输控制。操作如:数据重发,数据错误修复3网络层规定了网络连接的建立、维持和拆除的协议。如:路由和寻址2数据链路层规定了在介质上传输的数据位的排列和组织。如:数据校验和帧结构1物理层规定通讯介质的物理特性。如:电气特性和信号交换的解释CAN能够使用多种物理介质,例如双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H = 3.5V 和CAN_L = 1.5V 。CAN 有哪些特性?CAN具有十分优越的特点,使人们乐于选择。这些特性包括:? 低成本? 极高的总线利用率? 很远的数据传输距离(长达10Km)? 高速的数据传输速率(高达1Mbit/s)? 可根据报文的ID决定接收或屏蔽该报文? 可靠的错误处理和检错机制? 发送的信息遭到破坏后,可自动重发? 节点在错误严重的情况下具有自动退出总线的功能? 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息Philips制造的CAN芯片有哪些?表2 CAN芯片一览表类别 型号备注 P87C591 替代P87C592CAN微控制器 XA C37 16位MCUCAN独立控制器 SJA1000 替代 82C200 PCA82C250高速CAN收发器 PCA82C251高速CAN收发器 PCA82C252容错CAN收发器 TJA1040高速CAN收发器 TJA1041高速CAN收发器TJA1050高速CAN收发器 TJA1053容错CAN收发器 TJA1054LIN收发器 TJA1020LIN收发器什么是CSMA/CD ?CSMA/CD是“载波侦听多路访问/冲突检测”(Carrier Sense Multiple Access with Collision Detect)的缩写。利用CSMA访问总线,可对总线上信号进行检测,只有当总线处于空闲状态时,才允许发送。利用这种方法,可以允许多个节点挂接到同一网络上。当检测到一个冲突位时,所有节点重新回到监听总线状态,直到该冲突时间过后,才开始发送。在总线超载的情况下,这种技术可能会造成发送信号经过许多延迟。为了避免发送时延,可利用CSMA/CD方式访问总线。当总线上有两个节点同时进行发送时,必须通过“无损的逐位仲裁”方法来使有最高优先权的的报文优先发送。在CAN总线上发送的每一条报文都具有唯一的一个11位或29位数字的ID。CAN总线状态取决于二进制数0而不是1,所以ID号越小,则该报文拥有越高的优先权。因此一个为全0标志符的报文具有总线上的最高级优先权。可用另外的方法来解释:在消息冲突的位置,第一个节点发送0而另外的节点发送1,那么发送0的节点将取得总线的控制权,并且能够成功的发送出它的信息。- 2 -CAN的高层协议CAN的高层协议(也可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。一些可使用的CAN高层协议有:制定组织 主要高层协议CiA CAL协议CiA CANOpen协议ODVADeviceNet 协议Honeywell SDS 协议Kvaser CANKingdom协议什么是标准格式CAN和扩展格式CAN?标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN 协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。目前,Philips公司主要推广的CAN独立控制器均支持CAN2.0B协议,即支持29位标识符的扩展格式报文结构。CAN发展史起源1986年2月,Robert Bosch 公司在SAE(汽车工程协会)大会上介绍了一种新型的串行总线CAN控制器局域网,那是CAN诞生的时刻。今天,在欧洲几乎每一辆新客车均装配有CAN局域网。同样,CAN也用于其他类型的交通工具,从火车到轮船或者用于工业控制。CAN已经成为全球范围内最重要的总线之一 甚至领导着串行总线。在1999年,接近6千万个CAN控制器投入应用;2000年,市场销售超过1亿个CAN器件。在1980年的早些时候,Bosch公司的工程师就开始论证当时的串行总线用于客车系统的可行性。因为没有一种现成的网络方案能够完全满足汽车工程师们的要求,于是,在1983年初,Uwe Kiencke 开始研究一种新的串行总线。新总线的主要方向是增加新功能、减少电气连接线 ,使其能够用于产品,而非用于驱动技术。来自 Mercedes-Benz 的工程师较早制定了总线的状态说明,而Intel也准备作为半导体生产的主要厂商。当时聘请的顾问之一是来自于德国Braunschweig-Wolfenbttel的Applied Science大学教授Wolfhard Lawrenz博士 给出了新网络方案的名字“Controller Area Network”,简称CAN。来自Karlsruhe大学的教授Horst Wettstein博士也提供了理论支持。1986年2月,CAN诞生了。在底特律的汽车工程协会大会上,由 Bosch公司研究的新总线系统被称为“汽车串行控制器局域网” 。Uwe Kiencke、 Siegfried Dais 和 Martin Litschel 分别介绍了这种多主网络方案。此方案基于非破坏性的仲裁机制,能够确保高优先级报文的无延迟传输。并且,不需要在总线上设置主控制器。此外,CAN之父上述几位教授和Bosch公司的Wolfgang Borst、Wolfgang Botzenhard、Otto Karl、Helmut Schelling、Jan Unruh 已经实现了数种在CAN中的错误检测机制。该错误检测也包括自动断开故障节点功能,以确保能继续进行剩余节点之间的通讯。传输的报文并非根据报文发送器/接收器的节点地址识别(几乎其它的总线都是如此),而是根据报文的内容识别。同时,用于识别报文的标识符也规定了该报文在系统中的优先级。当关于这种革新的通讯方案的大部分文字内容制定之后,于1987年中期,Intel提前计划2个月交付了首枚CAN控制器:82526,这是CAN方案首次通过硬件实现。仅仅用了四年的时间,设想就变成了现实。不久之后,Philips 半导体推出了82C200。这两枚最先的CAN控制器在验收滤波和报文控制方面有许多不同。一方面,由Intel主推的FullCAN比由Philips主推的BasicCAN占用较少的CPU载荷;另一方面, FullCAN 器件所能接收的报文数目相对受到限制,BasicCAN 控制器仅需较少的硅晶体。今天的CAN控制器中,“孙子”辈们在同一模块中的验收滤波和报文控制方面仍有相当的不同,制造出BasicCAN 和FullCAN 两大阵营。标准化与一致性在1990年早些时候,Bosch CAN 规范(CAN 2.0版)被提交给国际标准化组织。在数次行政讨论之后,应一些主要的法国汽车厂商要求,增加了“Vehicle Area Network(VAN)”内容,并于1993年11月出版了CAN的国际标准ISO11898。除了CAN协议外,它也规定了最高至1Mbps波特率时的物理层。同时,在国际标准ISO11519-2中也规定了CAN数据传输中的容错方法。1995年,国际标准ISO11898进行了扩展,以附录的形式说明了29位CAN标识符。但令人伤心的是,所有出版的CAN规范均包含错误或者不完整。因此,为避免出现不兼容的CAN应用,Bosch 公司一直在进行验证CAN芯片是否基于Bosch的CAN参考模型的工件。此外,几年来在Lawrenz教授领导下,位于德国Braunschweig/Wolfenbttel的 Applied Science大学进行CAN的一致性测试,测试模式基于国际标准测试规范ISO16845。 - 1 -当前,修订的CAN规范正在标准化中。ISO11898-1称为“CAN数据链路层”,ISO11898-2称为“非容错CAN物理层”,ISO11898-3称为“容错CAN物理层”。国际标准ISO11992(卡车和拖车接口)和ISO11783(农业和森林机械)都在美国标准J1939的基础上定义了基于CAN应用的子协议,但是它们并不完整。CAN先行者的发展尽管当初研究CAN的起点是应用于客车系统,但CAN的第一个市场应用却来自于其他领域。特别是在北欧,CAN早已得到非常普遍的应用。在荷兰,电梯厂商Kone 使用CAN 总线。瑞士工程办公室Kvaser 已建议将CAN应用至一些纺织机械厂(Lindauer Dornier 和 Sulzer),并由他们提供机器的通讯协议。这一领域中,在 Lars-Berno Fredriksson的领导下,公司建立了“CAN纺织机械用户集团”。 到1989年,他们已研究出通讯原理,并于1990年早期帮助建立“CAN Kingdom”开发环境。尽管CAN Kingdom并不是一种基于OSI参考模型的应用层,但它被认为是基于CAN的高层协议的原型。在荷兰,Philips医疗系统决定使用CAN构成X光机的内部网络,成为CAN的工业用户。主要由Tom Suters发表的“Philips报文规范PMS”提出了CAN网络的第一个应用层。来自德国Weingarten的Applied Science大学教授 Konrad Etschberger博士也持同样的观点。他管理Steinbeis Transfer Center for Process Automation (Stzp)公司(现在更名为IXXAT Automation公司),并开发出一个类似的方案。不管如何,第一个高层协议正在形成。大多数CAN的先行者使用单片电路的方法,通讯功能、网络管理、应用代码组合在同一个软件之中。即使一些用户有较多的标准模块可供利用,但面对所有的解决方案,他们也一定存在着缺陷。必须持续稳定地发展CAN的高层协议即使在今天,仍然有部分用户低估这个问题。在1990年的早些时候,开始筹划成立一个用户组织,从而将不同的解决方案标准化。在1992年初的几个月里,当时VMEbus杂志的主管(出版社:Franzis) Holger Zeltwanger将用户和厂商集中在一起,讨论建立一个促进CAN技术发展的中立平台,同时也针对串行总线市场进行分析。1992年5月,CiA“CAN in Automation”用户集团正式成立。仅在几个星期后,CiA即发表了第一份技术杂志,那是关于物理层的。CiA推荐仅使用遵循ISO11898的CAN收发器。到现在为止,在当时的CAN网络中使用非常普遍但并不兼容的RS-485收发器已基本消失,尽管它也是厂商提供的。CiA的首批任务之一是规定CAN的应用层。根据Philips医疗系统(PMS)和Stzp所提供的内容,依靠其余CiA会员的协助,CAL“CAN应用层”也称为“绿皮书”诞生了。在制定CAN应用规范时,CiA的一个主要任务是进行CAN专家和其他CAN学习者之间的信息交流。因此,从1994年起,CiA每年召开一次国际CAN会议(iCC)。另外一个理论的方法是借鉴于LAV,一个农业的交通工具协会。在1980年晚些时候开始,一个基于CAN的农业交通工具总线系统(LBS)被制定出。但在工作最终完成前,国际标准化委员会决定改向支持US解决方案J1939。这也是一个基于CAN的应用子协议,由SAE的 Truck and Bus 协会制定。J1939是一个非模块化的方案,简单易学,但灵活性很差。从理论到实践当然,生产CAN模块集成器件的15家半导体厂商主要聚焦于汽车工业。从1990年中期起,Infineon公司和Motorola公司已向欧洲的客车厂商提供了大量的CAN控制器。作为下一波,从1990年后期起,远东的半导体厂商也开始提供CAN控制器。1994年,NEC 推出了传说中的CAN芯片 72005,但是,这一步太早了当时,这个器件并不能投入使用。从1992年起,Mercedes-Benz(奔驰) 开始在他们的高级客车中使用CAN技术。第一步使用电子控制器通过CAN对发动机进行管理;第二步使用控制器接收人们的操作信号。这就使用了2个物理上独立的CAN总线系统,它们通过网关连接。其他的客车厂商也纷纷赶来斯图加特学习,在他们的客车上也使用2- 2 -套CAN总线系统。现在,继Volvo、 Saab、Volkswagen 、BMW之后,Renault和Fiat 也开始在他们的汽车上使用CAN总线。在1990的早些时候,美国俄亥俄州的机械工程公司的工程师们与Allen-Bradley公司、Honeywell 微型开关公司开始了一个合资项目,内容是基于CAN的通讯与控制。但是,不久之后,项目组的重要成员离开合资项目终止。但Allen-Bradley 公司和Honeywell公司各自继续从事这项工作。这导致产生了两个高层协议:“ DeviceNet” 和“Smart Distributed System (SDS)”,而且这2个协议在较低层的通讯层上非常相似。在1994年早些时候,Allen-Bradley 将DeviceNet规范移交给专职推广DeviceNet 的组织“Open DeviceNet Vendor Association(ODVA)”。而Honeywell 则放弃了在SDS方面的努力,使得SDS 更象Honeywell 公司的内部解决方案。 DeviceNet 特别为工厂自动控制而定制,因此,使其成为类似Profibus-DP 和 Interbus协议的有力竞争者。倘若仅从即插即用的功能考虑,DeviceNet 已经成为美国特定应用领域中的领导者。在欧洲,一些公司在尝试使用CAL。尽管CAL在理论上正确,并在工业上可以投入应用,但每个用户都必须设计一个新的子协议,因为CAL是一个真正的应用层。CAL可以被看作一个应用CAN方案的必要理论步骤,但在这一领域它不会被推广。从1993年起,在Esprit project ASPIC范围内,由Bosch领导的欧洲协会研究出一个原型,由此发展成为CANopen。它是一个基于CAL的子协议,用于产品部件的内部网络控制。在理论方面,来自德国Reutlingen的Applied Science大学教授Gerhard Gruhler博士 和来自Newcastle (UK)大学的 Mohammed Farsi 积极参与,均是其中最成功的活跃分子之一。在项目完成之后,CANopen 规范移交给CiA组织,由其进行维护与发展。在1995年,CiA发表了完整版的CANopen 通讯子协议;仅仅用了5年的时间,它已成为全欧洲最重要的嵌入式网络标准。 CANopen 不仅定义了应用层和通讯子协议,也为可编程系统、不同器件、接口、应用子协议定义了页状态,这也就是工业领域(比如:打印机、海事应用、医疗系统)决定使用CANopen的一个重要原因。DeviceNet 和 CANopen,是两个定位于不同市场的标准应用层协议(EN 50325)。DeviceNet 适合于工厂自动化控制; CANopen 适合于所有机械的嵌入式网络。这又造就了两个不同的应用范围,因此,有必要定义应用层的规范历史(可以将一些特定的大量嵌入式系统排除在外)。CAN前景展望尽管CAN协议已经有15年的历史,但它仍处在改进之中。从2000年开始,一个由数家公司组成的ISO任务组织定义了一种时间触发CAN报文传输的协议。Bernd Mueller博士 、Thomas Fuehrer 、Bosch公司人员和半导体工业专家、学术研究专家将此协议定义为“时间触发通讯的CAN(TTCAN)”,计划在将来标准化为ISO11898-4。这个CAN的扩展已在硅片上实现,不仅可实现闭环控制下支持报文的时间触发传输,而且可以实现CAN的x-by-wire应用。因为CAN协议并未改变,所以,在同一个的物理层上,既可以实现传输时间触发的报文,也可以实现传输事件触发的报文。TTCAN 将为CAN延长5-10年的生命期。现在,CAN在全球市场上仍然处于起始点,当得到重视时,谁也无法预料CAN总线系统在下一个1015年内的发展趋势。这里需要强调一个现实:近几年内,美国和远东的汽车厂商将会在他们所生产汽车的串行部件上使用CAN。另外,大量潜在的新应用(例如:娱乐)正在呈现不仅可用于客车,也可用于家庭消费。同时,结合高层协议应用的特殊保安系统对CAN的需求也正在稳健增长。德国专业委员会BIA和德国安全标准权威TV 已经对一些基于CAN的保安系统进行了认证。CANopen-Safety 是第一个获得BIA许可的CAN解决方案,DeviceNet-Safety 也会马上跟进。全球分级协会的领导者之一,Germanischer Lloyd正在准备提议将CANopen 固件应用于海事运输。在其他事务中,规范定义可以通过自动切换将CANopen 网络转换为冗余总线系统。- 3 -CAN历史事件一览表1983: Start of the Bosch internal project to develop an in-vehicle network1986: Official introduction of CAN protocol1987: First CAN controller chips from Intel and Philips Semiconductors1991: Boschs CAN specification 2.0 published1991: CAN Kingdom CAN-based higher-layer protocol introduced by Kvaser1992: CAN in Automation international users and manufacturers group established1992: CAN Application Layer (CAL) protocol published by CiA1992: First cars from Mercedes-Benz used CAN network1993: ISO 11898 standard published1994: 1st international CAN Conference (iCC) organized by CiA1994: DeviceNet protocol introduction by Allen-Bradley1995: ISO 11898 amendment (extended frame format) published1995: CANopen protocol published by CiA2000: Development of the time-triggered communication protocol for CAN (TTCAN)CAN总线的特点及J1939协议通信原理、内容和应用 众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及应用。迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。 在我国的轿车中已基本具有电子控制和网络功能,排放和其他指标达到了一定的要求。但货车和客车在这方面却远未能满足排放法规的要求。计划到2006年,北京地区的货车和客车的排放要满足欧标准。因此,为了满足日益严格的排放法规,载货车和客车中也必须引入计算机及控制技术。采用控制器局域网和国际公认标准协议J1939来搭建网络,并完成数据传输,以实现汽车内部电子单元的网络化是一种迫切的需要也是必然的发展趋势。1 CAN总线特点及其发展控制器局域网络(CAN)是德国Robert bosch公司在20世纪80年代初为汽车业开发的一种串行数据通信总线。CAN是一种很高保密性,有效支持分布式控制或实时控制的串行通信网络。CAN的应用范围遍及从高速网络到低成本底多线路网络。在自动化电子领域、发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电气系统中,如灯光聚束、电气窗口等,可以替代所需要的硬件连接。它采用线性总线结构,每个子系统对总线有相同的权利,即为多主工作方式。CAN网络上任意一个节点可在任何时候向网络上的其他节点发送信息而不分主从。网络上的节点可分为不通优先级,满足不同的实时要求。采用非破坏性总线裁决技术,当两个节点(即子系统)同时向网络上传递信息时,优先级低的停止数据发送,而优先级高的节点可不受影响地继续传送数据。具有点对点、一点对多点及全局广播接收传送数据的功能。 随着CAN在各种领域的应用和推广,对其通信格式的标准化提出了要求。1991年9月Philips Semiconductors制定并发布了CAN技术规范(Versio 2.0)。该技术包括A和B两部分。2.OA给出了CAN报文标准格式,而2.OB给出了标准的和扩展的两种格式。1993年11月ISO颁布了道路交通运输工具-数据信息交换-高速通信局域网(CAN)国际标准ISO11898,为控制局域网的标准化和规范化铺平了道路。美国的汽车工程学会SAE于2000年提出的J1939,成为货车和客车中控制器局域网的通用标准。2.J1939协议通信原理及内容(1)J1939与CANJ1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。主要运用于载货车和客车上。它是以CAN2.0为网络核心。表1介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。表2则给出了J1939年的一个协议报文单元的具体格式。可以看出,J1939标识符包括:PRIORTY(优先权位);R(保留位);DP(数据页位);PDU FORMAAT(协议数据单元);PDU SPECIFIC(扩展单元)和SOURCE ADDRESS(源地址)。而报文单元还包括64位的数据场。表1 CAN2.0的标准和扩展格式及J1939协议所定义的格式CAN扩展帧格式SOF11位标识符SRRIDE18位扩展标识符J1939帧格式帧起始位优先权3位R位(保)数据页DPPF格式6位SRR位扩展标识PFPS格式(8位)源地址(8位)CAN12456712131415 1617242532帧位置28262524231817 1615870表2 J1939协议报文单元的具体格式一个J1939协议报文单元PRIORITYRDPPDU FORMATPDU SPECIFICSOURCE ADDRESSDATA FIELD311888064(2)数据传转协议 J1939通信中的核心是负责数据传输的传输协议。它的功能分为两部分: (1)数据的拆分打包和重组。一个J1939的报文单元只有8个字节的数据场。因此如果所要发送的数据超过了8字节,就应该分成几个小的数据包分批发送。数据场的第一个字节从1开始作为报文的序号,后7个字节用来存放数据。所以可以发送2557=1785个字节的数据。报文被接收以后按序号重新组合成原来的数据。 (2)连接管理。主要对节点之间连接的建立和关闭,数据的传送进行管理。其中定义了5种帧结构:发送请求帧、发送清除帧、结束应答帧、连接失败帧以及用来全局接收的广播帧。节点之间的连接通过一个节点向目的地址发送一个发送请求帧而建立。在接收发送请求帧以后,节点如果有足够的空间来接收数据并且数据有效,则发送一个发送清除帧,开始数据的传送。如果存储空间不够或者数据无效等原因,节

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论