SAE J1939

商用车领域网络与通信的开放标准

Know-how
汽车
测试、验证和诊断
软件平台

SAE J1939是商用车领域网络和通信的开放标准,应用重点在于动力总成的网络化。

SAE J1939的特点在于采用CAN技术实现网络化和通信,并具备跨制造商的互操作性。J1939协议由美国汽车工程师学会(SAE)制定,其物理层基于符合ISO 11898标准的高速CAN协议。

 

本页面概述J1939协议。有关J1939与CAN FD结合使用的信息,请参阅另一Know-how页面。

特点

  • 使用29位扩展CAN ID
  • 标准化CAN波特率为250kbit/s和500kbit/s。
  • 具有点对点寻址(节点寻址)和全局寻址(报文寻址)
  • 通过多包报文,最多可以传输1785字节
  • 通过自有网络管理实现总线访问控制
  • 用于整车通信的标准化报文
  • 支持制造商特定的报文定义
  • 定义自有诊断接口

SAE J1939和CAN

SAE J1939协议采用CAN作为物理层。CAN协议在车辆网络中发挥着重要作用,是ECU之间进行位串行通信的一种常用方法。典型的ECU包括:发动机、变速箱和制动ECU,以及仪表盘和车门ECU。

联盟及其他规范

有许多标准是基于SAE J1939制定的。这些标准采用J1939的基本规范,通常仅在数据定义以及必要时的物理层调整方面有所不同。

ISO 11783:农业和林业用拖拉机及机械串行控制与通信

该标准定义农业用车辆中的通信规范。具体而言,是指拖拉机与附加设备(即农具)之间的通信。ISO 11783标准规定应用层的服务,例如通过虚拟终端控制附加设备。附加设备本身包含其控制所需的所有图形元素,虚拟终端可以显示这些元素。其他应用组件包括:拖拉机电子控制单元(ECU)、任务控制器、文件服务器和序列控制。ISO 11783标准扩展为SAE J1939定义的多数据包协议,并采用了工作集(Working Set)机制。

NMEA 2000:船用电子设备的串行数据网络

定义海上环境中船舶电子设备之间的通信。此处还使用多数据包协议的一种扩展,即快速数据包协议。

ISO 11992:牵引车与被牵引车之间的数字信息交换

规定牵引车与被牵引车之间道路车辆的消息交换。ISO 11992基于J1939的报文格式,但采用不同的物理层配置,仅为125kbit/s。

FMS:车队管理系统

FMS标准定义J1939网络与FMS之间的网关。

文档结构J1939

完整的J1939规范分为多个文档和章节。所有文档均可从SAE网站www.sae.org单独下载,或以预打包的形式下载。

J1939规范的各章节需付费获取,无法免费查阅。各章节结构系统化,并大致基于ISO/OSI参考模型。之所以说是大致基于,是因为J1939的文档结构中包含第8章,而OSI模型中并未定义该章节。

右侧表格列出了目前现有的章节和文档。

物理层

J1939-11/14/15规范对比

SAE J1939协议采用CAN作为物理层。


 

参数J1939-11J1939-15J1939-14
双绞线屏蔽非屏蔽屏蔽或非屏蔽
比特率250kbit/s250kbit/s500kbit/s
ECU数量301030
总线长度最大:40米最大:40米最大:40.0米...56.4米
ECU距离最小:0.1米 | 最大:40米最小:0.1米 | 最大:40米最小:0.3米 | 最大:40.0米...56.4米
支线长度最大:1米最大:3米最大:1.67米

诊断支线长度

最大:0.66米 + 5米最大值:2.66米 + 5米最大值:1.67米 + 5米

参数组

J1939-21定义解释29位CAN标识符的规则。与CAN报文中由起始位和长度定义不同信号的8字节数据字段类似,CAN标识符也被划分为不同的段,以表示参数组。因此,标识符中只有一部分代表PGN本身,其余部分则被解释为源地址、目标地址、优先级和数据页(DP)。

PGN字段

数据页(DP)和扩展数据页(EDP)这两个位也是PGN的一部分,被作为最高两位进行计数。因此,数值范围被划分为四个PGN页,但J1939标准仅使用其中3个。

以下是可用的数据页定义:

扩展数据页(EDP)数据页(DP)描述
00SAE J1939和ISO 11783
01SAE J1939 NMEA 2000®
10SAE J1939 – 保留 –
11ISO 11992诊断(重要:不采用J1939布局!)

传输协议

长度超过8字节的报文过大,无法容纳在单个CAN数据帧中。因此,发送方必须将其拆分为多个独立数据包,然后通过各自的CAN报文进行发送。接收方则需将这些独立片段按原始顺序重新组合。J1939标准为此定义一套规则:即传输协议。

根据通信类型的不同,定义两种传输协议。

点对点广播专用通信:基于连接模式的数据传输(RTS/CTS协议)

通过该协议,发送方与接收方建立连接。接收方可以控制和影响单个数据包的流量控制。接收方和发送方均可终止连接(例如在出现错误时)。

连接模式数据传输协议不受任何时间限制。所有节点均可能以各自的最大速度相互交换数据。

全局通信:广播通告报文(BAM)

流控制完全由发送方管理。消息始终发送给所有节点。接收方无法干预通信过程。如果接收方漏接一条消息,它无法发出提示。必要时,接收方必须等待新消息。

由于在BAM协议中接收方无法影响流量控制,发送方必须在各个数据包之间保持一个最小间隔,该间隔为10-200ms。这样可以确保网络中可能较慢的节点能够跟上通信节奏。

诊断

J1939诊断接口定义一个标准诊断连接器,以及一套用于处理不同诊断服务的PGN。被指定为诊断消息(DM)的PGN在很大程度上涵盖UDS诊断(统一诊断服务)的功能范围。这些消息还符合欧盟指令以及加利福尼亚州法规中关于车载诊断系统(OBD II)的规定,同时也符合重型车辆OBD(HD OBD)和全球统一OBD(WWH OBD,ISO 27145)标准。

与必须通过软件工具主动启动服务的UDS诊断不同,J1939 ECU在标准运行期间也会自主发送诊断消息。发生的错误会在网络中直接进行评估,并在必要时以可视化方式显示。与此同时,专用工具可以通过诊断接口读取故障信息。统一的故障代码,即诊断故障代码(DTC),包含故障的SPN、故障模式以及故障发生频率。

故障诊断代码(DTC)

DTC(故障诊断代码)表示系统中的某个故障特征,主要表示当前状态异常的SPN。这可以由多种原因引起。通过显示状态原因的指示器,可以尝试缩小错误的实际原因范围。DTC具有统一的结构,由以下要素组成:

  • 可疑参数编号(SPN)
    表示出现错误的SPN。每个已定义的SPN都可以用于DTC中。
  • 故障模式标识符(FMI)
    表示发生的错误的性质和类型,例如:值超出范围(过高或过低)、传感器短路、更新率不正确、标定错误。
  • 发生计数器(OC)
    用于统计每个SPN的错误状态发生次数的计数器,即使错误不再活跃,该计数器仍会存储此信息。
  • SPN转换方法(CM)
    定义DTC内的字节对齐方式。值“0”表示图“DTC结构”中所示的方法。如果CM的值为“1”,则必须区分三种先前有效的转换方法;系统必须知晓具体采用哪种方法。

功能安全

SAE J1939包含两种传输安全关键数据的方法。一种是SAE J1939-76标准,描述保护特定参数组的一般流程。另一种涉及由SAE J1939规定的标准化参数组,这些参数组具有内置校验和和计数器。

SAE J1939-76:带校验和与序列计数器的专用安全报头消息

SAE J1939-76标准(SAE J1939功能安全通信协议)描述针对安全关键数据传输的J1939增强功能。实现方式是在包含关键数据的消息(安全数据消息,简称SDM)之前发送一条额外消息(安全头消息,简称SHM),其中SHM和SDM共同构成一个安全数据组(SDG)。

SHM包含以下信息:

  • 序列计数器(每个SDG为5位)
  • SDM的取反CAN ID(无优先级,26位)
  • SDM数据的CRC校验值(32位)

时序

发送方(生产方)生成SHM和SDM,并按正确顺序在规定时限内发送。接收方(消费方)负责检查传输数据的顺序、时限以及完整性。

传输SDG时必须遵守以下时间要求:

  • SRVT:安全相关验证时间(SHM与SDM之间的时间间隔)

  • SCT:安全循环时间(相邻两次SDM实例之间的时间间隔)

确定最大允许SRVT和SCT值的时间基准源自相应SAE J1939 PG的周期时间(传输速率),该值将作为SDM进行传输。

最大SCT和最大SRVT的确定定义如下:

SDG时序基准SCT最大值SRVT最大值
≤ 200ms时间基准的150%时间基准的50%
> 200ms时间基准加100ms100ms

限制

SDM的长度不得超过8字节。这样可以避免需要使用传输协议来传输该消息。此外,SDM必须以固定或可变的周期时间发送。可变周期时间的一个示例是每100ms发送一次,或者在发生任何变化时发送,但间隔不得短于20ms。

SAE J1939数字附录:包含集成校验和与计数器的消息

J1939数字附录规定200多个消息的校验和以及用于检测相关ECU故障状况的消息计数器。消息计数器和校验和是PG有效负荷数据的一部分。每次传输消息时,消息计数器都会递增1。由于校验和是根据有效负荷数据计算得出的,因此每次正确传输后,校验和都会随之变化,无论其他信号是否发生变化。然而,如果后续传输中消息计数器未递增,或者校验和与有效负荷数据不匹配,接收方可推断发送方处于错误状态。

  • 校验和
    数字附录描述五种不同的校验和计算规则,其中两种基于典型的8位CRC(循环冗余校验)计算。其余三种计算方法则使用简单的加法、位移和位掩码。
  • 消息计数器
    数字附录中规定消息计数器在消息内的六个可能位置。

下图展示校验和与消息计数器的常见组合及位置,并列举使用该组合的消息名称作为示例。为便于理解,五种计算规则分别用大写字母(A至E)标示。

已定义的计算规则

不仅校验和在消息中的位置在某些情况下差异很大,其计算公式也各不相同。基本上采用五种规则。

1) 前两条规则使用长度为8位的CRC校验码。

2) 其余三条规则基于位移操作和位掩码。这些规则已沿用一段时间,例如,被用于参数组TSC1(PGN 0)和XBR(PGN 1024)。

J1939挂图

知识要点一览

欢迎免费获取J1939技术指南挂图。这两张挂图简要概述J1939协议最重要的基础知识,均为DIN A1规格(841毫米×594毫米)。

挂图1:

  • 概述
  • 规范文档
  • 物理层
  • CAN ID和PGN结构
  • CAN帧结构
  • 传输协议

挂图2:

  • 网络管理
  • 诊断
  • 功能安全
  • 请求/响应
  • 专有参数组
  • 信号范围(J1939-71)

Vector:J1939专家

Vector是SAE J1939委员会的成员,并定期参加相关研讨会。凭借Vector在J1939领域专业的技术知识和多年的经验,您将受益于高性能的产品和服务,从而能够更高效、更快速且更具成本效益地解决棘手的问题。

凭借覆盖所有J1939项目的完整工具链,Vector能够为您提供最合适的解决方案:

  • 完美匹配的软件工具
  • 量身定制的嵌入式软件组件
  • 专为您的需求量身定制的个性化服务和培训

Vector工具

Vector提供以下产品助您完成J1939项目:

工具

J1939系统的仿真、测试与开发

  • 为J1939系统创建仿真环境(剩余总线仿真)
  • 用于仿真的运行时环境
  • 频带末端测试

CANoe.J1939

 

J1939系统的分析

  • J1939网络上数据流量的分析与记录
  • 消息序列的模拟
  • 重放已记录的消息序列(重放)

CANalyzer.J1939

 

基于AUTOSAR Classic平台且支持扩展J1939功能的嵌入式软件栈

MICROSAR Classic

 

基于SAE J1939和ISOBUS 11783标准的基于模型的E/E系统设计

  • 通过DBC和AUTOSAR导入和导出J1939设计
  • CAN的扩展多路复用功能
  • 控制器应用建模
  • 符合AUTOSAR标准的软硬件网络设计
PREEvision 

用于访问CAN、J1939、ISO15765和J1708/J1587网络的编程接口

RP1210 API

 

DIAdem驱动程序软件:支持J1939协议以及NMEA2000和ISOBUS(ISO 11783)

vMeasure Option DIAdem

 

诊断测试仪,快速且特别易于使用,适用于单个ECU或整车

Indigo

 

Vector Academy提供的SAE J1939培训

J1939课程

J1939 E-Learning