汽车诊断之UDS入门-0x19 0x06服务
0x19 0x06解析
0x19 0x06 通过client定义的DTC mask和DTCExtendedData record number获取DTC扩展记录数据
Subfunction=06 reportDTCExtDataRecordByDTCNumber
ECU应检索其支持且与client定义的DTCMaskRecord匹配的DTC(包含DTC number(高,中,低 byte)),client请求中的DTCExtDataRecordNumber参数应定义某个DTC的某条DTCExtendedData记录。
除了DTC number和StatusOfDTC以外,ECU还应返回1条单独预定义的DTCExtendedData记录响应client的请求(DTCExtDataRecordNumber不等于0xFE或0xFF)
整车厂应定义DTCExtDataRecord的格式和内容。DTCExtDataRecord报告的数据结构由DTCExtDataRecordNumber定义,定义方式与record DataIdentifier中数据的定义类似。响应中可能包含多个DTCExtDataRecordNumber及相关的DTCExtDataRecord。单个或多个DTCExtDataRecordNumber允许存储1个DTC不同类型的DTCExtDataRecords。
ECU应在单个响应消息中报告1个DTCExtendedData记录,除非DTCExtDataRecordNumber已经被设置为0xFE或0xFF,这将造成ECU在1个单独的响应消息中包含与client请求的DTCMaskRecord相关的所有存储的DTCExtendedData记录。
如果client定义的DTCMaskRecord或者DTCExtDataRecordNumber参数无效或者ECU不支持,ECU应给出负响应。该情形包含如果client发送的DTCExtDataRecordNumber参数是0xFE,但是没有ECU支持的OBD扩展数据记录(0x90-0xEF)。这区别于client定义的DTCMaskRecord或者DTCExtDataRecordNumber参数有效且ECU支持,但是没有与之相关的DTC扩展数据(例如扩展数据内存溢出)。ECU应给出仅包含DTCAndStatusRecord(echo of 请求的DTC number(high,middle,low byte)加上statusodDTC)正响应。
client成功发出 ClearDiagnosticInformation 请求后,应清除 DTCExtendedData 信息。 整车厂需要定义清楚删除已存储 DTC 和 DTCExtended数据的规则以防内存溢出。
DTCMaskRecord
3字节的参数包含DTCHighByte, DTCMiddleByte 和 DTCLowByte,代表ECU支持的某个DTC独有的ID值。
该参数支持ECU从下方多种解码方式中选取1种:
— ISO 15031-6[17] specification. 该格式由 DTCFormatIdentifier = SAE_J2012-DA_DTCFormat_00定义
— 文档没有定义任何解码方式 ,支持整车厂自定义解码方式。该格式由 DTCFormatIdentifier = ISO_14229-1_DTCFormat定义。
— SAE J1939-73[24] specification. 该格式由 DTCFormatIdentifier = SAE_J1939-73_DTCFormat定义,
— ISO 11992-4[9] specification. 该格式由 DTCFormatIdentifier = ISO_11992-4_DTCFormat定义
— ISO 27145-2[21] specification. 该格式由 DTCFormatIdentifier = SAE_J2012-DA_VOBD_DTCFormat定义.
DTCMaskRecord 应包含单 DTC值. 禁止使用DTC组。
DTCExtDataRecordNumber(client request)
SubFunction=reportDTCExtDataRecordByDTCNumber 或 reportDTCExtDataRecordByRecordNumber .
DTCExtDataRecordNumber有1个字节,表示client定义的DTCMaskRecord对应的DTCExtendedData record数量。
该参数也被用于reportDTCExtendedDataRecordIdentification 来定义哪个DTC支持特定的DTCExtendedDataRecordNumber.
DTCAndStatusRecord
该参数包含满足ISO_14229-1_DTCFormat, SAE_J2012-DA_DTCFormat_00, SAE_J1939-73_DTCFormat, SAE_J2012-DA_DTCFormat_04 或ISO_11992-4_DTCFormat格式的1组或多组DTCHighByte, DTCMiddleByte, DTCLowByte and statusOfDTC。如果满足SAE_J1939-73_DTCFormat,支持SPN (Suspect Parameter Number), FMI (Failure Mode Identifier), and OC (Occurrence Counter)参数,上述参数在SAE J1939有定义。
DTCHighByte, DTCMiddleByte 和 DTCLowByte代表了ECU支持的某个DTC的独有的ID。
DTCExtDataRecordNumber(ECU response)
要么与client请求中定义的相同,要么是存储的DTCExtendedData record实际的TCExtDataRecordNumber。
DTCExtDataRecord
ECU定义的与某个DTC相关的包含扩展状态信息的一组信息。DTCExtendedData包含在请求时已被定义的DTC参数值。
请求格式
0x19 0x06举例
假设
1.ECU支持存储某个给定DTC相关的2个DTCExtendedData records;
2.请求所有DTC 0x123456相关的ECU存储的有效DTCExtendedData records;
3.DTC 0x123456 status 是0x24且下方DTC相关的扩展数据有效;
4.通过 DTCExtDataRecordNumbers 0x05 and 0x10 查询DTCExtendedData。
下方DTCExtDataRecordNumber=0xFF,意为报告所有的DTCExtDataRecords,ECU返回2个已存储的与client请求的DTC相关的DTCExtDataRecords。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)