UDS DTC故障码格式

故障码类型

ISO 14229-1 UDS协议标准中提到5种DTC格式类型:
在这里插入图片描述
在这里插入图片描述

  • 0x00:SAE_J2012-DA_DTCFormat_00 在 SAE_J2012-DA_DTCFormat_00 规范下,DTC 使用前两个字节,根据 SAE J2012-DA 进行解码,第3个字节(dtc middle byte,中位字节)并不参与解码。一般第3个字节默认为 00;
  • 0x01:ISO_14229-1_DTCFormat ISO 14229的DTC格式是由3个byte长度的DTC和1个Byte的DTC状态组成的。1个字节的StatsusOfDTC中每个Bit都有特定含义,反映了DTC的状态。依照 ISO 14229-1 标准定义,但此标准仅规定了 DTC 的长度为 3 个字节,未明确具体的设置方式,允许车辆制造商进行自定义。
  • 0x02:SAE_J939-73_DTCFormat:参数表示 SAE J1939-73 标准中定义的 DTC 格式, 常用于商用车,因为 SAE J1939 协议主要针对商用车制定。
  • 0x03:ISO_11992-4_DTCFormat 表示 ISO 11992-4 标准中定义的 DTC 格式,使用相对较少。
  • 0x04:SAE_J2012-DA_DTCFormat_04该格式引用了 SAE_J2012,专门用于增强型诊断,其 DTC 字节含义严格遵循 SAE_J2012 协议。Format_04的DTC有故障类型名称和故障子类型的需求,例如DTC B0039-Second Row Right Frontal Stage 1 Deployment Control,作为2个字节的DTC定义为0xB0039,作为3字节的DTC定义为0xB003901,01代表FTB(故障类型字节Failure Type Byte)的General Electrical Failure。

DTC的定义

DTC,Diagnostic Trouble Code,诊断故障码,即 故障类型的 ID。

在ISO4229当中,一个完整的DTC码有 3个 Byte,包含2个Byte的故障内码(5位标准故障码) + 1个Byte的故障类型,而一个DTC故障码又对应唯一的一个DTC状态码,所以说故障信息码的格式由四个字节组成。
在这里插入图片描述

DTC 故障码的分类

DTC分为non OBDOBD两种格式,如下所示:

  • OBD,排放相关的故障码通过 OBD 服务进行读取
  • 非OBD,非排放相关的故障码通过 UDS 服务进行读取

在这里插入图片描述

OBD 格式的 DTC Byte0是固定的,值为:0x00

DTC 故障码的组成

1、OBD DTC 格式结构

OBD DTC 5位标准故障码 占2字节(省略Byte0 :0x00)。

示例:0x0143 的动力系统DTC应显示为 P0143。

DTC 2 个字节DTC High ByteDTC Low Byte
以二进制显示 DTCBit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0000000101000011
显示字符第 1 个字符第 2 个字符第 3 个字符第 4 个字符第 5 个字符
P 0 1 4 3

OBD DTC 5个字符的定义如下:

1、第 1 个字符:DTC High Byte(Bit 6 - 7)表示故障所属哪个大的系统

Bit6~7显示字符System系统
00PPowertrain 动力总成系统
01CChassis 底盘系统
10BBody 车身系统
11UNetwork and vehicle Integration 网络和车辆集成系统

2、第 2 个字符:DTC High Byte(Bit 4 - 5)表示故障类型(用的哪种法规)

Bit4~5显示字符System系统
000ISO / SAE controlled 协议规定的通用故障码
011Chassis manufacturercontrolled 制造商自定义故障码
102ISO / SAE controlled controlled 预留故障码
113ISO / SAE controlled controlled 预留故障码

3、第 3 个字符:DTC High Byte(Bit 0 - 3)表示车辆系统域(Area of vehicle system),故障所属子系统

例如,对于动力系统部分:

  • 1”表示燃油和空气计量系统;
  • “2”表示燃油和空气计量系统(喷油器);
  • “3”表示点火系统;
  • “4”表示废气控制系统;
  • “5”表示巡航、怠速控制系统;
  • “6”表示与控制单元相关;
  • “7”“8”表示变速箱系统等。

4、第 4、5 个字符:DTC Low Byte(Bit 0 - 7)根据需要分配 ID

注意:

  • 字符3用于标识特定的车辆区域; 在任何区域内,显示字符4和5最多允许256个代码定义
  • 对于动力总成,这些Bit受 ISO/SAE 控制;对于所有其他人,它们是制造商控制的
  • 对于动力总成,11 = P3000到P33FF的制造商控制;11 = ISO/SAE为P3400到P3FFF保留

2、UDS DTC(ISO 14229-1、ISO 15031-6)格式结构

UDS DTC 使用三个字节,其中 HighByte 和 MiddleByte 这2个字节表示故障内码,对应5位标准故障码。

LowByte 这个字节表示Failure Type Byte (FTB),包含Failure categoryFailure Sub Type两个部分。

(ISO 15031-6 中的DTC LowByte 表示Failure Type Byte (FTB),而ISO 14229-1 中的DTC LowByte 表示ID序号)

下图显示了3字节DTCFormatIdentifier = 0x01或0x04 DTC结构的示例。使用DTCFormatIdentifier = 0x01或0x04作为数据总线值 0x923411的3字节DTC,将作为制造商控制的车身代码B1234–11显示给技术人员。

DTC 3 个字节DTC High ByteDTC Middle ByteDTC Low Byte
以二进制显示 DTCBit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
100100100011010000010001
显示字符第 1 个字符第 2 个字符第 3 个字符第 4 个字符第 5 个字符第 6 个字符第 7 个字符
B 1 2 3 4 1 1

Failure Type Byte (FTB)

FTB 为故障类型,通过FTB可以直观地看出DTC发生故障的车身位置和故障类型。

FTB 包含 Failure category(故障种类) 和Failure Sub Type(子类型) 两个部分。具体种类和类型在 ISO15031-6中详细定义。
在这里插入图片描述
故障种类:
在这里插入图片描述
在这里插入图片描述

参考

  • https://www.zhihu.com/tardis/bd/art/407991054?source_id=1001
  • https://zhuanlan.zhihu.com/p/481631613?utm_id=0&wd=&eqid=b45c0ef70001168300000006646f1ec4
### DTC故障的命名规则及其含义 #### 1. **DTC结构概述** DTC (Diagnostic Trouble Code) 是一种标准化的编体系,用于描述车辆系统中的特定故障。其基本格式由三个部分组成:`DTCHighByte`、`DTCMiddleByte` 和 `DTCLowByte`[^1]。 #### 2. **高位字节(DTCHighByte)与中间字节(DTCMiddleByte)解析** 这两部分共同构成了五位标准故障的核心内容,具体分为以下几个组成部分: - **第一位字符** 表示故障所属系统的类别,通过两位二进制数来定义: - `00`: P (Powertrain 动力系统) - `01`: C (Chassis 底盘系统) - `10`: B (Body 车身系统) - `11`: U (Network 网络通信系统) - **第二至第五位数字** 这四个数字进一步细化了具体的故障类型和位置。例如,在动力系统中,“P0300”可能表示发动机失火检测总成故障。 #### 3. **低位字节(DTCLowByte)的作用** 该字段通常用来补充更详细的错误信息或者厂商自定义数据。例如,在某些情况下,它可能是扩展的子代或者是时间戳等附加参数。对于像“B100016”的例子来说,“16”即代表低字节的具体数值。 #### 4. **ISO/SAE 标准化影响** 虽然存在一些通用的标准定义(如 ISO 或 SAE 所制定的基础框架),但实际上不同制造商可能会基于这些基础进行一定的调整或扩展。因此并非所有的 DTC 都严格遵循统一模式。“0x00”作为 ISOSAE 的默认标志之一表明这是按照国际标准组织以及汽车工程师学会联合发布的规范所创建出来的初始版本号而已,并不意味着其他非零值就一定不符合行业准则[^2]。 ```python def decode_dtc(dtc_code): """ A function to demonstrate decoding a basic DTC code. Args: dtc_code (str): The full diagnostic trouble code string. Returns: dict: Dictionary containing decoded information about the DTC. """ if not isinstance(dtc_code, str) or len(dtc_code) != 7: raise ValueError("Invalid DTC format") system_map = { 'P': "Powertrain", 'C': "Chassis", 'B': "Body", 'U': "Network" } first_char = dtc_code[0].upper() numeric_part = dtc_code[1:] result = {} try: result['System'] = system_map[first_char] except KeyError as e: result['Error'] = f"Unsupported System Identifier {first_char}" result['Code'] = numeric_part[:4] result['LowByte'] = numeric_part[-2:] return result example_output = decode_dtc('B100016') print(example_output) ``` 上述 Python 函数展示了如何解一个简单的 DTC 字符串并提取其中的关键组件。 ---
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值