首页 > 其他分享 >笔记:J1939协议之DM1

笔记:J1939协议之DM1

时间:2024-04-16 18:56:34浏览次数:28  
标签:字节 J1939 报文 DM1 故障 笔记 诊断 代码

目标:学习SAE1939-73中的DM1,尤其是多包故障的传输规则

一、基本概念

SAE1939-73即CAN总线J1939协议的应用层-诊断
符号缩写的含义
DM1 诊断信息1,当前故障码
DM2 诊断信息2,历史故障码
DM3 诊断信息3,历史故障码的清除/复位
DM4 诊断信息4,停帧参量
DM5 诊断信息5,诊断准备就绪
DM6 诊断信息6,持续监视系统测试结果
DM7 诊断信息7,指令非持续监视测试
DM8 诊断信息8,非持续监视系统测试结果
DM9 诊断信息9,氧传感器测试结果
DM10 诊断信息10,非持续监视系统测试标志符识别支持
DM11 诊断信息11,当前故障码清除/复位
DM12 诊断信息12,发送排放相关的当前故障码
DM13 诊断信息13,停止启动广播
DTC 诊断故障代码
FTP 联合测试程序
MIL 故障指示灯
NA 不支持
PID 参数标志符(SAE J1578 或SAE J1979)
OBDⅡ 第二代车载诊断系统
DM14 内存存取请求
DM15 内存存取响应
DM16 二进制数据转换
DM17 引导载入数据
DM18 数据安全性
DM19 标定信息
DM20 监视工作比率
DM21 MIL 激活时的行程距离
EDC 错误检测和/或校准
EDCP 错误检测和/或校准参数
FMI 故障模式指示器
MA 内存存取
PG 参数组
OC 出现次数
SPN 可疑参数编号

二、 DTC(诊断故障代码)

一种用以识别故障类型、相关故障模式以及它的发生次数的4 字节数值。诊断故障代码(DTC)由4 个独立域构成,这4 个部分是:这些独立的参数不是一个单独的数,而是一组描述故障的信息。

DTC

字节3

SPN的低8位有效位

(第8位位最高有效位)

字节4

SPN的第2字节

(第8位位最高有效位)

字节5

SPN高3位有效位与FMI有效位

(第8位为SPN的最高有效位及第5位为FMI的最高有效位)

字节6

SPN

FMI

CM

OC

8

7

6

5

4

3

2

1

8

7

6

5

4

3

2

1

8

7

6

5

4

3

2

1

8

7

6

5

4

3

2

1

SPN是发生故障的参数编号,FMI是发生故障的类型(具体查表SAE J1939-73 附录A),

CM是SPN转换序列,OC为本故障的发生次数。当故障第一次发生时,OC加1,如果故障一直存在,OC不累加,

当故障成为先前发生的故障后,故障再次发生时,OC累加1。故障取值为0~126,即使大于126时,OC也保持126。


CM(SPN Conversion Method,SPN转化方法)

定义DTC对齐方式。值为“0”表示“Structure of a DTC”模式4的对齐方式;

如果值为“1”,则必须区分是标准曾经定义过的3种方式之中的哪一种。系统必须了解这一点。


诊断故障代码实例

三、DM1(激活状态的诊断故障代码)

激活状态的故障码,包含指示灯状态,一列诊断代码以及当前激活状态诊断代码的发生次数。
DM1属于广播类型,每秒广播一次,其他当接收到PGN 59904参数请求指令时响应,DM1为数据传输类型。传输速度:一旦有 DTC 成为激活的故障,就有DM1 消息会被传输,并在之后处于正常的每秒仅一次的更新速度。当不止一个激活的DTC 存在时,这个参数组将会要求使用“多包传输”参数组。

3.1 故障指示灯

只用于传达排放相关的故障代码信息。当有一个排放相关的故障代码处于激活状态时才被点亮。

红色停止灯,用于传达整车出现严重故障,必须停车检修的故障代码信息。

琥珀色警告灯,用于传达告知车辆系统出现问题,但不须立即停车检修的故障代码信息

保护灯,用于传达一种代码信息,提示告知车辆系统出现问题且极有可能不是相关电路子系统引起的故障。

3.2 单帧报文

DM1:激活状态的故障诊断代码,PNG=0xFECA,发送速率:1s举例ID:0x 18 FE CA 00

优先级

R

DP

PF

PF

SA

数据区(8字节)

3位

1位

1位

8位

8位

8位

1

2

3-6

7

8

6

0

0

FE

CA

00

00

FF

DTC

FF

FF

注:数据区1字节为故障灯状态,故障为严重则点亮红灯,一般点亮淡黄灯,无故障为00。

3.3 多帧报文

首先发送TP.CM_BAM(Transport Protocol-Connection Management_Broadcast Announce Message)广播连接报文;接着发送TP.DT(Transport -Protocol_Data Transfer)多包传输报文载体,具体操作:将数据分包,每七个字节为一包,每包的第一个字节为该报文的编号(SN),剩余字节放数据,最后一包未用完的字节,全置0xFF。
(1)发送TP.CM_BAM广播报文,PGN=0xECFF  举例ID:0X 18 EC FF 00

优先级

R

DP

PF

PF

SA

数据区(8字节)

3位

1位

1位

8位

8位

8位

1

2-3

4

5

6

7

8

6

0

0

EC

FF

00

20

LSB

MSB

 

FF

8LSB

2ND

8MSB

ID:0X 18 EC FF 00

控制字

数据字节数

数据帧数

保留

数据的PGN

对于DM1,PGN=0xFECA

 

Byte6

Byte7

Byte8

DM1

CA

FE

00

(2)发送TP.DT数据报文,PGN=0xEBFF

举例ID:0x 18 EB FF 00

激活的故障代码DM1,发送的故障码有两部分组成,假设,故障灯为a, DTC为b,c,d,e等四个字节。

多个故障码时,打包的顺序是a b c d e b c d e….。如果最后一个报文中数据字节不到7位,则填充0X FF。

优先级

R

DP

PF

PF

SA

数据区(8字节)

3位

1位

1位

8位

8位

8位

1

2

3

4-7

8

6

0

0

EB

FF

00

SN=1

故障灯

DTC1

DTC2字节1

 SN为数据帧序号,SN=1表示数据报文的第一帧。

优先级

R

DP

PF

PF

SA

数据区(8字节)

3位

1位

1位

8位

8位

8位

1

2-4

5-8

6

0

0

EB

FF

00

SN=2

DTC2字节2-4

DTC3

 

优先级

R

DP

PF

PF

SA

数据区(8字节)

3位

1位

1位

8位

8位

8位

1

2-?

 

6

0

0

EB

FF

00

SN=n

DTCm

FF

 


参考资料SAE_J1939-73中文J1939_C: 诊断故障代码 | Vector E-LearningJ1939 DM1多包广播报文发送-CSDN博客J1939广播DM1报文_j1939 dm1-CSDN博客


















附件列表

     

    标签:字节,J1939,报文,DM1,故障,笔记,诊断,代码
    From: https://www.cnblogs.com/pudding-plus/p/18138955

    相关文章

    • 笔记;超声波倒车雷达方案分析(一)
      需求:搜集超声波倒车雷达方案,了解基础知识和开发要点。一、基础概念1.1测量原理超声波发送探头向外发送超声波,超声波在向外扩散过程中遇到障碍物会产生反射波,通过接收探头对反射波进行接收,采集发送和接收到超声波的时间差来计算障碍物的距离。常用探头工作频率有40KHz,48KHz以及58......
    • 后缀数组 学习笔记
      理论知识详见OIWiki。模板后缀排序一切有关后缀数组问题的必备板子。求后缀数组模板题,OIWiki有详解。点击查看代码#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'#definesortstable_sortusingnamespacestd;constintN=1e6+10;template......
    • nova rescue原理笔记
      说明:场景示例,虚机的启动盘的一个文件被误删除了导致无法再次启动了,或者admin的密码忘记了。Rescue功能提供一个解决这类问题的手段。备注:不能rescue一个volume-backedinstance前提默认情况下,实例从提供的救援映像或新的映像启动原始实例映像的副本(如果未提供救援映像)。......
    • FPGA入门笔记013——嵌入式块RAM使用之FIFO
      1、FIFO概述​ FIFO(FirstInFirstOut),即先进先出。FPGA或者ASIC中使用到的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。它与普通存储器的区别是没有外部读写地址线,这样使用起来相对简单,但缺点就是只能顺序写入数据......
    • React 学习笔记:刚开始接触
      目录前言相关链接个人对React和Vue的初步感觉React和Vue官方态度的区别ReactVue新建第一个React项目复制官方的文档代码教程:井字棋游戏React个人使用体验返回html修改样式作用域React的常用组件ReactDeveloperToolsReact开发工具React框架推荐总结前言之前有断断续续学过一段......
    • markdown语法笔记
      markdown语法笔记目录markdown语法笔记一、标题1.Setext风格的标题定义方式2.Atx风格的标题定义方式3.小结二、段落1.正文2.段落3.不分段换行4.缩进、空白行5.小结三、粗体与斜体四、文本高亮五、下划线、分割线与删除线六、列表1.普通列表2.TODO列表七、引用八、行......
    • 初级英语学习笔记01
       1.Thisis 和Isthis 交换使用 当我们指向一些非特定的物体和人时,使用冠词“a”如果是位置,大小,味道,颜色等,我们使用冠词“the”where在哪里who 谁what 什么onthe ISNOT否定NOISNOT isn'tIN ......
    • day11_我的Java学习笔记 (static_静态成员变量+静态成员方法_工具类、代码块_静态代码
      0.面向对象进阶1.static静态关键字1.1static是什么,static修饰成员变量的用法Java成员变量成员方法Python类(对象)属性类(对象)方法static修饰成员变量的应用:在线人数统计1.2static修饰成员变量的内存原理1.3static修饰成员方法的基本......
    • move_base学习笔记
      `move_base`提供了多种API,用于与导航堆栈进行交互。以下是一些主要的API及其作用:1.**ActionAPI**:-**MoveBaseAction**(`move_base_msgs/MoveBaseAction`):这是`move_base`的主要API,用于发送目标位置给机器人,并获取机器人的导航状态。用户可以发送一个包含目标位置和姿态......
    • day10_01_我的Java学习笔记 (JavaSE进阶课程预备)
      JavaSE进阶课程预备1.JavaSE加强课程简介2.IDEA开发模式统一工程,相当于一个小区的院子;模块,是小区的哪一栋;包,是这栋楼的那一单元类,是这个单元的哪一层楼;对象,是这层楼具体的某一户房间。eg:滢水山庄二区--工程9栋--模块4单元--包8楼--类......