19 04-读取DTC快照信息

Posted 诊断协议那些事儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19 04-读取DTC快照信息相关的知识,希望对你有一定的参考价值。

诊断协议那些事儿

诊断协议那些事儿专栏系列文章,19服务作为UDS中子功能最多的服务,一共有28种子功能,本文将介绍常用的19 04服务:读取快照信息。

关联文章:
19服务List
19 01-通过状态掩码读取DTC数目
$19服务:DTCStatusMask和statusofDTC bit 定义
UDS服务列表
85服务-ControlDTCSetting
14服务-ClearDiagnosticlnformation


文章目录


一、reportDTCSnapshotRecordByDTCNumber-19 04

为了方便找到故障的原因,车厂一般会在诊断调查表中定义一些信息作为快照信息,例如故障发生时间、电压、行驶里程数、车速等。在对应故障发生时,ECU端要记录发生故障时的快照信息,客户端可以通过此服务检索客户端定义的DTCMaskRecord的捕获DTC Snapshot记录号以及DTCSnapshot记录数据。通过查找故障发生时刻的这些数据,来分析故障原因。

服务器应在其支持的DTC中搜索与客户端指定的DTCMaskRecord的精确匹配(包含DTC编号(高、中、低字节))。客户端请求中提供的DTCSnapshotRecordNumber参数应指定一个为其请求DTCSnapshot记录数据的指定DTC的特定出现。

注1∶DTCSnapshotRecordNumber与DTCStoredDataRecordNumber不共享相同的地址空间。
注2∶确切的failure criteria应由系统供应商/车辆制造商定义。

二、请求格式


DTCMaskRecord:表示要请求快照信息的DTC

DTCSnapshotRecordNumber:DTC快照记录码,表示要请求第几个快照信息。
取值范围:0x01~0xFE,0x00被标准保留,0xFF表示请求所有组。例如当我们需要记录某个DTC第一次发生(假设用1表示)和最近一次发生的快照数据时(假设用2表示);那么当DTCSnapshotRecordNumber为1时,则表示请求该DTC第一次发生时的快照信息。

三、肯定响应格式

服务器应在单个响应消息中报告一个DTCSnapshot记录,除非客户端已将DTCSnapshotRecordNumber设置为0xFF, 因为这将导致服务器在单个响应消息中使用为客户端定义的DTCMaskRecord存储的所有DTCSnapshot 记录进行响应。DTCAndStatusRecord在响应消息中只包含一次。如果客户端在其请求中对参数DTCSnapshotRecordNumber使用了0xFF,则服务器应以数字升序报告为特定DTC捕获的所有DTCSnapshot记录。


注:当诊断仪请求的DTC或快照数据编号服务端ECU不支持时,返回NRC 0x31;
当DTC和快照记录编号均支持时,服务端ECU当前没有存储这个DTC的快照信息(此DTC未成熟),则服务端应返回肯定响应,并且响应只包含59 04+DTC+DTC状态,不包含快照记录信息。

四、否定响应格式

1.支持的否定响应码

NRC描述助记符
0x12子功能参数不受支持SFNS
0x13请求报文的数据长度(或者格式)不符合标准IMLOIF
0x31①客户端规定了一个不被服务器识别的DTCMaskRecord;②客户端规定了一个无效DTCSnapshotRecordNumber/DTCExtDataRecordNumber;③客户端规定了一个不被服务器识别的FunctionalGroupIdentifier;④服务器无法识别MemorySelectionROOR

五、消息流示例



注:DID和对应的快照记录由客户定义!


总结

以上就是今天要讲的内容,欢迎各位评论,提出宝贵意见,小编也会持续更新,以提供更好的作品。

以上是关于19 04-读取DTC快照信息的主要内容,如果未能解决你的问题,请参考以下文章

19 0A-检索服务器支持的所有DTC的状态

19 01-通过状态掩码读取DTC数目

19服务List

$19服务:DTCStatusMask和statusofDTC bit 定义

19 02-检索满足客户端定义的状态掩码的DTC列表

读取/检查DTC封装函数,覆盖了很多测试场景,也许对你有所帮助