一、诊断故障码的组成

SAE J1939协议中定义了详细的诊断故障代码Diag-nostic Trouble Code,简称DTC,用来描述故障的详细情况。诊断故障代码由4个字节构成,划分为4个部分:未知参数的编号SPN(19位)、故障模式标志FMI(5位)、发生次数OC(7位)、未知参数编号的转化方式CM(1位)。

其中,CM是未知参数编号SPN的转化方式控制位,也就是19位的SPN排列顺序定义,用CM外加不同的版本号定义,以便正确读出故障代码中的SPN编号。









二、故障代码类型

2.1 DM1-当前故障代码

DM1报文的作用是及时报告正在发生的故障。

2.1.1 单帧DM1报文

假设是发动机电控单元(0x00)发出的故障信息,当前故障代码DM1的报文格式如图。



其中数据区的字节1为故障灯状态,字节1中8-7位是故障指示灯状态(排放相关的故障),6-5位是红色停止灯状态(非常严重的故障),4-3位是琥珀色警告灯状态(警告信息),2-1位保护灯状态(不是车辆电路系统引发的故障信息)。

分析收到如下的DM1报文,分析是发生了什么故障?





DM1在发生故障时,每1s发送一次。当由故障激活状态变为没有发生故障时,也是1s发送一次。不过,没有障碍时,发动机电控单元发送的DM1报文是:0x18FECA00 0x00 0xFF 0x00 0x00 0x00 0x00 0xFF 0xFF

2.1.2 多帧DM1报文

(结合上一章的传输协议进行学习)假设是发动机电控单元发生2个故障:发动机机油温度高于正常数值、发动机燃油温度高于正常数值时,均发生1次故障,要求红色停止灯点亮。其中,SPN为175为发动机机油温度,温度高于正常数值时,其DTC为0x010300AF,FMI=3,表示机油温度高于正常数值;oc=1表示出现1次故障。SPN为174为发动机燃油温度,温度高于正常数值时,其DTC为0x010300AE,FMI=3,表示燃油温度高于正常数值;oc=1表示出现1次故障。

(1)BAM通告报文



(2)第一条数据报文



(3)第二条数据报文

2.2 DM2-历史故障代码

DM2报文的作用是被询问的时候,报告已经发生过的故障。报文格式如下(其中字节1为故障灯状态,如2.1.1):



举例:故障诊断仪(0x2B)向发动机电控单元(0x00)发送请求报文,询问其历史故障信息情况。步骤如下:

(1)发动机电控单元向故障诊断仪发送请求报文



(2)发动机电控单元应答请求报文,发送DM2历史故障报文

假设发动机历史故障是:机油温度超过正常数值时,SPN是175(0xAF),为发动机机油温度,DTC为0x020300AF。其中,FMI=3,表示机油温度高于正常数值;0c=2,表示出现过2次故障;这时让琥珀警告灯亮。



(3)发动机电控单元不支持该请求报文,发送NACK应答报文

2.3 DM3-历史故障诊断清除/复位

DM3报文的作用是清除历史故障。

假设故障诊断仪(0x2B)向发动机电控单元(0x00)发送请求报文,希望能清除发动机历史故障信息。步骤如下:

(1)故障诊断仪向发动机电控单元发送请求报文



(2)发动机电控单元不支持该请求报文,发送NACK应答报文



(3)发动机电控单元支持该请求报文,发送ACK应答报文

2.4 DM11-当前故障码诊断数据清除/复位

DM11报文的作用是清除当前激活状态的故障。

假设故障诊断仪(0x2B)向发动机电控单元(0x00)发送请求报文,希望能清除发动机当前激活状态的故障信息。步骤如下:

(1)故障诊断仪向发动机电控单元发送请求报文



(2)发动机电控单元不支持该请求报文,发送NACK应答报文



(3)发动机电控单元支持该请求报文,发送ACK应答报文

2.5 DM4-停帧参量

DM4报文的作用是报告故障发生时的状态,如车速、发动机转速、扭矩等。停帧指的是当接收到一个诊断的故障代码时,控制模块记录该时刻的一系列状态参数。停帧包含要求的参数以及任何一个制造商的专用信息。

假如发动机发生燃油温度过高的故障,SPN是174(0xAE),为发动机燃油温度,温度高于正常数值时,其DTC为0x010300AE。其中,FMI=3,表示燃油温度高于正常数值;0c=1,表示出现一次故障。现故障诊断仪(0x2B)向发动机电控单元(0x00)发送请求报文,希望获取其停帧信息,步骤如下:

(1)故障诊断仪向发动机电控单元发送请求报文



(2)发动机电控单元不支持该请求报文,发送NACK应答报文



(3)发动机电控单元没有累积的诊断故障代码时的响应报文结构



(4)假如发动机发生燃油温度过高的故障,13字节(不包括制造商专用信息)

首先,发送BAM通告报文。



其次,发送TP.DT数据报文。



J1939协议中的故障诊断的更多相关文章

  1. PBOC协议中对于所有电子存折/电子钱包应用的预处理

    下图给出了PBOC协议中规定的对电子存折/电子钱包应用的所有交易类型共有的预处理流程 图1 1.1 插入卡片 终端应具有检测IC卡是否已经插入读卡器的功能.如果IC卡已经插入,终端将继续执行1.2的应 ...

  2. http协议中用于上传多个文件的 multipart 字段

    大家好,我是许飞,微软拼音的开发实习生.在网络编程中,经常用到从服务器上“下载”一些数据,有时却要向服务器“上传”数据.曾在一个原型中使用了“multipart/form-data”格式向Web服务器 ...

  3. C#的HTTP协议中POST与GET的区别

    引言 HTTP协议我想任何IT人士都耳熟能详了,大家都能说出个所以然来.但是如果我问你HTTP协议的请求方法有哪些?POST与GET的差异?GET或POST传送数据量的大小有限制吗?HTTP响应的状态 ...

  4. HTTP 协议中的 Content-Encoding 和 Transfer-Encoding(内容编码和传输编码)

    转自:http://network.51cto.com/art/201509/491335.htm Transfer-Encoding,是一个 HTTP 头部字段,字面意思是「传输编码」.实际上,HT ...

  5. HTTP协议中状态码的应用

    HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码. 所有状态码的第一个数字代表了响应的五种状态之一.   Mark from 维基百科     消息 ...

  6. TCP 协议中MSS的理解

    在介绍MSS之前我们必须要理解下面的几个重要的概念.MTU: Maxitum Transmission Unit 最大传输单元MSS: Maxitum Segment Size 最大分段大小PPPoE ...

  7. LWIP协议中tcp_seg结构相关指针的个人理解

    我曾经写在新浪博客上面,后来复制到这,图片就不行了. 原文地址转载  LWIP协议中tcp_seg结构相关指针的个人理解(http://blog.sina.com.cn/s/blog_7e586985 ...

  8. HTTP协议中PUT/GET/POST/HEAD等介绍

    HTTP协议中GET.POST和HEAD的介绍 GET: 请求指定的页面信息,并返回实体主体. HEAD: 只请求页面的首部. POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体 ...

  9. tcp协议中mss的理解

    在介绍MSS之前我们必须要理解下面的几个重要的概念.<blockquote>MTU: Maxitum Transmission Unit 最大传输单元MSS: Maxitum Segmen ...

  10. http协议中的Content-Type

    今天对http协议中的Content-Type有所理解了 它的主要功给我的感觉,还是在前台(客户端)给服务器传输数据时,描述这个数据的格式. 比如,我只传一个表单数据,但这个表单中只有文本,没有其它的 ...

随机推荐

  1. 洛谷 P5066 [Ynoi2014] 人人本着正义之名debug-log

    序言 此日志分为四部分. 00:00是开始打代码的时间. 最开始打完代码(没有debug)大约用了两小时. part1-20210323 02:30 生成新节点时,没有给随机权值. 02:41 upd ...

  2. 洛谷 P5048 [Ynoi2019 模拟赛] Yuno loves sqrt technology III

    洛谷 P5048 [Ynoi2019 模拟赛] Yuno loves sqrt technology III 题目描述 给你一个长为 n 的序列 a,m 次询问,每次查询一个区间的众数的出现次数,强制 ...

  3. umijs中简单使用umi-request

    在umi.js4中使用umi-request进行网络请求,查看官网后还是没明白,便自己摸索一遍,如下把简单使用的过程记录下来,以便共享给其他需要的小伙伴做参考,如有不对的地方,烦请指出. 第一步:安装 ...

  4. hashlib+time模块

    hashlib模块 [一]什么是摘要算法 Python的hashlib提供了常见的摘要算法 如MD5 SHA1等等. 摘要算法又称哈希算法.散列算法. 它通过一个函数,把任意长度的数据转换为一个长度固 ...

  5. Dify发布V1.5.0:可视化故障排查!超实用

    Dify 本周又发布了一个实用的大版本,直接从 V1.4.3 版本干到 V1.5.0 了,那问题来了,这次更新了哪些内容呢?接下来我们一起来看. 官方给这次更新的定义是:一个简洁.强大的更新,通过简化 ...

  6. 二、SDK编译

    二.sdk编译 1.linux 1.1.一键编译 ./build.sh lunch # RK_ROOTFS_SYSTEM目前可设定三种系统:buildroot.debian. yocto export ...

  7. Luogu P7503 「HMOI R1」文化课

    题传 先想一个巨 shaber 的暴力 DP:设 \(f_{i}\) 为对前 \(i\) 个人分段的最优解,则: \[f_{i}=\max_{0\le j<i}\{f_{j}+\operator ...

  8. C#/.NET/.NET Core优秀项目和框架2025年6月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍.功能特点.使用方式以及部分功能 ...

  9. vue2使用vue3语法

    Composition API Composition API 将是 Vue 3 的核心功能,它具有许多更改和性能改进. 我们也可以在 Vue 2 中通过 npm 插件@vue/composition ...

  10. tiptap中文文档

    我写的,如果有什么问题 暂时在这里评论就行 我去改 https://tiptap.site 没钱买域名了,tiptap中文网挂到我二级域名下了 https://tiptap.dingshaohua.c ...