UDS 2E服务


文章目录

  • UDS 2E服务
  • 1. 服务请求报文定义
  • 2. 肯定响应
  • 3. 否定响应
  • 4. 否定响应优先级
  • 5. 示例
  • 常见DID
  • 总结
  • 《AUTOSAR谱系分解(ETAS工具链)》之总目录



这个服务的目的就是写DID。那么什么是DID?DID通俗的来讲,其实就是某一存储在非易失性存储器(Non-volatile memory,NVM)里,表示汽车或者软件的一些标识的ID,最为大家熟知的比如汽车的VIN码,还有软件发布日期等等。

1. 服务请求报文定义

2E服务的请求报文格式和22服务的响应报文格式是一样的,第一个字节是请求的SID 2E,接下来两个字节是DID,剩下的就是要写入到ECU的数据了,长度根据实际定义的数据而定。这里需要注意的是,2E服务一次只能写入一个DID的数据。

udl连接access怎么连_优先级

注:

服务请求报文可以请求一个;

本服务不支持Sub-function;

2E服务的请求报文格式和22服务的响应报文格式是一样的,第一个字节是请求的SID 2E,接下来两个字节是DID,剩下的就是要写入到ECU的数据了,长度根据实际定义的数据而定。这里需要注意的是,2E服务一次只能写入一个DID的数据。

2. 肯定响应

0x22服务肯定响应报文格式:

udl连接access怎么连_udl连接access怎么连_02

2E诊断服务的肯定响应由以下两个部分组成,只有一个字节的服务响应ID和两个字节的DID数据:

Response ID:该参数固定为SID+0x40 = 0x62;

DID:该参数表示某个数据的标识符,图中表示可以存在多个DID,具体DID的数目应与诊断请求的DID保持一致。

3. 否定响应

udl连接access怎么连_优先级_03

NRC 31:第一处NRC31检查的是请求的DID是否支持,第二处NRC31检查的是DID后面请求写入的数据格式、范围等是否符合定义;
NRC 34:如果ECU支持29服务的认证,且被请求的DID需要认证后才能写入,那么需要检查请求之前是否已经通过认证;
NRC 33:如果ECU支持27服务的校验,且被请求的DID需要校验后才能写入,那么需要检查请求之前是否已经通过校验;
NRC 22:如果被请求的DID需要满足特定条件才能写入,那么需要检查当前是否满足读取的条件;
NRC 72:这是一个通用型错误,当写入非易失存储器的时候出现问题,那么需要返回此NRC;
NRC 13:如果请求的DID数据格式或长度不正确,ECU无法处理这个数据,那么给这个否定响应码。

4. 否定响应优先级

当诊断请求存在多种条件不满足的情况下,那么哪个NRC应当回复呢?毫无疑问此时就需要引入NRC优先级的概念,以下就是诊断服务2E的NRC优先级:

udl连接access怎么连_汽车_04

5. 示例

1)写入F199

udl连接access怎么连_数据_05

常见DID

DID Number(Hex)

含义

0100-A5FF,A800-ACFF,B000-B1FF,C000-C2FF,CF00-EFFF,F010-F0FF

主机厂推荐使用DID范围

F186

当前激活的Session

F18C

ECU序列号

F190

VIN 码

F193

供应商硬件版本号

F195

供应商软件版本号

F19D

ECU安装日期

F0D0-FEFF

供应商推荐使用DID范围

总结

在上述2E服务中,还涉及到Flash的读写擦除操作,有一些还有一定的Security等级要求。

《AUTOSAR谱系分解(ETAS工具链)》之总目录

《AUTOSAR谱系分解(ETAS工具链)》之总目录