UDS诊断系列之十七 谈谈故障码(DTC)

故障码的全称是Diagnostic Trouble Code,简称DTC,它是故障的编号,与实际故障之间存在映射关系。

一、故障码定义

在开发初期,通常会根据软件或硬件的功能设计相应的错误码。这些错误码能够帮助诊断系统中可能出现的大多数故障,例如硬件的短路或开路,以及软件功能的执行失败等。在开发阶段,如果有可用的串口,可以通过串口打印来显示这些错误码。但是,一旦产品开始量产,车辆上通常就不再具备这种条件了。
现代汽车通常都配备了总线系统,即ECU之间的通信依赖于成熟的总线系统,如CAN总线和以太网等。这些总线支持UDS诊断,因此可以将错误码映射到UDS诊断的DTC上。通过UDS服务,可以读取与错误相关的信息,包括状态和系统快照等。
故障码的格式会根据不同的应用场景有不同的规范要求。例如,SAE J2012的格式有两种:一种是15031-6定义的常见格式,另一种是较新的27145定义的格式,目前还未见其实际应用。1939格式是商用车使用的故障码格式,在UDS中较为少见。11992-4是拖车使用的诊断协议,应用非常有限。而14229-1的格式则是最为常用的,因为它定义了四个字节的灵活性,具体内容可以根据实际情况自由填充。在实际OEM应用中,最常用的表示方法是SAE_J2012-DA_DTCFormat_00,尽管大多数选择的是ISO_14229-1_DTCFormat_01,但也会采用J2012的格式。
无论采用哪种格式,故障码最终都是由4个字节组成。
在这里插入图片描述
SAE_J2012-DA_DTCFormat_00的格式相对简单,一个DTC由四个字节构成。前两个字节描述了故障的种类,如故障器件、功能、位置等,第三个字节指出故障的类型,例如短路或开路,而最后一个字节代表故障状态,比如是当前正在发生或仅仅是之前发生过的。
J1939格式与商用车协议有关,包括SPN和FM等信息,但具体格式在此不详述。
27145格式是较新的内容,它可以映射至DA_DTCFormat_00或J1939格式,其中包含相应的对应关系,这部分内容如果有人感兴趣,将在后续有时间时另开章节详细说明。

二、故障码的存储

在汽车UDS诊断中,故障码的存储通常要求保存在NVM(Non-Volatile Memory)中,这意味着即使断电,故障码也不会丢失。由于芯片上的NVM容量有限,许多OEM会设定一个最小存储数量的限制,只要能够保存的DTC数量不小于这个数量即可。当故障码数量超过限制时,通常采用FIFO(先进先出)策略来管理这些数据。

除了故障码,还可以读取一些状态信息和快照数据,这些信息也会与故障码一起保存。常见的存储信息包括快照和扩展信息。

快照记录了故障发生时车辆的状态信息,例如车速、蓄电池电压、挡位等。快照提供了故障发生时的环境数据,有助于在后续问题分析中快速查找原因,并准确复现当时的车况。快照数据的格式与22服务的DID一致,一个DID号对应一组数据。

扩展信息则记录了故障本身的一些详细信息,如故障发生的次数或某些操作循环计数。扩展信息提供了故障的历史数据,通过这些信息可以辅助分析故障的发生频率以及是否有历史原因导致故障的发生。

三、故障码的读取

故障码读取是通过UDS的19服务实现的。该服务下有多个子功能,每个子功能对应不同的读取内容。以下是几个常用的19服务子功能:

  1. 01 reportNumberOfDTCByStatusMask:报告与状态掩码匹配的DTC数量。使用这个子功能时,不会响应实际的DTC内容,只会响应与请求的状态掩码相匹配的DTC数量。

  2. 02 reportDTCByStatusMask:这是最常用的子功能,通常用于读取与请求的状态掩码相匹配的DTC。

  3. 04 reportDTCSnapshotRecordByDTCNumber:通过该子功能可以读取指定DTC的快照信息,即故障发生时的一些状态信息。

  4. 06 reportDTCExtDataRecordByDTCNumber:通过该子功能可以读取指定DTC的扩展数据,即DTC自身的一些属性。

  5. 0A reportSupportedDTC:该子功能用于读取控制器支持的所有DTC,主要作用是检索所有的DTC,以确认其与定义的一致性,同时也可以查询每个DTC的状态。

以上是比较常见的19服务子功能,后面会逐个进行详细讲解。请大家持续关注,点赞和收藏。

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UDS (Unified Diagnostic Services) 是ISO 14229标准的一部分,用于提供统一的车辆诊断服务接口。它允许各种工具、设备和服务提供商之间通过通用的接口进行通信,以读取车辆故障信息。 UDS诊断涉及到DTC(Diagnostic Trouble Codes,故障诊断),即车辆在检测到某个系统出现问题时所生成的特定代。这些代通常由一串数字和字母组成,以描述具体的故障源。当使用支持UDS标准的诊断设备连接到汽车上并请求DTC信息时,车辆将返回存储在其ECU(电子控制单元)中的所有当前及历史的故障。 以下是关于UDS诊断DTC显示的一些基本点: ### UDS诊断过程 1. **诊断请求**:诊断工具向车辆发送一个请求,询问有关车辆状态的信息,包括是否有故障存在以及具体的故障。 2. **响应**:车辆接收请求,并依据ISO 14229标准的UDS协议返回所需数据。这包括是否发现故障故障列表等。 3. **分析与处理**:诊断工具收到响应后,解析其中包含的故障,然后将其转换为人能理解的语言(如英文描述)并显示给用户。这些代可以帮助技术员快速定位问题所在,从而采取相应的维修措施。 ### DTC显示含义 每个DTC都代表了车辆的一个特定故障或潜在问题。例如,P0446可能是催化转化器效率过低的指示,而B1111则可能表示燃油泵故障。这些代有助于识别需要关注的具体系统或组件,比如发动机控制系统、排放控制系统、变速箱或车身电器系统等。 ### 使用DTC进行维护的重要性 理解DTC对于进行准确的诊断和修复至关重要。错误地解释DTC可能导致不必要的修理工作或是对问题解决不当,甚至可能会导致更严重的后果。因此,技术人员应熟练掌握如何解读DTC,并结合实际检查结果进行全面分析。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChenglimK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值