当前位置:文档之家› J1939协议

J1939协议

S A E J1939

简介

S A E J1939协议是由汽车工程协会(S A E)定义的,主要用于商用车辆,但也用于舰船、轨道机车、农业机械和大型发动机。另外,S A E J1939用作国际标准N M E A2000(海事)和 I S O11783(农业机械)的基础,因而此协议栈也能用于这些应用。

在商用车辆方面,由S A E制定的标准化串行协议长期以来一直用于单个电子控制单元和传动装置上元件之间的通信。基于通常可从单片机串行端获得的J1708/J1587协议可以被视作前驱。

由于需要与J1708/1587协议兼容,对于J1939来说,必须要求C A N报文标识符从11-b i t s扩展到29-b i t s (扩展格式),并且C A N模块的开发或协议实现应支持这种报文格式。

因为有扩展的C A N标识符,这就能够象用于J1708那样,将通信关系的定义规则映射到C A N。部分标识符被用于指定一个8-b i t源和一个8-b i t目标地址(节点数)。

所以通过S A E J1939能够传输测量值和控制数据并配置元件。另外,还能够读或删除单个元件诊断数据,并对单个控制进行校准。

为了使这些成为可能,对于商用车方面的所有相关变量都要在S A E J1939中定义值域、分辨率、识别数等等。这些对基于J1587技术规格的大都实现。

因此,在J1939协议中,不仅仅指定了传输类型、报文结构及其分段、流量检查等,而且报文内容本身也做了精确的定义。S A E J1939在I S O/O S I层模型中的分布根据O S I层模型,

S A E J1939被分成几个层,每一层都分别有相应的文档说明。类似于所有实际上的现场总线协议,在S A E J 1939上第5和6层是不需要的,因此没有定义。

S A E J1939的功能被分为如下几层:

第一层(物理层)描述在其它事物中与物理媒介的电子接口;

第二层(数据链路层)描述通过基于C A N2.0B技术规格的C A N的数据通信;

第三层(网络层)主要描述两个网络部分间针对报文传输的网桥的功能,并且只与 J1939网桥实现相关; 第四层(传输层)基本上描述的是针对报文申请模式、确认传输和大数据块的分段传输的各种网络服务; 第七层(应用层)描述实际的数据(参数或带有值域的网络变量、分辨率、物理单元和传输类型)。每个报文无歧义地对应一个数(参数组数);

由于网络管理可以被当作一个分离的单元,能直达硬件(第一层),因此在这个层模型中,该模块是作为右手边的一个独立的功能块。网络管理基本上包括自动分配或决定节点地址(即插即用原则)。在S A E J1939中没有定义节点监视,因而必须在应用时通过循环报文实现。

现代汽车的核心技术-SAE J1939

一、技术背景

在当今的中高档汽车中都采用了汽车总线技术。汽车总线为汽车内部各种复杂的电子设备、控制器、测量仪器等提供了统一数据交换渠道。一些汽车专家认为,就像在20世纪70年代引入集成电路、80年代引入微处理器一样,近10年来数据总线技术的引入也将是汽车电子技术发展的一个里程碑。

20世纪90年代以来,汽车上由电子控制单元(ECU)控制的部件数量越来越多,例如电子燃油喷射装置、防抱死制动装置、安全气囊装置、电控门窗装置、主动悬架等等。随着集成电路和单片机在汽车上的广泛应用,车上的ECU数量越来越多。因此,一种新的概念--车上控制器局域网络CAN(Controller Area Network)的概念也就应运而生了。CAN最早是由德国BOSCH公司为解决现代汽车中的控制与测试仪器之间的数据交换而开发的一种数据通信协议,按照ISO有关标准,CAN的拓扑结构为总线式,因此也称为CAN总线。

CAN协议中每一帧的数据量都不超过8个字节,以短帧多发的方式实现数据的高实时性;CAN总线的纠错能力非常强,从而提高数据的准确性;同时CAN总线的速率可达到1M bit/s,是一个真正的高速网络。总之,将CAN总线应用在汽车中使用有很多优点: (1)用低成本的双绞线电缆代替了车身内昂贵的导线,并大幅度减少了用线数量;提高可*性,安全性、降低成本。 (2)具有快速响应时间和高可*性,并适合对实时性要求较高的应用如刹车装置和气囊;控制平台、信息平台、驾驶平台的互连基础。 (3)CAN芯片可以抗高温和高噪声,并且具有较低的价格,开放的工业标准。

在现代轿车的设计中,CAN已经成为必须采用的装置,奔驰、宝马、大众、沃尔沃、雷诺等汽车都采用了CAN作为控制器联网的手段。据报道,中国首辆CAN网络系统混合动力轿车已在奇瑞公司试装成功,并进行了初步试运行。在上海大众的帕萨特和POLO汽车上也开始引入了CAN总线技术。但总的来说,目前CAN 总线技术在我国汽车工业中的应用尚处于试验和起步阶段,绝大部分的汽车还没有采用汽车总线的设计,因而存在着不少弊端。

比如,众所周知汽车的核心设备就是发动机,发动机的运行参数,例如发动机转速、机油压力、冷却剂温度等等是和汽车驾驶是紧密相关的。传统汽车仪表的设计方法是:通过放置在汽车部件(如发动机)内部的传感器,将机械信号转换成电信号,如电压、电流、脉冲信号,再经过D/A转换或计数器等,将电信号转换成可视的指针信号显示在模拟仪表盘上。随着汽车总线技术的发展,不少进口的发动机已经不再直接向外提供传感器信号,而改用CAN总线通信接口。一旦发动机出现故障时,由于缺乏基于CAN总线的测试维修设备,目前我们的维修人员使用的方法只能是在发动机上钻孔,将传感器直接放进发动机内部进行测量,操作繁琐、设备复杂,且不利于保护发动机的整体结构。

又比如,现有的部分汽车仪表使用了专用的总线设计,由于硬件标准不统一,通信协议也不兼容,为甲公司汽车生产的仪表完全不能在乙公司的汽车上使用,生产成本难以降低、故障维修很不方便。如果能将各种专用总线统一到CAN总线标准上来,就可以解决问题。

再比如,在手动挡汽车中,驾驶员的换挡是依照经验进行的,有可能发生应该加高挡位而没能及时加挡的情况,即低档高速行驶,既不利于降低油耗,又容易造成汽车传动部件磨损。如果能实现自动换挡提示,车辆就能始终保持在经济时速行驶。

根据ISO(国际标准化组织)定义的OSI模型,CAN协议定义了物理层及数据链路层规范,这为不同的汽车厂商制定符合自身需要的应用层协议提供了很大的便利。如果需要建立更加完善的系统,还需要在CAN的基础上选择合适的应用层协议。如CANopen、SAE J1939等。

相关主题