J1939协议解析

article/2025/10/19 11:07:12

关于对J1939的一点理解,有错误的话请指正。

缩写定义

在这里插入图片描述
在这里插入图片描述

PGN

在CAN数据帧的数据域中需要指明参数群时,PGN是表示成24位。PGN是一个24位的值,包括以下要素:保留位、数据页位、PDU格式域(8位)和群扩展域(8位)。各个位转化到PGN的过程如下。若PF值小于240(F016),PGN的低字节置0。
PF共8位,0-255,当PF<240时,说明是点对点通信,向特定目标通信,这时PS用于表示目标地址,不用于构成PGN,PGN后8位补0。当PF>=240时,采用广播式通信,这时PS用于构成PGN。
在这里插入图片描述

关于帧ID解析

在这里插入图片描述
在这里插入图片描述

0x18:是优先级,组成:P+R+DP 二进制为110 +0 +0 转为16进制为0x18.
0XFA40:为PGN,详情看上边
0x49:为外部设备地址
PF (PDU格式):
PF大小为8bit,于确定分配到数据域的PGN,有两种不同标识的参数PDU格式,分别为PDU1,PDU2,当PF<240为PDU1格式,当PF≥240且PF≤255, 为PDU2格式。PDU1用于将数据传递至特定的目标地址,也就是某个确定的ECU; PDU2用于将数据传递至扩展参数组,类似于局部广播。

举例:
终端设备请求: 转速:请求帧:0x18EA00F9 0x04 0xF0 0x00 0x00 0x00 0x00 0x00 0x00

车子回复: 回复帧 0x18F00400 0x00 0x00 0x00 0x12 0x34 0x00 0x00 0x00
前边地址就不介绍了直接看数据
那么0X04 0XF0,组合到一起就是F004(CAN报文里面最前面的为低字节)
在SAEJ1939-71文档里面直接搜索F004,即可定位到该参数组编号定义的位置。F004即为PGN,通过该详细介绍,我们可以看到第4,5字节代表转速。
在这里插入图片描述
最后总结一下:0x18EA00F9 0x04 0xF0 0x00 0x00 0x00 0x00 0x00 0x00这条请求报文的整体含义是:外部设备地址为F9的车外诊断服务工具请求车辆发动机转速,转速的参数组编号为F004,也正是该F004参数组编号决定了这条报文是请求的发动机转速。

0x18F00400的含义

18代表优先级和保留位以及数据页,这个无需过多讲解。

F004这个转速所在的参数组的编号,意思是这个报文是F004参数组编号的数据项。

0x18F00400 0x00 0x00 0x00 0x12 0x34 0x00 0x00 0x00整体含义解析
那么具体这2个字节对应的转速解析算法如何计算呢?我们看后面的一栏,SPN栏,转速对应的SPN为190,接着我们再去搜索SPN190对应的解析。
在这里插入图片描述
该项很清楚的写到了,每一个bit位代表的是0.125转。也就是说车子回复的报文里面的第4,第5字节,组合到一起就是0X3412(报文的低字节在前,高字节在后),对应的十进制为是0X3412=13330,再结合每一个bit代表0.125转,所以13330对应的实际转速值为:13330*0.125=1666.25转每分钟。


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

相关文章

J1939协议简介【小白入门】

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

J1939 入门教程

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

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

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

竟然可以用python炒股?

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

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

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

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 集成学习 涨跌分…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

spark之常见的机器学习算法

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

Apache Spark机器学习

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

Spark Machine Learning(SparkML):机器学习(部分二)

目录 6.分类和回归 6.1分类(Classification) 逻辑回归(LR) 决策树分类器(DTC) 随机森林分类器(RFC) 梯度提升树分类器(GBTC) 多层感知器分类器(MLPC) 线性支持向量机(SVM) One-vs-Rest分类器 朴素贝叶斯(NB) 6.2回归(Regression) 线性回归(LR) 广义线性回归(GLR) …

spark机器学习笔记:(六)用Spark Python构建回归模型

声明&#xff1a;版权所有&#xff0c;转载请联系作者并注明出处 http://blog.csdn.net/u013719780?viewmodecontents 博主简介&#xff1a;风雪夜归子&#xff08;英文名&#xff1a;Allen&#xff09;&#xff0c;机器学习算法攻城狮&#xff0c;喜爱钻研Meachine Learnin…