前言
简称: “ReadDataByIdentifier”,按标识符读取数据 功能: 用户通过请求该服务,读取指定dataIdentifler(数据标识符DID)所记录的数据值。
一、理论描述
客户端请求消息的dataIdentifler(数据标识符DID)大小为2字节,例如:VIN码(0xF190,通常该数值用于表示车辆唯一标识的数据标识符)。一般常用标识符如下(具体根据整车厂的诊断需求文档来定): 1,版本信息相关 软件版本号(数据内容包含如:软件版本,时间,修订次数等信息) 硬件版本号(PCB板上版本信息,一般是在软件中通过0x2E服务写入NVM中的。) FBL版本号(即Flash Bootloader的版本,FBL是更新软件的一种方式。它是存储在芯片中指定一段位置,是一段程序,通过诊断来引导更新程序)
2,内部数据相关 车辆总里程,ECU供电电压,车辆VIN码(每辆车都有它唯一标识符,即VIN码)等。
3,诊断相关 当前诊断会话(和诊断相关的,通过读取该DID信息,ECU返回当前诊断处于哪个会话模式) DTC快照数据(见0x19章节) IO Control标识符(是0x2F服务,举例:通过该服务控制远光灯打开,也需要DID用来标识下该功能。服务详情见后续。) Routine Control标识符(是0x31例行控制服务,例如在通过诊断FBL更新程序之前,需要检查下更新环境是否满足,如:车速是否低于3km/h,电源电压是否满足刷写要求等。)
二、使用步骤
1.请求
第一个字节就是SID,后边的两个字节 用于标识将要读取的DID。下图红色框内即是请求读取DID为0xF195的一帧报文
2.响应
1)正响应 这个相对比较简单,参见上图蓝色框。 Response ID: 62 DataIdentifier:F1 95 Data:27 10 15 09 03 00
2)否定响应 支持的否定响应如下,一般工作上根据整车厂给的诊断输入文档来选择要支持的NRC码。
总结
0x22服务相比之下,较简单。就是读取指定数据标识符DID所记录的数据值。,下一章0x2E写DID服务见!
|