J1939广播DM1报文

J1939广播DM1报文一、DM1报文1,SAEJ1939-21(参考5.2)对CANID进行了重新划分,加上8个字节的数据域,构成了J1939的协议数据单元(ProtocolDataUnit,PDU)。SAEJ1939-73(参考5.7.1)中定义了DM1的优先级为6,PGN(参数组数编号)为65226(00FECA),所以源地址为0x41的DM1ID为18FECA41。2,假设源地址为0x41的节点,存在两个现行故障,故障的SPN,FMI分别为(521132,1),(521008,3),按照DTC结构

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

一、DM1报文
1,SAE J1939-21(参考5.2)对CAN ID进行了重新划分,加上8个字节的数据域,构成了J1939 的协议数据单元(Protocol Data Unit, PDU)。

SAEJ1939-73(参考5.7.1)中定义了DM1的优先级为6,PGN(参数组数编号)为65226(00FECA),所以源地址为0x41的DM1 ID为18FECA41。

2,假设源地址为0x41的节点,存在两个现行故障,故障的SPN,FMI分别为(521132,1),(521008,3),按照DTC结构定义,当OC=1时,两个DTC为AC F3 E1 01,30 F3 E3 01。

3,SAEJ1939-73中定义DM1字节1为灯状态,字节2预留,当字节1=00,字节2=FF,0x41节点完整的DM1报文为:0x18FECA41:00 FF AC F3 E1 01 30 F3 E3 01,字节数大于8,将会使用“多帧传输”参数组。

二、多帧传输
1,根据SAEJ1939-21(参考5.10.1),长度大于8字节的消息被拆分成若干个小的数据包,然后使用单独的数据帧对其逐一传送。每个数据包都会被分配搭配一个从1到255的序列编号。最后一个数据包的数据域余下未使用的字节全部设置为“FF”

所以0x18FECA41:00 FF AC F3 E1 01 30 F3 E3 01将会被拆分成两条:01 00 FF AC F3 E1 01 30,02 F3 E3 01 FF FF FF FF

2,根据SAEJ1939-21(参考5.10.2),如果某个节点要广播一条多组的消息,它首先要发送一条广播公告消息(BAM)。BAM消息包含了即将广播的长消息的参数群编号、消息大小和它被拆装的数据报的数目。然后,使用PGN(PGN=60160)来发送相关的数据。

0x18FECA41:00 FF AC F3 E1 01 30 F3 E3 01,消息大小为10个字节,分成两个数据包,参数群编号00FECA,所以BAM的消息数据域为:20 0A 00 02 FF CA FE 00。

3,SAEJ1939-21(5.10.3),定义了链接管理TP.CM(BAM为其中一种)的参数群编号为60416(00EC00),BAM的目标地址为全局目标地址。

【根据SAEJ1939-21(5.2.5): 若PDU 格式(PF)段的值小于240,特定PDU 段是目标地址。若PF 段的值在240 和255 之间,特定PDU 包含群扩展(GE)值。全局目标地址(255)要求所有设备作为消息响应者作出监听和响应。】

所以0x18FECA41的BAM报文ID为:0x18ECFF41

4,SAEJ1939-21(5.10.5)定义了数据传送TP.DT的参数群编号为60160(00EB00),对BAM数据传送使用全局地址。

所以0x18FECA41的TP.DT报文ID为:0x18EBFF41

5,故0x18FECA41:00 FF AC F3 E1 01 30 F3 E3 01在can总线上传输格式为下图红框报文。

J1939广播DM1报文

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

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

(2)
上一篇 2022年6月2日 上午6:16
下一篇 2022年6月2日 上午6:16


相关推荐

  • 什么是SPU和SKU

    什么是SPU和SKUSPU StandardProd nbsp 标准产品单位 nbsp 概念 SPU 是商品信息聚合的最小单位 是一组可复用 易检索的标准化信息的集合 该集合描述了一个产品的特性 nbsp 通俗点讲 属性值 特性相同的货品就可以称为一个 SPU nbsp 例如 iphone7 就是一个 SPU 与商家 与颜色 款式 套餐都无关 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp

    2026年3月26日
    2
  • java数组去重_JAVA数组去重常用方法

    java数组去重_JAVA数组去重常用方法packagecom.zxj.test;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.HashMap;importjava.util.List;importjava.util.Map;publicclassTest{publicstaticvoidmain(String[]args){String…

    2022年6月23日
    47
  • autoconf 报错

    autoconf 报错报错现象:error:Autoconfversion2.64orhigherisrequired解决办法:查询当前版本:[python]viewplaincopy[root@wslu-cswslu]#rpm-qf/usr/bin/autoconfautoconf-2.63-5.1.el6.noarch卸载当前版本:[python]viewplainco…

    2022年5月9日
    42
  • toString方法重写

    toString方法重写Student 类 折叠起来的就是普通的 get set 方法 因为 syso 打印方法中调用的 Object toString 方法 当你重写 toString 方法 会覆盖 Object toString 方法 及会输出你重写的 toString 方法 以下为详解 1 未重写 toString 打印对象输出结果 进入 println 方法 看到调用了 String valueOf 进入 String valueOf 方法看到不为空调用 Object toString 方法 进入 Object

    2026年3月17日
    2
  • Thread的join方法[通俗易懂]

    Thread的join方法[通俗易懂]Thread中的join方法主要的作用是让jion的线程加入当前线程,等加入的线程执行完之后才会执行当前线程。接下来看个例子:publicclassTestJoin{publicstaticvoidmain(String[]args)throwsInterruptedException{Threadt1=newThread(()->{try{Thr

    2022年6月3日
    34
  • smarty怎么用_item怎么用

    smarty怎么用_item怎么用1、简介含义:Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来。环境需求:PHP5.2或者更高版本我使用的环境是:PHP5.

    2022年8月5日
    8

发表回复

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

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