《AUTOSAR谱系分解(ETAS工具链)》之诊断故障码(DTC)

9 篇文章 5 订阅

《AUTOSAR谱系分解(ETAS工具链)》之诊断故障码(DTC)

在这里插入图片描述

诊断故障码(DTC)的定义

DTC(Diagnostic Trouble Code)顾名思义诊断故障码,一种用来记录当ECU发生或者检测到某种故障时呈现给大家的标识码。

DTC的意义

故障码有以下两点意义:

产线下线检测:

一辆车的零部件的开发,系统集成,整车组装,其中涉及的流程之长,零部件数量之多,可以说是相当复杂。为了产线生产的车能正常下线,安全上路,就需要确保在车辆下线前,各零部件本身以及零部件相互配合是没有问题的。因此在产线电检流程中,会读取整车故障码,通过故障码说明车辆是否正常。

车辆维修:

当车辆出故障时,维修工程师是如何快速定位到故障零部件呢?车辆是由上万个零部件组成,如果依赖于维修工程根据经验慢慢排查,效率会极其低下。因此,维修工程师会使用诊断仪读取整车故障码,并将故障码与故障现象对照,快速得出维修策略。

DTC故障类型

以非排放相关的ECU为例,可以将DTC故障类型分为以下几个部分:

硬件故障:

如RAM、Flash、CPU时钟等硬件本身失效的问题

软件故障:

如配置字故障,标定故障或客户定义的软件功能性故障

外部环境故障:

电压过高或者欠压、环境温度过高或过低等

通讯相关故障:

如报文丢失、信号无效,Checksum/Rolling 障等

基本概念及术语

  • 操作周期(Operation Cyle)

    • EXP:定义要运行的检测的开始和结束条件,Operation Cycle开始时开始检测故障,结束时停止检测。车身与底盘域由OEM或者供应商自己确定(如上下电、休眠唤醒等),对于动力域会存在其它标准规定(没有深入研究)
  • 监控周期(Monitoring cycle)

    • EXP:逻辑1表示一个故障被监测到,逻辑0表示最近的故障测试通过或已存在的故障所有的故障条件已不满足,ClearDiagnosticInformation命令可清除此状态位。
  • 确认阈值(Confirmation Threshold)

    • EXP:确认此故障一直存在的Operation Clycle数,将其认定在历史DTC,在老化(aging)或手动清除前confirmed DTC状态位会一直存储在EEPOM
  • 老化计数(Aging Counter)

    • EXP:连续报告没有故障的Operation Cycle数
  • 老化阈值(Aging Threshold)

    • EXP:Aging Counter达到次数之后,DTC的Confirmed状态位将会被清除
  • 错误计数(FDC, Fault Detection Counter)

    • EXP:为错误计数,当然这个步长可以设定,向上(Step up)或者向下(Step down)均可以设置(计数值位-128-127,不同DTC需要的滤波次数不一致,通过设置此项值设置滤波次数)。同时还可以设置jump down(即在检测通过时是否跳转到0或者其它数,并从这个数开始向下减)

诊断服务

  • EXP:
    当DCM接收到14/19服务时,会获取/清空DEM模块相关信息(DTC、状态信息等)。其中14服务用于清空DTC信息,19服务用于获取DTC信息。

故障码(DTC)的组成

DTC故障码是一个4个字节的标识符,由以下两部分组成:DTC Catogory 与Failure Type,其中DTC Catogory 又可以根据Powertrain、Body、Chasis、N etwork四大子系统来进一步定义其范围,简称PBCU四大子系统,如下表所示:

SystemCode categoriesHex valueAppendix
BodyB0xxxxx - B3xxxxx8xxxxx - BxxxxxB
ChassisC0xxxxx - C3xxxxx4xxxxx -7xxxxxC
PowertrainP0xxxxx - P3xxxxx0xxxxx- 3xxxxxP
Generic/Network and Vehicle IntegrationU0xxxxx - U3xxxxxCxxxxx -FxxxxxU

在这里插入图片描述

故障码(DTC)解析(0x012700)

    1. 首先将0x01转换为二进制:0000 0001
    1. 取最前面两位,按这个规律(00=P, 01=C, 10=B, 11=U)可以转换为:P 00 0001
    1. 然后接着两位和最后4位分别转换为16进制数,00(二进制) -> 0x0,0001 -> 0x1,最终0x012700转换为:P012700

故障状态

  • pending

    • EXP:故障(testFailed)进入event memory之后便会在给event memory的状态或上PENDING的状态位。
      pending由1变为0的条件如下两图:

    在这里插入图片描述

    在这里插入图片描述

  • confirmed

    • 故障状态confirmed策略有两种情况:

    • ① 在non-emission related ECU中
      当故障状态故障testFailed之后,置PENDING位后confirmed位便会同时置位,如下图:
      在这里插入图片描述

    • ②emission-related ECU
      在故障状态PENDING置位后,此时的tested and failed cyclescounter加一,如果此时tested and failed cycles counter达到DemEventFailureCycleCounterThreshold,且此时的OBD driving cycle 处于开启状态,confirmedDTC位才会置位。
      在这里插入图片描述

诊断故障码(DTC)的掩码

  • TestFailed (bit0)

    • EXP:逻辑1表示一个故障被监测到,逻辑0表示最近的故障测试通过或已存在的故障所有的故障条件已不满足,ClearDiagnosticInformation命令可清除此状态位。
      在这里插入图片描述
  • TestFailedThisOperationCycle (bit1)

    • EXP:逻辑1表示当前操作周期或从上一次ClearDiagnosticlnformation命令清零后已经监测到一次故障,ClearDiagnosticInformation命令或新的操作周期都会清零此状态位。
      在这里插入图片描述
  • PendingDTC (bit2)

    • EXP:逻辑1成立条件与TestFailedThisOperationCycle相同,不同之处为清零条件,此位清零条件为一个完整的操作周期内未出现故障或ClearDiagnosticInformation命令。
      在这里插入图片描述
  • ConfirmedDTC (bit3)

    • EXP:逻辑1表示一个已经被确定的故障被监测到,被确定的条件有:在连续操作周期内都检测到故障(TestFailed),且检测到的计数(TripCounter)已经达到定义的次数值。可通过ClearDiagnosticInformation命令或当Aging Counter 达到Aging threshold满足时清零此位,此外,故障的记录信息被新故障记录覆盖时,也会清零此状态位。
      注:ISO14229-1建议,非排放相关的ECU服务器TripCounter=1
      Aging Counter:当一个操作周期完成且本周期内没有出现TestFailed,则Aging Counter加1.
      在这里插入图片描述
  • TestNotCompletedSinceLastClear (bit4)

    • EXP:逻辑1表示从上次ClearDiagnosticInformation命令复位(置1)后,新的故障测试还未完成,逻辑0表示从上次清零后,新的故障测试已经完成(Failed or Passed)
      在这里插入图片描述
  • TestFailedSinceLastClear (bit5)

    • EXP:逻辑1表示从上次ClearDiagnosticInformation或其他条件清零后,已经监测到被确定的故障,逻辑0表示从上次清零后,测试未完成或测试已经Passed(而不是Failed)。
      需要确认Aging Counter达到Aging threshold和内存记录被覆盖是否需要复位此状态位?
      在这里插入图片描述
  • TestNotCompletedThisOperationCycle (bit6)

    • EXP:逻辑1表示从上次ClearDiagnosticInformation命令复位(置1)后,本操作周期内当前测试未运行完成,逻辑0表示从上次清零后,本操作周期内已经出现TestFailed或者TestPassed,操作周期切换也会复位(置1)此状态位。
      在这里插入图片描述
  • WarningIndicatorRequested (bit7)

    • EXP:逻辑1表示需要故障报警标识的故障已经处于ConfirmedDTC状态(bit3)和TestFailed状态(bit0),逻辑0表示无故障需要报警标识提示。无需报警标识故障存在或ClearDiagnosticInformation都可以清零此状态位。
      注意,如果报警标识被一个锁定的故障打开,就算有ClearDiagnosticInformation清零命令,也不能清零此状态位,仍然要保持开启状态,直到被锁定的故障TestPassed。
      在这里插入图片描述

扩展数据及冻结帧

  • 扩展数据(Extended)

    • EXP:扩展数据(Extended Data Record)包括一些软件模块内部的信息,比如频率时钟。
    • EXP:该数据在DTC的状态Pending置上后便会一同保存在非易失性存储单元(EEPROM),对两个常用数据进行说明(其余可以看标准或者依据OEM要求)
      1)错误计数(Fault Detection Counter): 检测到错误的计数,具体可以查询上文定义
      2)老化计数(Aging Counter): 连续的Operation Cycle未检测到错误(DTC检测为passed,FDC为-128)的计数,当达到老化阈值时,会将DTC状态confirmed位置为0
    • EXP:Dem通过NvM模块进行存储。ECU下电过程中,比如在ECUM PREP SHUTODWN阶段,调用Dem_Shutdown()接口关闭Dem,接口中Dem将根据存储需要,设置Dem相关的NvM Block的RAM status为changed或者unchanged。之后的NvM_WriteAll()将对RAM status为changed的NvM block进行存储。
  • 冻结帧(Freeze Frame)
    【有时也被称为快照数据(SnapShot)】

    • EXP:冻结帧(Freeze Frames)是指故障发生时环境的信息和故障产生处的数据,如传感器读取的数据,。
    • EXP:记录发生故障时的工况(SnapShot:由一些列的DID组成),当DTC状态位Confirmed位由0置为1时将记录snapShot。
      例如,可以环境温度、ECU供电电压等可能与故障相关的一些数据,用于后续的车辆故障分析。
    • EXP:快照是存储在ECU内存中DTC相关的某些数据的记录,快照常用来在系统故障发生时存储数据值,这些存储的数据-参数旨在帮助技术人员检修时减少错误的故障隔离操作;

《AUTOSAR谱系分解(ETAS工具链)》之总目录

  • 7
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值