诊断协议那些事儿
诊断协议那些事儿专栏系列文章,19服务作为UDS中子功能最多的服务,一共有28种子功能,本文将介绍常用的19 04服务:读取快照信息。
关联文章:
19服务List
19 01-通过状态掩码读取DTC数目
$19服务:DTCStatusMask和statusofDTC bit 定义
UDS服务列表
85服务-ControlDTCSetting
14服务-ClearDiagnosticlnformation
文章目录
- 诊断协议那些事儿
- 一、reportDTCSnapshotRecordByDTCNumber-19 04
- 二、请求格式
- 三、肯定响应格式
- 四、否定响应格式
- 1.支持的否定响应码
- 五、消息流示例
- 总结
一、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;④服务器无法识别MemorySelection | ROOR |
五、消息流示例
注:DID和对应的快照记录由客户定义!
总结
以上就是今天要讲的内容,欢迎各位评论,提出宝贵意见,小编也会持续更新,以提供更好的作品。