全面了解DTC

DTC基础

前面0x14服务提到的DTC,只是浅浅的带过去,但是讲到了0x19服务,就要深入了解,全面了解DTC变成了过不去的一道坎。由于DTC的内容比较多,特别开了一小节来讲这个DTC。

DTC就是诊断故障码,英文全称Diagnostic Trouble Code,用于指示车辆系统中出现的故障。每个故障码由三大部分组成,ID、故障状态、快照和扩展信息。ID都由一个字母和一个或多个数字组成,字母用于表示故障码的类型,每一类故障码组成一组DTC组。

譬如有个诊断故障码ID为U010187,字母一定在最前面,代表故障码的类型:

后面的数字,根据故障的性质和位置,DTC通常被分类为不同的子系统或模块,如发动机、传输、刹车、悬挂等,譬如01就是发动机类。每个子系统都有一个特定的DTC范围,以便更好地组织和识别故障。

它一般会有个十六进制的名字,一般为3个字节长度,这有利于代码的编写,譬如U010187的十六进制就是0xC10187。

故障状态

故障状态一般为1个字节,利用不同的位用来记录各种故障,譬如bit0代表当前故障,bit3代表历史故障。不同的故障之间可能有一定的逻辑,最常见的故障有当前故障和历史故障,这里只讲最常见的这两种故障。

DTC故障产生

产生DTC有两个条件,一个是前提条件,一个是触发条件,都是厂商规定的,只要故障一产生,就会同时产生当前故障和历史故障,故障产生之后,就会置起DTC列表里面故障状态里面的当前故障位和历史故障位。

前提条件一般是电压在正常范围、点火线上电时间,网络类的DTC就会有网络畅通的条件。

触发条件是专门产生每个DTC的条件,一般有某条报文丢失一段时间、校验不通过、电压过高或者过低、某个设备持续多长时间检测不到信号。

由于DTC一般是由MCU来记录的,但不是全部设备都跟MCU有硬件上的链接,这个时候就需要网关来转发CAN报文给MCU,或者SOC检测到设备异常后通过SPI通讯将异常信息发送给MCU来记录。

DTC当前故障的清除

清除DTC当前故障有两种方法,一种是手动,一种是自动。

手动清除前面已经讲过,就是发0x14服务,按照DTC组来清除。

自动清除DTC也是有两个条件,一个是前提条件,一个是触发条件,都是厂商规定的。

自动清除的前提条件跟产生的前提条件差不多,一般都是一样的,少部分DTC会有差异。

自动清除的触发条件是专门针对DTC产生的触发条件,两者一般是相对的,譬如某个设备损坏的DTC产生触发条件是10秒接收不到该设备的信号,那么自动清除的触发条件就是连续一分钟收到该设备的信号。

DTC历史故障的清除

清除DTC也可以通过14服务清除。

自动清除的条件是,上下电若干次,这个上下电可以是K30(电源),可以是K15(点火线),也可以是休眠唤醒之类的。

DTC快照

快照也叫冻结帧,实际上就是个记录,记录下对应的故障产生的时候,实车具体是什么状态,要求掉电不丢失。一般包括的信息有车速、发动机转速、点火状态、时间、电压、已行驶里程、关键设备运行状态,格式一般为快照记录码 + 记录码对应的信息,每个快照记录码都对应一条快照信息。所有的快照记录码和所有快照信息合起来才是一条DTC里面的整个快照。快照只记录最近的一次故障产生的状态,如果之前有故障,发生新的故障,则用新的故障快照覆盖旧的故障快照。

DTC扩展数据

扩展数据跟快照差不多,主要作用是跟快照区分,但其实没有什么本质区别。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不吃鱼的羊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值