解析CAN的J1939协议PDU报文

解析CAN的J1939协议PDU报文PF用来确定PDU格式:0——239表示PDU1格式;240——255表示格式2。PDU1格式报文表示向特定或全局地址发送PDU2格式报文表示向全局地址发送PS由PF决定其含义DA表示报文要发送的目标地址GE表示PS在PDU2中与PF的4个最低有效位能够共同确定4096个PDU2格式参数组数据场数据场包含了参数组中的数据内容,通常控制类参数组数据长度等于8;其中

大家好,又见面了,我是你们的朋友全栈君。

解析CAN的J1939协议PDU报文

PF用来确定PDU格式:0——239表示PDU1格式;240——255表示格式2。

PDU1格式报文表示向特定或全局地址发送

PDU2格式报文表示向全局地址发送

PS由PF决定其含义

解析CAN的J1939协议PDU报文

DA表示报文要发送的目标地址

GE表示PS在PDU2中与PF的4个最低有效位能够共同确定4096个PDU2格式参数组

数据场

数据场包含了参数组中的数据内容,通常控制类参数组数据长度等于8;其中未定义的字节以0xFF填充,已备将来分配;如果参数组数据长度超过8,要使用传输协议。

参数组与PGN

参数组数目=[240(PDU1)+16*256(PDU2)]*2(DP)=8672

PGN计算

PDU1格式

PGN=PF*256

PDU2格式

PGN=PF*256+GE

使用举例

解析CAN的J1939协议PDU报文

报文解析

SPN(可疑参数编号)

SPN使用演示

解析CAN的J1939协议PDU报文

解析CAN的J1939协议PDU报文

物理数值=比列系数*总线数值+偏移量

根据上面图片,假如读取到报文中总线数值为100,则其物理温度为=100*1-40=60°

总线数值=(物理数值-偏移量)/比例系数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132803.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DLL注入原理分析

    DLL注入原理分析所谓DLL注入就是将一个DLL放进某个进程的地址空间里,让它成为那个进程的一部分。要实现DLL注入,首先需要打开目标进程。1、附加到目标/远程进程hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|//允许远程创建线程PROCESS_VM_OPERATION |//允许远程VM操作PROCESS_VM_WRITE, //允许…

    2022年5月16日
    46
  • idea2019.3激活码(注册激活)

    (idea2019.3激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月29日
    2.1K
  • json转字符串 python_Python读取json

    json转字符串 python_Python读取json序列化与反序列化按照某种规则,把内存中的数据保存到文件中,文件是一个字节序列,所以必须要把内存数据转换成为字节序列,输出到文件,这就是序列化;反之,从文件的字节恢复到内存,就是反序列化;pytho

    2022年7月28日
    5
  • MySql 字段类型对应 Java 实体类型

    MySql 字段类型对应 Java 实体类型MySql 字段类型对应 Java 实体类型前言 CopyMySQLCon J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的 一般来讲 任何 MySql 数据类型都可以被转换为一个 java lang String 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型 当然这样也可能出一些四舍五入 溢出 精度丢失之类的问题 Java 基础类型与包装类型 Copya 如果数据库字段是允许为空的 使用包

    2025年10月15日
    4
  • 使用线程池来创建线程的方法_线程池多线程实现

    使用线程池来创建线程的方法_线程池多线程实现1.如何使用线程池来创建线程?java中提供了一个静态工厂方法来创建不同的线程池: Executors通过静态方法创建出的线程都实现了ExecutorService接口。常用的方法包括:newFixedThreadPool(intthreads);创建一个固定数目的线程池newCachedThreadPool();创建一个可缓存的线程池,调用execute方法将重用以前…

    2022年10月21日
    3
  • php使用PdfParser搭配tcpdf解析pdf文件

    php使用PdfParser搭配tcpdf解析pdf文件前几天客户提出一个需求,就是在前台页面搜索文章时,若搜索词在文章附件的pdf文件中有出现的话就要将该文章作为搜索结果。我的思路是后台发布文章时循环检测每一个附件的格式,若附件格式为pdf的话就将里面的文字读取出来追加到一个$string变量里,然后将$string的作为一个file_text字段的信息保存到数据库后面做搜索的时候使用。我参考的一个回答地址是:https://baijiahao……

    2025年10月5日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号