SAE J1939协议(一)

article/2025/10/19 11:15:52

SAE J1939 是 基 于 CAN 总 线 的 协议,波特率可达250Kbps,是一种传输速率较高的C类通信网络协议。SAE J1939主要用于卡车、客车等的网络系统控制与通信。

SAE J1939分层结构模型:

SAE J1939标准的文档构成:

1SAE J1939物理层
SAE J1939的物理层描述了电气接口和物理介质,定义的内容包括:
1. 物理介质为屏蔽双绞线;
2. 传输速率为250Kbps
3. 同一网络上最大子系统数为30个;
4. 最大传输线长度为40m
5. 物理层还定义了数据的物理特性及总线的电气连接特性。

车辆网络实例

 

2SAE J1939数据链路层
SAE J1939CAN2.0B为基础,通过CAN总线进行数据通信。它的数据链路层定义了信息帧的数据结构、编码规则,包括通信优先权、传输方式、通信要求、总线仲裁、错误检测及处理,它负责将CAN扩展帧的29位标识符重新分组定义,使报文的标识符就能够描述报文的全部特征,包括目标地址、源地址等内容。

2.1 消息/帧格式(1)

消息格式需适应CAN网络的要求变化。需要指出的是,当CAN规范和SAE J1939有差异之处时,参照SAE J1939CAN文档规定,在消息路由选择中不使用节点地址。某些CAN网络中正确的应用并不一定适用于SAE J1939SAE J1939网络定义中规定,节点寻址是用来防止多节点使用同样的CAN网络标识符字段,许多SAEJ1939中的附加要求在CAN网络中并没有规定。

“CAN 2.0B”包括两种消息格式的规范,标准帧和扩展帧。 “CAN 2.0B”的兼容性意味着通过使用不同的帧格式位码,保证二者能同时在同一网络中使用。就此而言, SAE J1939也能够自适应这两种CAN数据帧格式。但是, SAE J1939只使用扩展帧格式全面定义了标准化的通信。所有标准帧格式消息都按照规则作为专用消息使用。因此, SAE J1939设备必须使用扩展帧格式。标准帧格式消息可以在网络中存在,但只能以规定的方式运行。

SAE J1939消息帧格式

SAE J1939CAN的仲裁场与控制场

 

参数群编号( PGN
CAN数据帧的数据场中需要指明参数群时所使用的编号, PGN是表示成24位。 PGN是一个24位的值,包括以下要素:保留位、数据页位、 PDU格式场( 8位)和群扩展场( 8位)。

标准帧格式的SAE J1939支持
SAE J1939网络中的控制器支持CAN标准帧( 11位标识符)消息格式。虽然与SAE J1939消息结构不兼容,但为了协调这两种格式的共存,在最低层次做了定义。此最低层次定义允许使用此格式的设备与其他设备不发生干扰。CAN标准帧格式消息是用来专用的。11位标识符中最高三位用作优先级位,最低八位定义PDU的源地址。

 

2.2 协议数据单元( PDU
协议数据单元定义了一个框架,用来组织那些对于每个要发送的CAN数据帧都
具有重要意义的消息。
SAE J1939协议数据单元由七部分组成,分别是优先级,保留位,数据页,PDU格式,特殊PDU(可作为目标地址、组扩展或专用),源地址和数据场。 PDU将被分组封装在一个或多个CAN数据帧中,通过物理介质传送到其他网络设备。每个CAN数据帧只可能有一种PDU

协议数据单元( PDU

P是优先级, R是保留位, DP是数据页, PFPDU格式, PS是特定PDUSA是源地址

优先级(P)
这三位仅在总线传输中用来优化消息延迟,接收机必须对其做全局屏蔽(即忽略)。消息优先级可从最高00002)设置到最低71112)。所有控制消息的缺省优先级是31102)。其他所有信息、专用、请求和ACK消息的缺省优先级是61102)。
当定义新的参数群编号,或总线上通信量变化时,优先级可以升高或降低。当消息被添加到应用层,将给出一个推荐的优先级。虑及OEM应能对网络做相应调整,优先级场应当是可重编程的。

 

保留位(R)
SAE保留此位以备今后开发使用。不能将此位与CAN保留位混淆。所有消息应在传输中将SAE保留位置0。今后新的定义可能扩展PDU格式场,定义新的PDU格式,扩展优先级段或增长地址空间。

数据页( DP
数据页位选择参数群描述的辅助页。在分配页一的PGN之前,先分配完页零的可用PGN

PDU格式( PF
PDU格式是一个确定PDU格式的8位构成的场,也是一个确定数据场对应参数
群编号的场。
两种专有参数群编号的定义已经建立起来,来确保PDU1PDU2两种格式的使用。专有信息的意义因制造商而异。例如,即使两个不同的发动机使用同一个源地址,制造商A的专用通信极可能与制造商B不同。

特定PDUPS
特定PDU是一个8位场,它的定义取决于PDU格式,根据PDU格式它可能是目标地址或者群扩展。 若PDU格式( PF)段的值小于240,特定PDU段是目标地址。若PF段的值在240255之间,特定PDU包含群扩展( GE)值。

 

目标地址( DA
这个场中定义了消息发送的特定目标地址。需要指出的是,任何其他设备应忽略此消息。全局目标地址( 255)要求所有设备作为消息响应者作出监听和响应。

群扩展( GE
群扩展字段与PDU格式场的低四位(注意:当PDU格式场最高四位被置1,说明PS场是群扩展)规定了每个数据页4096个参数群。这4096个参数群仅在使用PDU2格式时才适用。
另外,对于仅使用PDU1格式,每个数据页中有240个参数群。综上,对于目前使用两种数据页来说有8672种参数群可以定义。

源地址( SA
源地址场长8位。网络中一个特定源地址只能匹配一个设备。因此,源地址场确保CAN标识符符合CAN协议中的唯一性要求。地址管理、分配和处理过程在SAE J1939-81中定义。

数据场
当用不多于8字节的数据即表示一个给定参数群时,可使用CAN数据帧全部的8个字节。当一个特定参数群以长度从91785字节的数据来表示时,数据通信是通过多个CAN数据帧实现的。

2.3 协议数据单元( PDU)格式
两 种 PDU 格 式 定 义 为 : PDU1 格 式( PS为目标地址)和PDU2格式( PS为群扩展)。 PDU1格式允许CAN数据定向到特定目标地址(设备)。 PDU2格式只用于无特定目标地址(设备)的CAN数据帧的传输。使用两种不同PDU格式是为了在通信中提供更多参数群编号的组合。

PDU1PDU2
 

P是优先级, R是保留位, DP是数据页, PFPDU格式, PS是特定PDUSA是源地址

PDU1格式
此格式允许适用的参数群被发送到特定目的地或全局目的地。特定PDUPS)场包含目标地址( DA)。 PDU1格式消息能被请求,或以主动提供的方式发送。PDU1格式的消息由PDU格式( PF)段决定。当PDU格式场的值在0239之间时是PDU1格式。

 

PDU2格式
此格式只能用在作为全局消息的参数群通信中。 PDU2格式消息能被请求或以主动提供的形式发送。选择PDU2格式(同时分配PGN)可以避免PGN被定向到特定目的地。特定PDU包含了群扩展
GE)。PDU2格式的消息是指PDU格式( PF)值在240255之间的消息。

 

2.4 消息类型
目前支持五种类型消息,分别为:命令、请求、广播/响应、确认和群扩展。特定消息类型由其分配的参数群编号识别。 RTR位(在CAN协议远程帧中定义)不可用于隐性状 态 ( 逻 辑 1 ) 。 因 此 , 远 程 传 输 请 求( RTR=1)在SAE J1939中不适用。

对于出现在CAN数据帧中数据场的多字节参数,它们要首先存放在最低字节。因此,如果要将一个2字节的参数存放在CAN数据帧中的字节7和字节8LSB要被放在指字节7MSB放在字节8

命令
此消息类型包括那些从某个源地址命令特定目的地或全局目的地的参数群,目的地接收到命令类型的消息后应该采取特定的动作。 PDU1格式( PS为目标地址)和PDU2格式( PS为群扩展)都能用作命令。命令类型的消息可能包括传动控制、地址请求、扭矩/速度控制等等。

请求
此消息类型规定了从全局范围或从特定目的地请求信息的功能。对于某目的地址的请求称为目的地指定请求。

 

广播/响应
此消息类型可能是某设备主动提供的消息广播,也可能是命令或请求的响应。

确认
只有两种可能的确认形式。第一种是CAN协议规定的,它由确认消息已被至少一个节点接收的帧内确认组成。另外,如果没有出现CAN出错帧,消息将被进一步确认,不出现出错帧意味着所有
其他的开启并连接在总线上的设备都正确地收到了此消息。
第二种形式的确认由应用层规定,是对于特定命令、请求的普通广播“ACK”“NACK”响应。

地址分配准则
SAE J1939中,未被分配的地址数目是有限的,因此必须有效地分配新的地址。在整个系统中,可分配的地址数目最大不能超过256
有些设备可能会使用已有用的动态地址分配方案。在这种情况下,动态地址可以由服务工具来设置,并且(或者)可以在网络上电时分配。特别需要预先考虑的是,当使用动态地址分配方案时,并非所有的网络设备都支持这种操作模式。

参数群设定准则
SAE J1939中有三种主要的通讯方法,适当运用各种类型的通讯方法,可以使已有的参数群编号得到有效的使用。这三种通讯方法是:
a. PDU1格式( PS=允许指定目的地通讯的目标地址)
b. PDU2格式通讯( PS=群扩展)
c. 使用两个预定义的专用参数群编号的专用通讯

在准备参数群的时候,应当依次考虑使用专用通讯方法和PDU2格式。如果是进行专用信息的通讯,则应当用专用通讯方法。
如果信息有广泛影响,而且不需要指定消息发送到某个特定节点,那么应该考虑采用PDU2格式的分配。
如果信息有广泛影响,但要求指定发送到众多设备中的某一个,那么需要用指定的目标地址和PDU1格式来对参数群进行分配。

数据场的定义
由于基于CAN的系统中,最短的消息也需要全部使用数据场(全部8个字节)。除非是在传送时间要求非常急迫的消息的情况,一般地,相关的参数都应该组合起来占用8个字节的数据场。依照这一原则,可以保存参数群编号以备以后分配使用。除非有特别需要,一般不允许定义未充分使用数据场长度的参数群。

高速数据更新
当遇到数据的更新速度很高,要求在很短的时间做出反应时,如果可能的话,允许使用基于硬件的消息过滤。

请求调度
如果正在准备请求发送的信息在请求之前已经被接收到了,那么这个请求调度应该被取消。换言之,如果在请求调度之前的“50毫秒信息已经被接收了,那么就不再发出请求。
被推荐用于广播的参数群不应该被提出请求。但在超过推荐使用的广播时间的特殊情况时,可以例外。

设备响应时间和默认超时
所有的设备在被要求作出响应时,必须要在0.20秒内做出响应。所有等待响应的设备必须在放弃或重试前,至少等待1.25秒。
这些时间确保了所有由于总线访问或消息传送经过桥接器的等待时间不会导致不必要的超时。需要时,可以为特定的应用使用不同的时间值。

3. SAE J1939 网络层
与其他上层协议不同, SAE J1939网络管理的主要任务就是节点的地址分配或确定,但它不
能实现其他上层网络协议中的节点监测功能。因此, SAE J1939网络必须通过应用程序来实现节
点监测。
节点地址是SAE J1939网络正常工作的前提条件,这和单纯的CAN网络不同。 SAE J1939
络初始化期间,所有节点都要检查它们自己静态配置的节点地址,从而确定这个地址在网络中是
独一无二的,每个节点在获得响应的地址后才能进行正常通信。
 

典型卡车和客车应用的SAE J1939车辆网络

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/TX7iUbp2.shtml

相关文章

J1939 学习(一)

J1939简介 SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。它由“卡车与大型客车电气与电子委员会”(Track & Bus Electric…

J1939协议解析

关于对J1939的一点理解,有错误的话请指正。 缩写定义 PGN 在CAN数据帧的数据域中需要指明参数群时,PGN是表示成24位。PGN是一个24位的值,包括以下要素:保留位、数据页位、PDU格式域(8位)和群扩展域&#…

J1939协议简介【小白入门】

文章目录 J1939协议简介J1939主要特性报文格式及使用方法(J1939/21)地址和名称 (J1939/81)地址请求报文传递(J1939/21和J1939/7x)TP_BAM报文TP_CM报文报文接收(J1939/21和J1939/7x)ECU设计(J1939/1x,J1939/21和J1939/7x)接线布局 - 物理层(J1939/1x)如何…

J1939 入门教程

SAE J1939协议是基于CAN2.0B协议之上的应用层协议,但是SAE J1939协议并不仅仅是个应用层协议,她对物理层,数据链路层,网络层,应用层,故障诊断, 网络层管理层等都做了详细的规定,只不过这其中很多…

神经网络炒股出现的问题,炒股容易得神经病吗

听朋友说他用盈首AI全自动炒股机器人炒股,效果很好,请问一下用过的朋友,不知道是否是真的? 应该是真的,现在是人工智能时代,科学炒股是必然选择,国家也在出了很多支持人工智能的政策&#xff0…

竟然可以用python炒股?

由于笔者并无深厚的数学功底也无深厚的金融知识, 所以不会在本文中引用各种高深的投资模型或数学模型,参考书籍主要是《海龟交易法则》《以交易为生》。 交易系统 在交易之前,我们应该首先有一个交易系统用于指导我们自己交易,不一定有什么规…

用深度学习算法预测未来股票走势

最近研究了一下用深度学习算法来预测股票未来的走势,看了网上不少别人分享的案例,也实际进行了测试,感觉用 LSTM 算法比较适用。长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络&#…

AI in Finance<量化交易人工智能金融投资>(下)

7 机器学习量化策略7.1 基于股价涨跌分类/回归模型7.1.1 特征选择(遗传算法因子挖掘)7.1.2 Linear Regression股价回归预测7.1.3 Logestic Regression涨跌分类预测7.1.4 Random Forests涨跌分类预测7.1.5 SVM涨跌分类/回归预测7.1.6 MLP涨跌分类/回归预测7.1.7 集成学习 涨跌分…

(转)人工智能无处不在,这次是有公司用它来炒股

这事情能成吗? 人工智能是现在科技界一个比较热门的话题,不管公司大小、做什么,都在谈人工智能,好像这是唯一的选择。 现在有人想用它来炒股。 Shaunak Khire 的团队开发了一套机器智能系统 Emma AI,正在募资成立一…

AI 量化机器人,人工智能如何助你从股市发家?

量化交易是不是很高大上? 量化交易,听起来很高大上,其实就是众多投资方法中的一种。 要理解什么是量化交易,首先我们来说说什么叫“量化”。 我们来想象一种场景: 假如有人做了两道菜,让大家去评价这两道菜…

如何用深度强化学习自动炒股

向AI转型的程序员都关注了这个号???????????? 人工智能大数据与深度学习 公众号:datayx 深度学习技术在股票交易上的应用研究调查 http://gregharris.info/a-survey-of-deep-learning-techniques-applied-to-trading/ 文中缩写: DBN 深度信…

如何用人工智能预测股票(完整项目)

本文由 沈庆阳 所有,转载请与作者取得联系! 前言 十分钟实现人工智能股价预测,是一个深度学习的练习项目。其通过机器学习算法,根据过去几年与某只股票相关的K线走势、公司相关报道的情感分析作为数据集,通过训练来得到可以预测股价的机器学…

想靠AI炒股致富,结果恐怕会让你怀疑人生

来源:脑极体 作者:藏狐 经历了漫长熊市的A股,在农历新年后迎来了一个超乎想象的春天。最能够代表牛市来临的信号,不是领跑全球的历史性涨幅,而是连你老家的大妈都准备拿出首付甚至卖房抄底了,各路股神纷纷出…

手把手带你玩转Spark机器学习-使用Spark进行文本处理

系列文章目录 手把手带你玩转Spark机器学习-专栏介绍手把手带你玩转Spark机器学习-问题汇总手把手带你玩转Spark机器学习-Spark的安装及使用手把手带你玩转Spark机器学习-使用Spark进行数据处理和数据转换手把手带你玩转Spark机器学习-使用Spark构建分类模型手把手带你玩转Spa…

大数据笔记--Spark机器学习(第二篇)

目录 一、梯度下降法 1、什么是梯度? 2、梯度下降法与梯度上升法 3、梯度下降法的直观解释 4、梯度下降法的相关概念 5、梯度下降法原理 6、梯度下降法的算法参数 7、梯度下降法-家族(BGD,SGD,MBGD) 8、总结 …

Spark机器学习(一)-Spark工程搭建

目录 概述 环境准备 搭建Spark项目的代码工程 创建maven项目工程 创建scala测试类 整合spark环境 概述 最近自己在加强AI这块,以前做Java、大数据分析比较多,所以对CDH那套东西都比较熟悉,例如Hadoop、Spark。但Spark这块中的ML用得不…

【Spark】实验6 Spark机器学习库MLlib编程实践

Spark机器学习库MLlib编程实践 一、实验目的 通过实验掌握基本的MLLib编程方法;掌握用MLLib解决一些常见的数据分析问题,包括数据导入、成分分析和分类和预测等。 二、实验平台 新工科智慧平台。数据集1:下载Adult数据集(http://archive.i…

手把手带你玩转Spark机器学习-使用Spark进行数据降维

系列文章目录 手把手带你玩转Spark机器学习-专栏介绍手把手带你玩转Spark机器学习-问题汇总手把手带你玩转Spark机器学习-Spark的安装及使用手把手带你玩转Spark机器学习-使用Spark进行数据处理和数据转换手把手带你玩转Spark机器学习-使用Spark构建分类模型手把手带你玩转Spa…

spark之常见的机器学习算法

1、分类、回归、聚类 分类回归是一种重要的机器学习和数据挖掘技术。分类的目的是根据数据集的特点构造一个分类函数或分类模型(也常常称作分类器),该模型能把未知类别的样本映射到给定类别中的一种技术。 即: 向量X[x1,x2...xn]但标签C[c1,c2...,ck]的…

Apache Spark机器学习

推荐电子书:Apache Spark 2.x入门 - 从入门到制作 前言: 使用Apache Spark 2.0及更高版本,实现了很大的改进,使Spark更容易编程和执行更快: Spark SQL和Dataset / DataFrame API通过Spark SQL优化的执行引擎提供易用…