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

笔记:J1939协议之DM1

时间:2024-03-23 15:29:37浏览次数:24  
标签:00 字节 J1939 DM1 故障 笔记 诊断 FF

目标:学习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-Learning

J1939 DM1多包广播报文发送-CSDN博客

J1939广播DM1报文_j1939 dm1-CSDN博客

标签:00,字节,J1939,DM1,故障,笔记,诊断,FF
From: https://blog.csdn.net/VistaTech/article/details/136966377

相关文章

  • 向量学习笔记
    0前引向量是一个在物理学中十分常见的概念,在数学和编程中的应用也很广泛。今天来浅谈一下向量的一些基本运算及其应用。1定义向量是一个有方向,有长度的量,在坐标系中通常通过起点坐标和终点坐标表示。为了方便运算,七点坐标通常被设为原点。但正如同刚才所说,向量的两个关键因......
  • 2024.3.23 笔记(Tarjan)
    P3469[POI2008]BLO-Blockade根据割点的定义,若节点\(i\)不是割点,则把节点\(i\)关联的所有边去掉之后,只有\(i\)与其他\(n-1\)个节点不连通,而其他\(n-1\)个节点之间是连通的。注意:题目求的是有序点对,即\((x,y)\)和\((y,x)\)算不同的点对,故此时答案是\(2*(n......
  • zynq Lwip学习笔记-recv_callback函数
    文章目录前言一、概述二、函数体三调用位置前言最近在学习zynq中的lwip协议族,找不到很好的记笔记的地方,所以就用csdn记录一下自己的学习过程。现在对lwip不熟悉,只是把官方的lwipechoserver例程跑了一下,能跑通就一点点的照着学了,笔记都是根据自己的理解写的,而且部......
  • zynq Lwip学习笔记-accept_callback函数
    文章目录前言`一、概述二、函数体三、调用关系前言`最近在学习zynq中的lwip协议族,找不到很好的记笔记的地方,所以就用csdn记录一下自己的学习过程。现在对lwip不熟悉,只是把官方的lwipechoserver例程跑了一下,能跑通就一点点的照着学了,笔记都是根据自己的理解写的,而......
  • JavaWeb学习笔记——第二天
    JavaScript什么是JavaScriptJavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互。JavaScript和Java是完全不同的语言,不论是概念还是设计都不一样。但是基础语法类似。JavaScript在1995年由BrendanEich发明,并于1997年成为......
  • 小迪学习笔记(权限提升)
    小迪学习笔记(权限提升--windows溢出提权)权限提升权限提升的必要性权限提升常用操作命令web环境和本地环境辨别操作系统Windows操作系统下获得系统数据MSF提权本地提权计划任务提权扫描工具扫系统漏洞总结权限提升这里给大家看一下小迪的思维导图权限提升的必要性......
  • java框架漏洞的学习笔记
    网络安全学习之框架漏洞学习框架漏洞的意义一、spring框架常见漏洞spring简介Actuators介绍spring区分默认路径SpringBoot历史漏洞springboot常见端点二丶Shiro框架反序列化漏洞shiro框架介绍Shiro漏洞原理三丶Tomcat任意文件写入(CVE-2017-12615)漏洞原理影响范围总结......
  • 开源的数据可视化平台 Kibana 日志可视化 mac 安装笔记
    拓展阅读日志开源组件(一)java注解结合springaop实现自动输出日志日志开源组件(二)java注解结合springaop实现日志traceId唯一标识日志开源组件(三)java注解结合springaop自动输出日志新增拦截器与过滤器日志开源组件(四)如何动态修改springaop切面信息?让自动日志输出......
  • Java学习笔记:ArrayList集合
    目录为什么要有集合:解决数组自动扩容的问题Java、python数据类型对比Java支持的数据类型主要分为两大类:Python支持多种数据类型,主要包括以下几种:在Java中常见的数据类型实现方式:Java通过使用集合框架来解决一组数据的存储和管理Java集合大致也可分成List、Set、Queue、Map四种接口......
  • FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg
    FFmpeg支持Linux、macOS、Windows、Android等操作系统,其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官网的编译入口地址为https://trac.ffmpeg.org/wiki/CompilationGuide,在这里可以找到FFmpeg对各系统的编译说明。更多详细的FFmpeg开发知识参见《F......