UDS诊断服务简述

本文主要用于UDS诊断服务的开发以及初步的认知学习。

参考文件链接:
跟我学UDS(ISO14229) — 0x3E(TesterPresent)
UDS诊断之10服务

0x3E服务

该服务用于诊断会话服务的维持。
存在2个子服务:
0x00:不禁止肯定响应报文的发送;
0x80:禁止肯定响应报文的发送;

0x10服务

该服务用于诊断会话控制。
存在以下子服务:
0x00 ISOSAEReserved(保留)
0x01 defaultSession(默认会话)
0x02 ProgrammingSession(编程会话)
0x03 extendedDiagnosticSession(外部扩展会话)
0x04 safetySystemDiagnosticSession
0x05 – 0x3F ISOSAEReserved(保留)
0x40 – 0x5F vehicleManufacturerSpecific(由整车厂自定义使用)
0x60 – 0x7E systemSupplierSpecific(由ECU供应商自定义使用)
0x7F ISOSAEReserved(保留)

故障码状态位 DTC Status Bits

BitDescriptioncommit补充说明
0testFailed反映最近一次的故障检测的结果:
 0:检测无故障:;
 1:检测有故障;
故障检测是指控制器会在特定时间/状态下执行特定的代码来检查一下系统的状态。
例如:控制器的Ad采样口,正常电压范围是5~16V,在软硬件设计中,每隔10ms就会去读一下这个Ad采样口的电压,如果在正常电压范围内,则测试通过,反之,测试失败。
1testFailedThisOperationCycle当前点火周期内,是否检测到故障:
 0:没有检测到故障;
 1:至少检测到一次故障;
记录当前点火周期/上电周期内,故障检测中是否检测到故障的情况,每一次新的周期,该bit都会置0。
备注:可以是上下电周期,也可以是发动机点火周期,具体取决于系统的定义,一般是一次上下电作为一次周期;
2pendingDTC故障挂起:
 0:当前/上一轮周期不存在故障;
 1:当前/上一轮周期存在故障,需要记录;
部分故障需要连续多周期发生,方可成熟;[类似于滤波过程中的一个状态]
 该位置1,则故障码相关需要被记录。
3confirmedDTC故障成熟(满足故障码记录条件):
 0:无确认故障;
 1:存在/存在过确认的故障,该故障已被记录;
DTC的确认,需要故障发生的次数/时间超过设定的阈值;
故障和DTC是2个概念。
该位置1,则故障码相关需要被记录。该位置0,需要14服务,或者满足老化条件,或者其他。
4testNotCompletedSinceLastClear自上次清除DTC后,是否完成了该DTC相关的检测
 0:自从清理DTC之后,已经完成了该DTC相关的检测。
 1:自从清理DTC之后,没有完成该DTC相关的检测。
这个bit用于标识,自上次清理DTC后(0x14服务),是否成功地完成了对该DTC的相关测试(不管测试结果是什么,只关心是否测了)。
 因为部分DTC的测试需要满足特定条件的,不是每次工作周期内都会进行检测。
5testFailedSinceLastClear自上次清除DTC后,是否检测出故障:
 0 :自从清理DTC之后,没有检测出故障。
 1:自从清理DTC之后,检测过故障。
该bit是0的情况下,也存在故障检测未完成的可能。
6testNotCompletedThisOperationCycle当前点火周期内,是否完成过故障检测。
 0:当前点火周期内,完成过故障检测;
 1:当前点火周期内,未完成过故障检测;
7warningIndicatorRequested是否请求点亮警告灯:
 0:不请求激活警告指示;
 1 :请求激活警告指示;
如果该DTC不支持警告指示,则这个位永远置0。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值