SAE J1939

满足开发和生产需要。


HMS产品和服务可以让您实现...

  • 在您的设备中可灵活和简单地实现SAE J1939协议,既可以使用现成的模块,也可以使用协议栈
  • 连接SAE J1939设备到任意其它工业网络
  • 连接您的PC到SAE J1939系统,可实现基于PC的控制,配置和分析
  • 分析和维护您的系统
什么是SAE J1939?
SAE J1939 Products and Services
Protocol Software
 

在您自己的设备中实现SAE J1939

通过跨平台的SAE J1939协议软件可快速和简单开发J1939设备。在SAE J1939规格说明中定义的所有通讯机制都支持,这意味着开发者可以完全集中精力于他们的应用。

  • 支持各种各样的微控制器系统和编译器

SAE J1939协议软件包

 
PC Interfaces
 

连接您的PC到SAE J1939系统

Ixxat PC CAN接口可实现简单连接基于PC的应用到基于SAE J1939的系统。

  • 针对许多PC接口标准可以有各种各样的产品模式
  • 针对客户特定的基于PC的SAE J1939应用有Windows API 

针对SAE J1939的PC CAN接口
针对Windows的SAE J1939 API

 
CAN Tools
 

分析与配置

我们为您的SAE J1939开发,系统调试和故障排除提供广泛的工具。

  • canAnalyser – 简单地分析,传输和记录您的SAE J1939报文与信号
  • emotas J1939 DeviceDesigner – editor and code generator for J1939 projects, supporting the emotas J1939 stack
  • CANopen故障排除 – 强大的移动手持或基于PC的工具

具有CANopen扩展的canAnalyser
emotas J1939 DeviceDesigner
SAE J1939诊断和故障排除


综合的SAE J1939工具链

HMS针对SAE J1939应用提供综合的,具有成本效益的工具链。这包括协议软件,分析和配置工具,以及基于Windows API的测试设备。
 
  • SAE J1939 designer对于完整的工具链可集中定义所有相关参数
  • 通过避免由不一致的数据集导致的错误极大地提升了开发速度
  • 减低了开发风险,减少了开发成本并缩短了上市时间

SAE J1939 – 简短介绍

在商用车辆领域,对于单独的电子控制单元(ECU)和驱动车辆元件之间的通讯,标准化的串行协议由来已久。通过使用标准的串行协议,将具有如下优点:

  • 元件制造商只需要实施一种协议;这主要影响商用车辆,因为其产量低。
  • 商用车辆可依赖于不同供应商的元件。
  • 确保了元件之间的互操作性,来自不同制造商的元件可以不需调整就可一同工作。

 

SAE J1939协议由国际汽车工程师协会(SAE)协议,替代了SAE标准J1587 / J1708,并且根据ISO 11898在CAN高速物理层工作。

SAE J1939用于重型商用车辆领域,既有"陆上"车辆(卡车和拖车),也有"非陆上"车辆(工程机械,起重机等等)。在农业和林业机械领域,使用的是ISO11784之后的ISOBUS,在海事环境中,使用NMEA2000协议,在军事领域MilCAN更合适 -所有这些协议都基于J1939。

由于需要和现有的J1708/J1587协议兼容,CAN消息标识符的扩展从11到29位,J1939协议要求CAN模块的开发以及相应协议的实施支持这种消息模式。

通过J1939,可以实现传输测量数值和控制数据,还可以配置元件。此外,能够读取或删除单个元件的诊断数据,并且进行个人控制的校准。

在J1939协议中,不仅仅规定了传输模式,消息结构及其分段,流量控制等等,还精确定义了消息内容本身。 

 

 

在ISO/OSI参考模型中的SAE J1939

SAE J1939根据OSI参考模型被划分成多个文档,这些文档编号指的是参考模型中相关的层级。类似于任意现场总线协议,在SAE J1939中第5层和第6层并不需要,因此也不做规定。

 

J1939-Technology-ISO-OSI-Layers

图表:在ISO/OSI参考模型中的SAE J1939

 

物理层

SAE J1939协议基于CAN总线并且将其作为物理层使用(控制器局域网,ISO 11998-1和ISO 11998-2)。有如下的规格说明:

  • SAE J1939/11根据ISO/DIS 11898定义了CAN高速总线连接,带屏蔽双绞线和接地。数据传输速率是250 kbit/s,最大节点数量是30,最大线缆长度是40米。
  • SAE J1939/12描述的产品版本带四线线缆并具有活跃的总线终端。这消除了对屏蔽线缆的需求,并且因此允许使用不昂贵的线缆。
  • SAE J1939/14规格说明使数据传输速率加倍,从250 kbit/s提升到500 kbit/s。
  • SAE J1939/15允许使用非屏蔽双绞线,每个网络可支持多个10 ECU。 

 

数据链路层

SAE J1939/21在CAN 2.0B规范基础上描述了通过CAN的数据通讯。“扩展模式“专门用于此类通讯;而“标准模式”仅用于供应商特定的应用。
该规范因此决定了必须如何使用11位标识符,目的就是为了在各种各样供应商特定消息中排除标识符冲突。除了分配和使用29位标识符,该规范特别描述了各种各样的网络服务,用于消息请求模式, 确认传输,以及大规模数据块的分散传输。

 

网络层

SAE J1939/31特别描述了网桥的功能,用于两个网段之间的消息传输。由于网桥中存在过滤功能,这主要用于减少单个区域中的消息流量,例如牵引车和它的拖车之间。

 

应用层

应用层以及相关的文件SAE J1939/71描述了实际的数据(参数或网络变量,有数值范围,分辨率,物理单元和传输类型)。每个消息都有独特的参考号码(参数组编号:PGN)。

 

网络管理

J1939的网络管理是分散化的,也就是说,每个控制单元必须采用最小的功能。网络管理功能在SAE J1939/81文件中有所描述。由于网络管理可以作为独立的单元考虑,可遍及硬件(第一层),它将作为图中右侧所示的独立功能块。

 

 

设备名称,消息结构,地址声明(J1939/81)

 

设备地址

 

电气控制单元(ECU)的软件是控制器应用(CA)。一个ECU可能包含一个或多个CA。每个CA都有一个特定的地址以及对应的设备名称。每个由CA发送的消息都包含此源地址。

 

J1939-Technology-device-address

在J1939的地址区,可以有256个设备地址:

  • 0..127 – 用于CA的首选地址和定义功能 
  • 128..247 – 适用于所有CA
  • 248..253 – 用于CA的首选地址和定义功能 
  • 254 – 空值
  • 255 – 全局变量

 大多数CA像引擎,传输等等,都有首选地址。 

 

设备名称

J1939定义了设备名称,每个都用64位(8字节)的长标签表示,并用于识别设备及其功能。设备名称将被划分成不同的因素,而这些因素中的一些是互相依赖的。独立的区域包括“工业组”和“制造商代码”。

 

J1939-Technology-device-name

图表:设备名称结构

  • 通过工业组确定了网络中需要的功能,因为J1939协议不仅仅用于传统的商用车辆中,还应用于农业工程,或者应用于海事领域。
  • 制造商代码必须应用于SAE,并且由此分配。这种制造商代码以及额外的识别码(例如串行码)让设备的整个名称在全球独一无二。
  • 如果需要多个CA具有相同的功能,就需要功能示例。

 

CAN标识符

 

J1939消息基于CAN 2.0B规范并且具体的使用“扩展帧”。这些使用29位标识符,而不是使用11位标识符。J1939-21定义了29位标识符的区域,如下所示:

J1939-Technology-Identifier 

图表:结构参数组

 

  • 首三位(优先区:P)定义了网络中消息的优先级,并确保更重要的消息比低优先级的消息事先发送;P值为0的消息具有最高优先级。
  • 使用扩展数据页位(EDP)数据页位(DP),针对J1939消息(参数组)有四个不同“数据页”可选择:

    EDP        DP            描述
    0              0              SAE J1939参数组
    0              1              定义的NMEA2000
    1              0              预留的SAE J1939
    1              1              定义的ISO 15765-3

  • PDU格式区(协议数据单元格式,PDU F)定义了消息是用于网络上的特定设备还是用于整个网络。如果PDU F <240,需要处理特定的设备,如果PDU F > = 240,消息将用于所有设备。
  • PDU特定(PDU S)区的定义基于PDU F区的数值。

    a.) 如果消息是要用于特定设备(PDU F <239),PDU S将作为该设备的地址;在此情况下,PDU S区叫做“目的地址区” (PDU 1)。

    b.) 如果消息是要用于所有设备(PDU F> = 240),PDU S将作为“组扩展区”。这种组扩展(PDU 2)将用于增加可能广播消息的数量。

  • CAN标识符的后八位标识了发送当前消息的设备地址,也就是“源地址区”。

 

地址声明

在一个CA使用地址前,它必须在网络中对此声明,这个过程叫做“地址声明” (ACL)。 
在此,独特的设备名称用于解决地址分配冲突:数值越小,优先级别越高。在起始时,CA发送“地址声明PGN” (ACL,PGN 00EE00h)并且等待已预定的时间来影响。如果在此期间没有其他的CA声明相同的地址,CA就开始正常通讯。

J1939-Technology-Address-Claiming 

图表:地址声明过程

 

如果网络上的另一个CA已经使用了相同的地址,这就产生了地址冲突。设备名称具有更高优先级的CA就可以获取该地址。CA将如何继续,这取决于CA的“地址能力”:

如果CA具有地址能力“非自组态”,它必须发送带有“源地址”0(254)的“不能声明地址”PGN。否则,它将为自己从自由地址池(128-247)中获得新的地址。

 J1939-Technology-Address-Claiming-Conflict

图表:带有地址冲突的地址声明过程

 

 J1939消息示例(参数组)

 

名称:引起温度
- PG码:65262 (FEEE 十六进制)
- PDU格式:254 (FE 十六进制)
- PDU特定:238 (EE 十六进制)
- 默认优先级:6
- 传输速率:1 s
- 数据长度:8字节

数据描述
字节1:发动机冷却液温度
字节2:燃油温度
字节3,4:机油温度
字节5,6:涡轮油温
字节7:引擎中间冷却器温度
字节8:未定义

 

 

大数据块的分散传输

在SAE J1939消息中,有8个多的字节通过“分散传输”进行传输。 在订阅导向的通讯(“点对点”)和总体通讯(“广播”)之间做出了划分。

 

点对点

 

在点对点通讯中,规定了目的地址(目的地址)。数据被分配给特定的订阅者并且确认传输:

  • 点对点通讯由接收器通过一种“清除发送”(CTS)消息进行控制
  • 传输器可能仅传输接收器在CTS(0-255)中定义的数据分段数量
  • 接收器可通过“Hold”功能推迟信息流动(CTS具有0数据分段)
  • 如果发送方收到“中止消息”(EOM),那么传输就成功完成了
  • 点对点的消息
    - 请求发送(RTS)
    - 清除发送(CTS)
    - 连接中止(CA)
    - 确认中止消息(EOM)
    - 数据传输消息(DTM)

J1939-Technology-Peer-to-Peer

图表:点对点消息

 

广播

 

广播是未经确认的通讯(无流量控制)。发送器/发送方不知道消息的接收方。将应用到如下过程:

  • 传输的起始通过“广播宣布消息(BAM)”通知。该消息包含字节数量,分段数量以及要传输的参数组数据数量。
  • 为了给所有潜在接收者足够时间准备接收宣布的数据块,发送器可能在第一个数据段传输时,在BAM消息之后50ms起始。并且在单个数据段之间,必须预留50 ms时间。
  • 如果接收方有消息接收问题,他不允许通过“连接中止”方式中止传输,因为通常他不是唯一的接收方。
  • 广播消息
    - 广播宣布消息(BAM)
    - 数据传输消息(DTM)

J1939-Technology-Broadcast

图表:广播消息