SAE J1939协议解读

发布时间:2024-01-24  

在乘用车领域比较熟知的是CAN(FD)、LIN、FlexRay、Ethernet等通信协议,但对于J1939往往所知甚少。其实在CAN总线协议诞生之初,J1939协议便随之诞生,并且始终在商用车、工程机械等领域发挥着重要作用。而在乘用车领域,随着新能源汽车的发展,为了保证电动汽车与充电基础设施互联互通,我国在2015年发布了GB/T 27930-《电动汽车非车载传导式充电机与电池管理系统之间的通信协议》,其使用的也正是J1939协议。因此,本期将对J1939协议做个基础介绍,方便大家快速了解J1939协议包含的内容。


什么是J1939J1939是由美国汽车工程师学会(Society of Automotive Engineers,简称SAE)开发的一系列标准,其目的是使不同制造商的车辆和设备能够在同一个网络上进行通信,实现数据交换和协作。J1939是基于CAN总线技术的,主要的通信速率是250Kbps或500Kbps,通常采用广播通信的方式,同时也支持点对点通信。J1939诞生的背景在20世纪后半叶,随着商用车辆、重型机械设备等对多功能化和电子化的需求急剧增加,其内部不同子系统之间需要进行高效的通信和协作来实现更先进的控制和监控功能。同时,为了在不同制造商和设备之间实现互操作性来确保不同系统之间的通信能够无缝进行,制定一套标准化的通信协议变得尤为重要。而此时CAN总线技术的出现为实时、可靠且高速的通信提供了可能。在此背景下,一直倡导在汽车和机械领域制定标准的美国汽车工程师学会(SAE)组织开发了J1939协议的一系列标准规范,该工作于1994年左右开始,并在1998年正式发布了J1939协议,成为了商用车辆和重型机械设备领域中通信和控制的主要标准之一。


J1939分层结构
J1939采用分层通信结构,主要包括物理层、数据链路层、网络层和应用层,其中CAN提供了基本的“物理层”和“数据链路层”。这种分层结构有助于管理复杂的通信系统,使不同层次的功能分开,同时有助于确保J1939协议在不同的商用车辆和重型机械设备应用中具有灵活性和可扩展性。8376abfa-7e96-11ee-9788-92fbcf53809c.png

图1. J1939分层结构 J1939的标准文档构成
J1939协议的标准文档构成通常包括一系列文件,这些文件共同定义了协议的规范、特性和实施细节。


1)SAE J1939: Serial Control and Communications Heavy Duty Vehicle Network。通常被称为J1939协议的顶级文档,主要包括了关于J1939协议的概述、基本原则和总体架构,以及对其他相关J1939标准和文档的引用,当前最新版本于2023年发布。

2)SAE J1939-01: On-Highway Equipment Control and Communication Network。定义了公路设备实现控制和通信网络所需J1939协议文件的最小子集,当前最新版本于2021年发布。

3)SAE J1939-02: Agricultural and Forestry Off-Road Machinery Control and Communication Network。定义了农林非道路机械实现控制和通信网络所需J1939协议文件的最小子集,当前最新版本于2019年发布。

4)SAE J1939-03: On-Board Diagnostics Implementation Guide。介绍了J1939协议中诊断功能的基本概念,提供了关于如何实施诊断功能的指导,当前最新版本于2021年发布。

5)SAE J1939-05: Marine Stern Drive and Inboard Spark-Ignition Engine On-Board Diagnostics Implementation Guide。提供了关于如何在船舶引擎和尾驱系统上实施诊断功能的指导,当前最新版本于2012年发布。
6)SAE J1939-11: Physical Layer, 250 Kbps, Twisted Shielded Pair。主要关注针对250 Kbps通信速率和使用屏蔽双绞线情况下的物理层规范,当前最新版本于2016年发布。
7)SAE J1939-13: Off-Board Diagnostic Connector。主要定义离线诊断设备连接器的要求,当前最新版本于2016年发布。
8)SAE J1939-14: Physical Layer, 500 kbit/s。主要定义500Kbps通信速率下的物理层规范,当前最新版本于2022年发布。
9)SAE J1939-15: Physical Layer, 250 Kbps, Un-Shielded Twisted Pair (UTP) 。主要关注针对250 Kbps通信速率和使用非屏蔽双绞线情况下的物理层规范,当前最新版本于2018年发布。
10)SAE J1939-21: Data Link Layer。主要关注数据链路层规范,当前最新版本于2022年发布。
11)SAE J1939-22: CANFD Data Link Layer。主要关注基于CANFD的数据链路层规范,当前最新版本于2022年发布。
12)SAE J1939-31: Network Layer。主要关注网络层规范,当前最新版本于2023年发布。
13)SAE J1939-71: Vehicle Application Layer。主要关注应用层规范,当前最新版本于2022年发布。
14)SAE J1939-73: Application Layer - Diagnostics。主要关注应用层诊断规范,当前最新版本于2022年发布。
15)SAE J1939-74: Application - Configurable Messaging。主要定义应用层的可配置消息规范,当前最新版本于2021年发布。
16)SAE J1939-75: Application Layer - Generator Sets and Industrial。主要关注J1939协议发电机组和工业领域的应用,当前最新版本于2021年发布。
17)SAE J1939-81: Network Management。主要关注网络管理规范,当前最新版本于2017年发布。
18)SAE J1939-82: Compliance - Truck and Bus。主要关注卡车和公共汽车领域的合规性要求,当前最新版本于2015年发布。
19)SAE J1939-84: OBD Communications Compliance Test Cases for Heavy Duty Components and Vehicles。主要关注OBD通信的合规性测试,当前最新版本于2017年发布。

83819790-7e96-11ee-9788-92fbcf53809c.png

SAE J1939主要协议解读
SAE J1939物理层
J1939物理层的协议主要有J1939-11,J1939-13,J1939-14,J1939-15等。以J1939-11为例,主要包含以下内容:

1)通信速率:规定了通信速率为250Kbps。

2)连接器:包括类型、引脚分配和电气特性等内容。

3)传输线路:描述了适用于250Kbps通信速率的电缆和传输线路特性,如采用屏蔽双绞线,总线阻抗为120Ω。

4)总线拓扑:最大线缆长度为40m,最大支线长度为1m,最大节点数量为30个。

5)一致性测试:规范中定义的参数(如总线电平)应如何测试验证。

6)故障:定义了不同故障情况下的通信行为。

SAE J1939 数据链路层
J1939数据链路层的协议主要有J1939-21,J1939-22等。其中J1939-21主要是针对CAN数据链路层,J1939-22则主要是针对CANFD数据链路层。以J1939-21为例,其基于CAN2.0B规范定义了J1939报文的报文格式、报文类型和传输协议等,在物理层之上提供了可靠的数据传输功能,实现应用层报文的数据交换,接下来将针对J1939-21中的定义展开介绍。
| 报文格式
1)协议数据单元(Protocol Data Unit, PDU)J1939报文使用的基于CAN2.0B的拓展帧格式定义了一个完整的标准化通讯策略,通过PDU定义了一个框架,用来组织数据帧中J1939协议相关的信息。PDU由数据帧中的ID和数据场组成,数据帧和PDU的对应关系如下图所示。

838dc2ea-7e96-11ee-9788-92fbcf53809c.png

图2. CAN2.0B帧格式与J1939PDU的对应关系

P(Priority),优先级字段,用于在仲裁过程中控制报文优先级。EDP(Extended Data Page),为扩展数据页位,在J1939中固定取值为0。P(Data Page),数据页位,可用来扩展参数组的数量。PF(PDU Format),为PDU格式字段,通过不同的取值来确定参数组编号(Parameter Group Number, PGN)是按照PDU1格式还是PDU2格式。PS(PDU Specific),特定协议数据单元字段,当PF的值为0-239时PS表示目标地址(PDU1格式),当PF的值为240-255时PS字段表示组扩展(PDU2格式),且报文只能广播。SA(Source Address),源地址字段,整个网络中SA的值必须是唯一的。Data Field,数据场,对于Classic CAN来说是8个字节,而CANFD则最多有64个字节数据。如果需要传输更多的数据,则需要借助J1939的传输协议。2)参数组编号(PGN)参数组是应用层中定义的与某个ECU相关的具有相同控制功能的若干个参数的组合,而PGN是用于唯一标识参数组的号码,在应用层中定义。PGN由三个字节组成,从最高位开始的前6个比特默认值为0,然后是EDP位和DP位,接下来两个字节分别是PF和PS。
8399b0aa-7e96-11ee-9788-92fbcf53809c.png

图3. PDU与PGN的对应关系
3)可疑参数编号(Suspect Parameter Number, SPN)某个特定PDU对应的PGN是由一系列参数组成的,而SPN则是指明该PGN数据场中各个字节对应的是哪些具体的参数。下图为PGN 65262这个参数组的示例,包含发动机冷却液温度、燃油温度、发动机机油温度等参数,不同的参数由不同的SPN区分。
83a0f5cc-7e96-11ee-9788-92fbcf53809c.png

图4. PGN与SPN的对应关系示例
| 报文类型SAE J1939目前支持五种报文类型。
1)命令从某个源地址向特定目标地址或全局目标地址发送命令类型的参数组。目标地址接收到命令类型的报文后,应根据接收到的报文采取具体的动作。PDU1 格式(PS为目标地址)和PDU2 格式(PS为组扩展)都能用作命令。命令类型的消息可能包括传动控制、地址请求、扭矩/速度控制等等。2)请求请求类型的报文提供了从全局范围或从特定目标地址获取信息的能力。请求 PGN能定向到特定目标地址的ECU来检查是否支持特定参数组(即被请求的目标地址能否传送特定PGN)。对请求的响应取决于该PGN是否被支持,若是被支持,响应设备会发送被请求的信息,若该PGN不被支持,响应的设备会发送确认PGN来作为否定消息。

3)广播/响应设备主动提供的报文通常通过广播报文发出来,如发动机周期性发往全局地址的水温、油温、油压参数组报文。而收到命令或请求后则是通过响应报文进行回复,如变速器接收到发动机控制命令后返回响应。

4)应答对于特定命令、请求需要进行应答,包含肯定应答、否定应答、拒绝访问和无法应答。需要注意应答报文必须被发送到全局地址。5)组功能报文组功能报文是完成某项任务(如专用功能、网络管理、多包传输功能)的若干子功能的集合,通过请求对应组功能的PGN可以探查是否支持该组功能。
|传输协议
当被传输的数据大于8字节(对于CANFD则是大于64字节),需要使用传输协议对参数组进行拆包与重组和连接管理,实现多包传输。

1)拆包与重组当需要传输的数据域无法用一个单独的CAN数据帧完全装载时(数据长度大于8个字节),例如一个PDU的数据域包含18个字节,就需要将数据域拆分。在拆包和重组过程中,使用数据场的第一个字节作为序列号为拆包进行排序,接收方则根据这个序列号对接收到的多个包进行排序重组。第一个J1939报文的数据场包含序列号1和数据域的前1-7个字节,第二个J1939报文的数据场包含序列号2和数据域的其后的8-14个字节,最后一个J1939报文的数据场就包含序列号3和数据域最后的四个字节,数据场剩下未使用的字节全部填充为0xFF。

2)连接管理连接管理指的是传输单个较大参数组的双方之间建立虚拟连接过程中涉及的建立连接、使用连接传输数据和关闭连接三个过程。连接管理使用的是PGN 60416,相关的报文称为Transport ProtocolConnection Management(TP.CM),包含Connection Mode Request to Send(TP.CM_RTS), Connection Mode Clear to Send(TP.CM_CTS), End of Message Acknowledgment(TP.CM_EndOfMsgACK), Connection Abort(TP.Conn_Abort), Data Transfer Message (TP.DT), Broadcast Announce Message(TP.CM_BAM)。点对点通信的连接管理过程如下所示:

建立连接

当某个发送节点需要传输超过8个字节的数据时,首先发送TP.CM_RTS报文,并且携带了需要传输数据的总长度。接收节点收到TP.CM_RTS之后,可以通过发送TP.CM_CTS报文表示可以发送,连接建立成功,其中TP.CM_CTS报文中携带了发送方允许发送报文的数量信息。


数据传输

当发送节点收到TP.CM_CTS报文后开始通过TP.DT报文发送拆包后的数据,根据TP.CM_CTS报文中的数量信息发送特定数量后需等待下一个TP.CM_CTS报文才能继续发送数据包。

关闭连接

当接收节点接收最后一个数据包后,向发送接节点发送TP.CM_EndOfMsgACK报文表示数据接收完毕关闭连接。

83adb366-7e96-11ee-9788-92fbcf53809c.png

图5. 点对点发送的连接管理过程
对于广播发送大数据包时的连接管理则比较简单,不需要建立连接和关闭连接,只需要发送方通过TP.CM_BAM报文通知接收方即将会发送大包数据。
83b8a32a-7e96-11ee-9788-92fbcf53809c.png

图6. 广播数据发送过程SAE J1939网络层
SAE J1939网络层的协议主要有J1939-31等,主要描述了J1939不同网段之间进行通信需要的服务和功能。介绍了四种为不同网段之间实现互连提供功能的ECU类型:转发器(实现转发功能)、网桥(实现转发和过滤功能)、路由器(实现转发、过滤和地址转换功能)和网关(实现转发、过滤、地址转换和报文重组功能)。
SAE J1939 应用层
SAE J1939应用层的协议主要有J1939-71,J1939-73等。
| J1939-71
J1939-71定义了针对车辆应用的信号(即SPN)和报文(即PGN)。下图分别是该规范中发动机燃气流量PGN 61450参数组的定义和发动机进气质量流量SPN 132的定义。
83c0543a-7e96-11ee-9788-92fbcf53809c.png

图7. PGN 61450定义
83c80eaa-7e96-11ee-9788-92fbcf53809c.png

图8.SPN 132定义
| J1939-73
J1939-73定义了诊断报文的类型,常用的有:

DM1 - Diagnostic Message 1:DM1报文用于报告当前故障和相关的故障信息,它提供了有关车辆或设备上发生的故障的详细信息,包括故障代码、故障位置、严重性等。DM1报文的PGN是65226,该报文是法规强制要求实现的,通常是以广播形式周期性发送。


DM2 - Diagnostic Message 2:DM2报文用于报告历史故障和相关的故障信息,其PGN是65227。

DM3 - Diagnostic Message 3:DM3报文用于清除记录的诊断故障码,其PGN是65228。

另外在J1939-73中还定义了DTC(Diagnostic Trouble Code)的格式,长度为4个字节,如下表所示。此处SPN主要用于识别诊断信息所关联的对象,FMI定义了SPN的故障模式,OC表示故障发生的次数,CM位目前协议规定其值应为0,其取值为1主要是为了兼容早期版本,此时对应的SPN还需要经过换算才能得到真实的SPN值。83cfba74-7e96-11ee-9788-92fbcf53809c.png

表1. DTC的组成
J1939 网络管理
J1939的网络管理协议主要是J1939-81,需要注意的是此处的网络管理不是用来实现网络休眠唤醒的,而是对节点地址的配置和管理。一般情况下地址都是提前分配好的,因此针对这部分本文不再展开介绍。

83dbdf3e-7e96-11ee-9788-92fbcf53809c.png

总结J1939协议由各个层级的多个规范组成,本文介绍了当前J1939包含的协议并针对部分常见协议做了介绍。协议的规范以及版本众多给不同节点之间的互操作性带来了挑战,因此针对J1939的测试验证是不可缺少的重要一环。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    大学苏州汽车研究院三方共同签订《战略合作协议书》。据战略协议内容,三方达成合作共建"众泰新能源汽车与高科技项目",有效提升产业升级与全球布局。并拟设立50亿元产业基金,促进新动力、汽车检测、人工智能AI及低......
    块的时间同步原理与gPTP协议一致,只不过在协议内容方面,AUTOSAR规范进行了一些扩展,丰富了gPTP时间同步内容。 因此,本文将重点以IEEE802.1AS定义的gPTP以太网时间同步原理与协议......
    日宣布,将修改与格罗方德 (GlobalFoundries) 的晶圆供应协议。根据新协议内容指出,AMD 自 2016 年第 1 季起,至 2020 年第 4季为止,可以......
    曝番茄小说要求作者同意作品用来训练AI!引发联合抵制; 7月23日消息,据媒体报道,近日字节跳动旗下的番茄小说,因新增的“训练补充协议”引发网文作者联合抵制。 根据协议内容,作者......
    国润储能与江苏林源签约 开展液流电池技术合作;   近日,国润储能与江苏林源液流科技有限公司签订战略合作协议。根据协议内容,双方将充分利用各自在储能领域的经验与优势,围绕......
    新能源汽车市场。 图片来源:宁德时代 根据协议内容,宁德时代将融入到北汽集团下属自主品牌新能源汽车企业的整车开发及生产,并提供动力电池产品和服务保障,在动力电池方面开展全面合作。 据悉,宁德时代与北汽集团在2010......
    氢能科技拟投资建设氢能中心,项目拟规划总投资3亿元;近日,德龙汇能发布公告称,全资子公司氢能科技拟与江苏扬州化学工业园区管理办公室签署氢能项目的投资合作协议。 据悉,德龙汇能公告明确表示,氢能科技签署的合作协议内容......
    有意思的是,在与奇瑞签署协议的时候,到场的人员有奇瑞董事长尹同跃、华为余承东、宁德时代曾毓群和立讯精密董事长王来春,而余承东紧靠尹同跃和曾毓群,处于C位,像是一座桥,连接了奇瑞和宁德。 根据协议内容......
    全方位换电战略合作。根据协议内容,双方将通过“共投、共建、共享、共运营”模式,携手打造 “私家车”和“营运车”两大换电标准体系,加速推动车端、站端、电池端、运营端连通协同,扩大换电网络规模,为不......
    拉本周在工厂举行的一系列会议上告诉工人即将加薪。 其中一份邀请函副本显示,召开这些会议是为了警告员工注意德国五金工会“有问题的方法”。此前,德国五金工会表示将前往现场,向员工介绍工会成员的情况。 特斯拉没有回应早些时候就会议内容发表评论的请求。......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>