简单介绍下,19服务的作用,主要读取ECU上的故障状态信息,例如出现系统故障或者Bus-off故障,当故障发生的时候可以保留当前里程、电压、时间、速度等数据,用于定位分析问题。本文列举在工作中常用的19子服务,源于《ISO14229》。
为方便理解,假设ECU上只监控了两个DTC
动力系统故障 欠压:0x000001
动力系统故障 过压:0x000002
DTC状态掩码说明
19 + 子服务 + MASK:Mask一个字节表示DTC Status ,通过对bit置位,查询DTC状态。
19 01

作用:用于查看发生故障的数量。
这样说可能不太好理解,举例说明下:
测试仪 190101 :后面的MASK表示要过滤掉想要DTC状态,01想要查看当前的故障。
ECU 正向应 5901xx010001:
xx表示ECU支持哪些DTC状态掩码,这个在CDD以及Autosar工具链进行配置,可以是09、2F、7F。
01表示DTC协议格式。 0001表示只有1个当前故障,如果想知道具体是哪个故障,就需要用到1902服务了
19 02

190201:查询发生当前故障有哪些DTC。
5902xx0000010B:DTC 0x000001状态是0x0B bit0被置位,表示当前ECU欠压状态。
19 0A

190A:查询所有DTC状态。 590Axx0000010B0000020A:0x000001 DTC处于当前故障,0x000002 DTC表示出现历史故障,之前出现故障又恢复了。
19 04

用查询DTC的快照数据,快照数据可以是里程、时间和速度等,快照数据一般是两组及以上,什么意思呢,比如在时间点1发生故障,记录快照数据1,当发生第二次故障时候记录快照数据2,当发生第三次故障时候,假如只有存储两组快照数据,那么第二组快照数据会被覆盖,保留最近一次快照数据。 190400000101:查询DTC 0x000001 快照记录号1数据。 59040000010B0102F001250421F0020064:01表示快照记录号,02表示两个两个DID数据,0xF001 时间20250421,0xF002 速度100km/h。 如果想看全组的快照数据:
1904000001FF 59040000010B0102F001250421F00200640202F001250421F0020065
19 06
1906用与查看DTC相关计数器,比如老化计数器和故障发生次数等。 假设一个需求,扩展记录号0x01:记录已经老化计数器次数,扩展记录号0x02:故障发生次数。 190600000102:查询DTC0x000001 故障发生次数。 59060000010205:发生了5次故障。
190600000201:查询DTC0x000002 已经老化计数器次数。 1906000002FF:查询DTC0x000002所有计数器。