之前在看ISO 14427协议时,对DTC检测服务总是停留在理论部分,今天就以一个DTC为例子,记录DTC所经历全部测试过程:
DTC需求:
DTC : D5 62 17
名称:Battery Voltage High
作用:当电压高于规范值时,记录故障
触发条件:电压高于16V
消失条件:从高压恢复到<=15.5V
老化周期:40
1、测试DTC的触发和消失条件是否正确
1) 电压初始值14V,每0.5V/s速度调高电压值,周期性发送 19 02 01检测 当前DTC,观察消息日志是否可以检测到DTC D5 62 17
-----读取刚好检测到DTC D5 62 17 的电压值,是否符合需求
2)在检测到DTC时,以0.5v/s速度调低电压值,周期性发送 19 02 01检测 当前DTC,观察消息日志
---读取刚好无法检测到DTC时的电压值,是否符合需求
2、DTC是否可以老化
条件:当前DTC不能检测到 DTC D5 62 17,19 02 08 历史DTC存在 DTC D5 62 17
进行上下电,40个周期后,19 02 08 读取历史DTC
---40个周期后,该DTC不会出现在历史DTC中,老化成功
备注:
可以先进行上下电2个周期后,使用 19 06 D5 62 17 01读取DTC老化计数器,读出的第4个byte即为老化计数器数值,(老化的周期按照自己实际执行次数为准)
3、验证DTC snapshot
快照服务的作用,简单来说,就是为了方便诊断工程师在排查车载控制器出现故障时能及时了解车辆的实际情况。比如,我们可以设置Global快照信息,包含:车的车速信息,车的发动机的转速度,点火状态等信息。也可以设置Local快照信息,该控制器独有的信息,如:BMS控制器中对于动力电池的温度,动力电池电压,电流等。
我们还是以DTC D5 62 17 为例:
具体的快照定义依赖需求定义,一般就是不同的DID值代表不同的含义。比如读到0112的值是DTC触发时的电压值,E101值是DTC触发时的里程值,011B是DTC触发时的时间。
具体的诊断服务规范,请参考ISO 14429服务内容。