CAN总线的特点及J1939协议通信原理.docx

上传人:b****4 文档编号:3998737 上传时间:2022-11-27 格式:DOCX 页数:17 大小:81.33KB
下载 相关 举报
CAN总线的特点及J1939协议通信原理.docx_第1页
第1页 / 共17页
CAN总线的特点及J1939协议通信原理.docx_第2页
第2页 / 共17页
CAN总线的特点及J1939协议通信原理.docx_第3页
第3页 / 共17页
CAN总线的特点及J1939协议通信原理.docx_第4页
第4页 / 共17页
CAN总线的特点及J1939协议通信原理.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

CAN总线的特点及J1939协议通信原理.docx

《CAN总线的特点及J1939协议通信原理.docx》由会员分享,可在线阅读,更多相关《CAN总线的特点及J1939协议通信原理.docx(17页珍藏版)》请在冰豆网上搜索。

CAN总线的特点及J1939协议通信原理.docx

CAN总线的特点及J1939协议通信原理

CAN总线的特点及J1939协议通信原理、内容和使用

来源:

众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及使用。

迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。

   在我国的轿车中已基本具有电子控制和网络功能,排放和其他指标达到了一定的要求。

但货车和客车在这方面却远未能满足排放法规的要求。

计划到2006年,北京地区的货车和客车的排放要满足欧Ⅲ标准。

因此,为了满足日益严格的排放法规,载货车和客车中也必须引入计算机及控制技术。

采用控制器局域网和国际公认标准协议J1939来搭建网络,并完成数据传输,以实现汽车内部电子单元的网络化是一种迫切的需要也是必然的发展趋势。

   1CAN总线特点及其发展

控制器局域网络(CAN)是德国Robertbosch公司在20世纪80年代初为汽车业开发的一种串行数据通信总线。

CAN是一种很高保密性,有效支持分布式控制或实时控制的串行通信网络。

CAN的使用范围遍及从高速网络到低成本底多线路网络。

在自动化电子领域、发动机控制部件、传感器、抗滑系统等使用中,CAN的位速率可高达1Mbps。

同时,它可以廉价地用于交通运载工具电气系统中,如灯光聚束、电气窗口等,可以替代所需要的硬件连接。

它采用线性总线结构,每个子系统对总线有相同的权利,即为多主工作方式。

CAN网络上任意一个节点可在任何时候向网络上的其他节点发送信息而不分主从。

网络上的节点可分为不通优先级,满足不同的实时要求。

采用非破坏性总线裁决技术,当两个节点(即子系统)同时向网络上传递信息时,优先级低的停止数据发送,而优先级高的节点可不受影响地继续传送数据。

具有点对点、一点对多点及全局广播接收传送数据的功能。

   随着CAN在各种领域的使用和推广,对其通信格式的标准化提出了要求。

1991年9月PhilipsSemiconductors制定并发布了CAN技术规范(Versio2.0)。

该技术包括A和B两部分。

2.OA给出了CAN报文标准格式,而2.OB给出了标准的和扩展的两种格式。

1993年11月ISO颁布了道路交通运输工具-数据信息交换-高速通信局域网(CAN)国际标准ISO11898,为控制局域网的标准化和规范化铺平了道路。

美国的汽车工程学会SAE于2000年提出的J1939,成为货车和客车中控制器局域网的通用标准。

    2.J1939协议通信原理及内容

(1)J1939和CAN

J1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。

主要运用于载货车和客车上。

它是以CAN2.0为网络核心。

表1介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。

表2则给出了J1939年的一个协议报文单元的具体格式。

可以看出,J1939标识符包括:

PRIORTY(优先权位);R(保留位);DP(数据页位);PDUFORMAAT(协议数据单元);PDUSPECIFIC(扩展单元)和SOURCEADDRESS(源地址)。

而报文单元还包括64位的数据场。

表1 CAN2.0的标准和扩展格式及J1939协议所定义的格式

CAN扩展帧格式

SOF

11位标识符

SRR

IDE

18位扩展标识符

J1939帧格式

帧起始位

优先权3位

R位(保)

数据页DP

PF格式6位

SRR位

扩展标识

PF

PS格式(8位)

源地址(8位)

CAN

1

2~4

5

6

7~12

13

14

1516

17~24

25~32

帧位置

28~26

25

24

23~18

 

 

1716

15~8

7~0

表2 J1939协议报文单元的具体格式

一个J1939协议报文单元

PRIORITY

R

DP

PDUFORMAT

PDUSPECIFIC

SOURCEADDRESS

DATAFIELD

3

1

1

8

8

8

0~64

(2)数据传转协议

   J1939通信中的核心是负责数据传输的传输协议。

它的功能分为两部分:

   

(1)数据的拆分打包和重组。

一个J1939的报文单元只有8个字节的数据场。

因此如果所要发送的数据超过了8字节,就应该分成几个小的数据包分批发送。

数据场的第一个字节从1开始作为报文的序号,后7个字节用来存放数据。

所以可以发送255×7=1785个字节的数据。

报文被接收以后按序号重新组合成原来的数据。

   

(2)连接管理。

主要对节点之间连接的建立和关闭,数据的传送进行管理。

其中定义了5种帧结构:

发送请求帧、发送清除帧、结束应答帧、连接失败帧以及用来全局接收的广播帧。

节点之间的连接通过一个节点向目的地址发送一个发送请求帧而建立。

在接收发送请求帧以后,节点如果有足够的空间来接收数据并且数据有效,则发送一个发送清除帧,开始数据的传送。

如果存储空间不够或者数据无效等原因,节点需要拒绝连接,则发送连接失败帧,连接关闭。

如果数据接收全部完成。

则节点发送一个结束应答帧,连接关闭。

(3)J1939的参数格式

   J1939中还定义了参数的具体格式,如标识符、优先级、数据长度、参数的范围等。

参数又划分为状态参数和测量参数。

状态参数表示具有多态信号的某一种状态,如发动机刹车使能/禁能、巡航控制激活/关闭,扭矩/速度控制超载模式、错误代码等。

而测量参数则表示所接收到的信号的值的具体大小,如缸内爆发压力、最大巡航速度、发动机转速等。

3.J1939协议的使用

(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,全称为“ControllerAreaNetwork”,即控制器局域网,是国际上使用最广泛的现场总线之一。

最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。

比如:

发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。

一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。

实际使用中,节点数目受网络硬件的电气特性所限制。

例如,当使用PhilipsP82C250作为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和智能传感器设计的。

在汽车工业,许多制造商都使用他们自己的标准。

表1OSI开放系统互连模型

7

 使用层

最高层。

用户、软件、网络终端等之间用来进行信息交换。

如:

DeviceNet 

6

 表示层

将两个使用不同数据格式的系统信息转化为能共同理解的格式

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芯片有哪些?

表2CAN芯片一览表

类别                        型号                  备注

                               P87C591         替代P87C592

CAN微控制器         XAC37           16位MCU

CAN独立控制器     SJA1000           替代82C200 PCA82C250

高速CAN收发器     PCA82C251

高速CAN收发器     PCA82C252

容错CAN收发器     TJA1040

高速CAN收发器     TJA1041

高速CAN收发器      TJA1050

高速CAN收发器     TJA1053

容错CAN收发器     TJA1054

LIN收发器              TJA1020

LIN收发器

什么是CSMA/CD?

CSMA/CD是“载波侦听多路访问/冲突检测”(CarrierSenseMultipleAccesswithCollisionDetect)的缩写。

利用CSMA访问总线,可对总线上信号进行检测,只有当总线处于空闲状态时,才允许发送。

利用这种方法,可以允许多个节点挂接到同一网络上。

当检测到一个冲突位时,所有节点重新回到‘监听’总线状态,直到该冲突时间过后,才开始发送。

在总线超载的情况下,这种技术可能会造成发送信号经过许多延迟。

为了避免发送时延,可利用CSMA/CD方式访问总线。

当总线上有两个节点同时进行发送时,必须通过“无损的逐位仲裁”方法来使有最高优先权的的报文优先发送。

在CAN总线上发送的每一条报文都具有唯一的一个11位或29位数字的ID。

CAN总线状态取决于二进制数‘0’而不是‘1’,所以ID号越小,则该报文拥有越高的优先权。

因此一个为全‘0’标志符的报文具有总线上的最高级优先权。

可用另外的方法来解释:

在消息冲突的位置,第一个节点发送0而另外的节点发送1,那么发送0的节点将取得总线的控制权,并且能够成功的发送出它的信息。

-2-

CAN的高层协议

CAN的高层协议(也可理解为使用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。

高层协议是在CAN规范的基础上发展起来的使用层。

许多系统(像汽车工业)中,可以特别制定一个合适的使用层,但对于许多的行业来说,这种方法是不经济的。

一些组织已经研究并开放了使用层标准,以使系统的综合使用变得十分容易。

一些可使用的CAN高层协议有:

制定组织主要高层协议

CiA          CAL协议

CiA          CANOpen协议

ODVA       DeviceNet协议

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月,RobertBosch公司在SAE(汽车工程协会)大会上介绍了一种新型的串行总线——CAN控制器局域网,那是CAN诞生的时刻。

今天,在欧洲几乎每一辆新客车均装配有CAN局域网。

同样,CAN也用于其他类型的交通工具,从火车到轮船或者用于工业控制。

CAN已经成为全球范围内最重要的总线之一——甚至领导着串行总线。

在1999年,接近6千万个CAN控制器投入使用;2000年,市场销售超过1亿个CAN器件。

在1980年的早些时候,Bosch公司的工程师就开始论证当时的串行总线用于客车系统的可行性。

因为没有一种现成的网络方案能够完全满足汽车工程师们的要求,于是,在1983年初,UweKiencke开始研究一种新的串行总线。

新总线的主要方向是增加新功能、减少电气连接线,使其能够用于产品,而非用于驱动技术。

来自Mercedes-Benz的工程师较早制定了总线的状态说明,而Intel也准备作为半导体生产的主要厂商。

当时聘请的顾问之一是来自于德国Braunschweig-Wolfenbüttel的AppliedScience大学教授WolfhardLawrenz博士给出了新网络方案的名字“ControllerAreaNetwork”,简称CAN。

来自Karlsruhe大学的教授HorstWettstein博士也提供了理论支持。

1986年2月,CAN诞生了。

在底特律的汽车工程协会大会上,由Bosch公司研究的新总线系统被称为“汽车串行控制器局域网”。

UweKiencke、SiegfriedDais和MartinLitschel分别介绍了这种多主网络方案。

此方案基于非破坏性的仲裁机制,能够确保高优先级报文的无延迟传输。

并且,不需要在总线上设置主控制器。

此外,CAN之父——上述几位教授和Bosch公司的WolfgangBorst、WolfgangBotzenhard、OttoKarl、HelmutSchelling、JanUnruh已经实现了数种在CAN中的错误检测机制。

该错误检测也包括自动断开故障节点功能,以确保能继续进行剩余节点之间的通讯。

传输的报文并非根据报文发送器/接收器的节点地址识别(几乎其它的总线都是如此),而是根据报文的内容识别。

同时,用于识别报文的标识符也规定了该报文在系统中的优先级。

当关于这种革新的通讯方案的大部分文字内容制定之后,于1987年中期,Intel提前计划2个月交付了首枚CAN控制器:

82526,这是CAN方案首次通过硬件实现。

仅仅用了四年的时间,设想就变成了现实。

不久之后,Philips半导体推出了82C200。

这两枚最先的CAN控制器在验收滤波和报文控制方面有许多不同。

一方面,由Intel主推的FullCAN比由Philips主推的BasicCAN占用较少的CPU载荷;另一方面,FullCAN器件所能接收的报文数目相对受到限制,BasicCAN控制器仅需较少的硅晶体。

今天的CAN控制器中,“孙子”辈们在同一模块中的验收滤波和报文控制方面仍有相当的不同,制造出BasicCAN和FullCAN两大阵营。

标准化和一致性

在1990年早些时候,BoschCAN规范(CAN2.0版)被提交给国际标准化组织。

在数次行政讨论之后,应一些主要的法国汽车厂商要求,增加了“VehicleAreaNetwork(VAN)”内容,并于1993年11月出版了CAN的国际标准ISO11898。

除了CAN协议外,它也规定了最高至1Mbps波特率时的物理层。

同时,在国际标准ISO11519-2中也规定了CAN数据传输中的容错方法。

1995年,国际标准ISO11898进行了扩展,以附录的形式说明了29位CAN标识符。

但令人伤心的是,所有出版的CAN规范均包含错误或者不完整。

因此,为避免出现不兼容的CAN使用,Bosch公司一直在进行验证CAN芯片是否基于Bosch的CAN参考模型的工件。

此外,几年来在Lawrenz教授领导下,位于德国Braunschweig/Wolfenbüttel的AppliedScience大学进行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使用至一些纺织机械厂(LindauerDornier和Sulzer),并由他们提供机器的通讯协议。

这一领域中,在Lars-BernoFredriksson的领导下,公司建立了“CAN纺织机械用户集团”。

到1989年,他们已研究出通讯原理,并于1990年早期帮助建立“CANKingdom”开发环境。

尽管CANKingdom并不是一种基于OSI参考模型的使用层,但它被认为是基于CAN的高层协议的原型。

在荷兰,Philips医疗系统决定使用CAN构成X光机的内部网络,成为CAN的工业用户。

主要由TomSuters发表的“Philips报文规范——PMS”提出了CAN网络的第一个使用层。

来自德国Weingarten的AppliedScience大学教授KonradEtschberger博士也持同样的观点。

他管理SteinbeisTransferCenterforProcessAutomation(Stzp)公司(现在更名为IXXATAutomation公司),并开发出一个类似的方案。

不管如何,第一个高层协议正在形成。

大多数CAN的先行者使用单片电路的方法,通讯功能、网络管理、使用代码组合在同一个软件之中。

即使一些用户有较多的标准模块可供利用,但面对所有的解决方案,他们也一定存在着缺陷。

必须持续稳定地发展CAN的高层协议——即使在今天,仍然有部分用户低估这个问题。

在1990年的早些时候,开始筹划成立一个用户组织,从而将不同的解决方案标准化。

在1992年初的几个月里,当时VMEbus杂志的主管(出版社:

Franzis)HolgerZeltwanger将用户和厂商集中在一起,讨论建立一个促进CAN技术发展的中立平台,同时也针对串行总线市场进行分析。

1992年5月,CiA“CANinAu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1