UDS 19 服务学习笔记《ISO 14229 -1-2013》

UDS 19 服务学习笔记《ISO 14229 -1-2013》

第一章 non-OBD DTC status 开发逻辑

前言:开发依据为软件需求,以下笔记为常规用法,如有需求,以需求为准。

1 Bit 0-7 置位逻辑

1.1 Bit 0 testFailed(测试失败)

该bit表示DTC最近一次的检测结果,置1即表示最近的测试中该DTC测试失败,置0即表示DTC测试未开始或一直测试通过:
该故障未发生,通过——置0;
该故障发生,不通过——置1;
14服务清除——置0;
操作循环开始——置0。

1.2 Bit 1 testFailedThisOperationCycle(当前操作循环测试失败)

该bit表示DTC在当前操作循环是否测试失败过,置1即表示当前操作循环DTC测试失败过,置0即表示当前操作循环DTC测试未开始或一直测试通过:
当前循环testFailed首次从0→1——置1,当前循环不再更改;
14服务清除——置0;
操作循环开始——置0。

1.3 Bit 2 pendingDTC(未确认DTC)

该bit表示DTC在当前操作循环和上一测试循环是否测试失败过,置1即表示当前操作循环和上一测试循环该DTC测试失败过至少1次,置0即表示当前操作循环和上一测试循环DTC测试未开始或一直测试通过:
当前循环testFailed首次从0→1——置1,当前循环和下一循环不再更改;
14服务清除——置0;
当前操作循环结束后,DTC测试至少完成1次且测试通过——置0,其具体判断逻辑为((currentOperationCycle == stop) AND
(testNotCompletedThisOperationCycle == 0) AND
(testFailedThisOperationCycle == 0))。

Note1:前2条置位逻辑与testFailedThisOperationCycle的前2条逻辑一样;
Note2:第3条逻辑可在当前操作循环结束时执行,也可在下一操作循环开始时执行。
1.4 Bit 3 confirmedDTC(已确认DTC)

该bit表示DTC在14服务清除后或老化清除后是否测试失败过,置1即表示14服务清除后或老化清除后该DTC测试失败过至少1次,置0即表示14服务清除后或老化清除后DTC测试未开始或一直测试通过:
testFailed连续N个循环测试失败,N可自定义,通常为1——置1,除非满足置0条件否则不再更改;
14服务清除——置0;
老化条件满足(e.g.连续40个操作循环测试通过)——置0;
DTC存储溢出时被新DTC覆盖——置0(待补充)。

1.5 Bit 4 testNotCompletedSinceLastClear(自上次清除后测试未完成)

该bit表示DTC在14服务清除后(或老化清除后,老化清除可根据需求选择是否作为清除的一种)是否测试完成过:
14服务清除 ——置1;
老化条件满足(可选)——置1;
代码初始化 ——置1;
testFailed从0→1或操作循环内从1→0——置0,除非清除否则不再更改。

1.6 Bit 5 testFailedSinceLastClear(自上次清除后测试失败)

该bit表示DTC在14服务清除后(或老化清除后,老化清除可根据需求选择是否作为清除的一种)是否测试完成且失败过:
14服务清除 ——置0;
老化条件满足(可选)——置0;
代码初始化 ——置0;
testFailed首次从0→1——置1,除非清除否则不再更改。

1.7 Bit 6 testNotCompletedThisOperationCycle(当前操作循环测试未完成)

该bit表示DTC在14服务清除后(或老化清除后,老化清除可根据需求选择是否作为清除的一种)是否测试完成且失败过:
14服务清除 ——置1;
操作循环开始——置1;
当前循环testFailed从0→1或从1→0——置0,当前循环不再更改。

1.8 Bit 7 warningIndicatorRequested(警告指示)

该bit表示DTC处于警告指示状态,一般伴随着警告指示灯或文字等输出:
14服务清除(可选) ——置0;
自主制定(e.g.某DTC testFailed从0→1)——置1;
自主制定(e.g.某DTC testFailed从1→0且满足3个连续操作循环 testFailed一直为0)——置0;

2 Bit 0-7 操作循环

操作循环定义:(个人项目理解,欢迎指正)ECU唤醒方式通常为硬线(KL15)唤醒和网络唤醒,一般ECU若支持网络唤醒,则接收的总线报文应该有一条显示当前电源状态(e.g.power on / power off / power start,具体含义各有不同,下文以power on 为上电唯一状态),此为前提。
1个操作循环一般指KL15唤醒或网络唤醒 +power on→off 区间,即唤醒条件和电源状态需要同时满足。操作循环开始即为唤醒+power on同时满足,操作循环结束即为休眠或非power on。当总线相关节点丢失即获取不到电源状态时,但处于唤醒状态时,可使用电源上一状态,也可使用默认值,也可能是无视电源状态,此需求一般由主机厂确定。当然也可能不考虑总线上的电源状态,唤醒→休眠即为1个操作循环。

3 Bit 0-7 置位与操作循环的组合

以某节点丢失DTC举例,假设其故障发生的条件是:ECU唤醒后power为ON的情况下3s后,电压非过压、非欠压,总线无BUSOFF时,ECU持续1s未接收到该节点报文;故障恢复的条件是:正常周期连续收到该报文5次。故障发生后,警告指示灯亮,连续3个操作循环无故障后熄灭。附:老化清除不作为testNotCompletedSinceLastClear和testFailedSinceLastClear中的清除条件。

步骤 Status
第1个操作循环
唤醒 && power非ON 3s内 0x50
唤醒 && power非ON (3+ΔT)s后(ΔT≥该DTC的1个检测周期) 0x50
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),节点丢失故障未发生:0x00;
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),制造节点丢失故障 :0xAF;
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),恢复节点丢失故障 :0xAE;
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),再次制造节点丢失故障 :0xAF;
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),恢复节点丢失故障 :0xAE;
制造过压、欠压、BUSOFF或power非ON条件,并制造节点丢失故障 : 0xAE;
制造过压、欠压、BUSOFF或power非ON条件,发送14清除 0x50;
第2个操作循环
唤醒 && power非ON 3s内 0xEC
唤醒 && power非ON (3+ΔT)s后(ΔT≥该DTC的1个检测周期) 0xEC
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),节点丢失故障未发生:0xAC
第3个操作循环
唤醒 && power非ON 3s内 0xE8
唤醒 && power非ON (3+ΔT)s后(ΔT≥该DTC的1个检测周期) 0xE8
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),节点丢失故障未发生:0xA8
第4个操作循环
唤醒 && power非ON 3s内 0xE8
唤醒 && power非ON (3+ΔT)s后(ΔT≥该DTC的1个检测周期) 0xE8
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),节点丢失故障未发生:0xA8
第5个操作循环
唤醒 && power非ON 3s内 0x68
唤醒 && power非ON (3+ΔT)s后(ΔT≥该DTC的1个检测周期) 0x68
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),节点丢失故障未发生:0x28
第41个操作循环
唤醒 && power非ON 3s内 0x60
唤醒 && power非ON (3+ΔT)s后(ΔT≥该DTC的1个检测周期) 0x60
唤醒 && power ON && 上电(3+ΔT)s后(ΔT≥该DTC的1个检测周期),节点丢失故障未发生:0x20

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值