1 0x2E功能描述
根据ISO14119-1标准中所述,诊断服务2E主要用于Client向Server(ECU)通过DID的方式写入相关的数据。
2 0x2E应用场景
一般而言,对于2E诊断服务,主要应用场景为以下场合:
在整车下线的过程中写入相关配置信息,如常见的VIN码;清除NVM;重置已写入到Flash中的数据;其他需要写入内部相关参数的场合;
上述这些应用场景较为常见,除此以外,当然还有很多面向ECU内部测试的应用场合,这里就不一一列举。
3 0x2E服务请求
服务请求是Client发送给到Server的诊断服务指令。其中Client可以理解为Tester,Server可以理解为ECU节点。
3.1 请求格式
按照ISO14229-1标准所述,如下图1所示:
各参数解释如下:
4 0x2E请求和响应
以写入DID F1 90 (VIN码)为例,其对应的诊断请求实例如下图所示:
正响应实例,上述DID(F1 90)请求示例所对应的正响应:
4.1 正响应格式
2E诊断服务的正响应格式:
从上图中可以看出,2E诊断服务的正响应由以下两个部分组成:
Response ID:该参数固定为SID+0x40 = 0x6E;DID:该参数表示某个数据的标识符,回复的DID应与诊断请求的DID保持一致;
4.2 负响应NRC
于2E服务而言支持的NRC如下图所示:
- 例如当尝试写入F190的DID值且当前车速条件不满足,此时Client发送诊断指令"2E F1 90"请求Server读取数据,Server将会回复“7F 2E 22”来告诉请求者当前读取数据的条件不满足,请再次检查读取该DID的条件。
- 当发送报文长度或者格式不对时,则Server会回复"7F 2E 13";
- 当诊断请求DID不存在或者在当前Session中不支持时,则Server就会回复“7F 2E 31”;
- 当Server在发生复位前处于security lock状态,那么此时Server则会回复"7F 2E 33";
- 当2E服务写入的内存地址错误时,那么此时Server则会回复"7F 2E 72 ";