名不显时心不朽,再挑灯火看文章
话不多说,直接上干货!19服务用于读取ECU的DTC故障信息,除了DTC本身之外,项目中最常用的功能就是快照信息和扩展数据。本文介绍最常用的02、04、06、0A子服务。
按故障掩码报告DTC——02子服务
获取与诊断工具定义的DTC状态掩码匹配的所有DTC列表和状态信息。
请求格式
DTCStatusMask:DTC状态掩码。
响应格式
DTCStatusAvailabilityMask:ECU支持的状态掩码。
DTCAndStatusRecord:DTC故障码 + 状态位。
读取快照信息——04子服务
从ISO 14229-1协议可知,快照数据为发生某一故障时记录的DTC的时间戳、电压、发动机转速等。使用04子服务可以获取DTC发生时记录的快照数据。
请求格式
DTCMaskRecord:即故障码(DTC)。
DTCSnapshotRecordNumber:快照记录编号,每个故障码(DTC)都可以支持多个快照记录编号,除了0xFF之外每个记录编号指向不同的数据,当快照记录编号是0xFF时,需要响应所有快照信息。
响应格式
DTCSnapshotRecordNumber:每组快照记录信息都包含一个字节的快照记录编号,该编号和请求保持一致;
DTCSnapshotRecordNumberOfIdentifiers:每个快照记录编号都包含多个快照记录ID,这里用一个字节表示该快照记录编号即该组快照记录信息所包含的快照记录ID数量;
DTCSnapshotRecord:整体就是快照记录ID+快照记录数据;
读取扩展数据——06子服务
扩展数据是在故障发生时其他的辅助故障信息,DTC故障发生次数、老化次数、故障持续时间、故障后行驶里程等,使用06服务获取DTC扩展数据。
请求格式
DTCExtendDataRecordNumber:扩展数据编号。
响应格式
DTCExtendDataRecordNumber:扩展数据编号。
DTCExtendDataRecord:扩展数据记录,每组扩展数据信息都包含至少一个字节的扩展数据,可以自定义数据格式;
获取支持的所有DTC-0A子服务
使用0A子服务可以获取ECU支持的所有DTC列表和状态信息。
请求格式
响应格式
DTCStatusAvailabilityMask:ECU支持的状态位。
读取DTC方式
在读取DTC之前,使用14服务发送报文14 FF FF FF清除所有类型DTC,再按照上述请求读取DTC格式发送请求报文即可。