UDS诊断(ISO14229-1) 2E服务
2E服务,即 WriteDataByIdentifier(按标识符写数据)服务,该服务允许客户端向服务器中给定数据标识符指定的内部位置写入信息。
功能简介
2E服务,即 WriteDataByIdentifier
(按标识符写数据)服务,该服务允许客户端向服务器中给定数据标识符指定的内部位置写入信息。
客户端使用 WriteDataByIdentifier(按标识符写数据)服务向服务器写入一个 dataRecord(数据记录)。
该数据由一个 dataIdentifier(数据标识符)标识,且可能受保护也可能不受保护。
应用场景
常见场景:
- 在整车下线的过程中写入相关配置信息,如常见的VIN码;
- 清除NVM;
- 重置已写入到Flash中的数据;
- 其他需要写入内部相关参数的场合;
请求和响应
1、请求
基本格式
归纳起来,诊断的request格式无非以下两种:
<SID> + <Sub-function> + <Parameter>
<SID> + <Parameter>
即有无sub-function的区别。Parameter可以是DID,可以是输入参数,可以是自定义的值,字节数视具体要求而定。
2、子功能
子功能参数定义(1字节数据):
- Bit7:抑制肯定响应消息指示位suppressPosRspMsgIndicationBit
- 0=False:需要肯定响应
- 1=True:禁止肯定响应
- Bit6-0:子功能参数值(0x00~0x7F)
无。
3、肯定响应
基本格式:
<SID + 0x40> + <Sub-function> + <Parameter>
<SID + 0x40> + <Parameter>
要注意,第一个字节是由SID和0x40的和构成。这里的Parameter项是optional的,具体要看协议规定。
4、否定响应
基本格式:
<0x7F> + <SID> + <NRC>
看起来比较简单,格式比较固定,只要是Negative Response,第一字节就是0x7F,第二字节照抄原来的SID,第三个字节是错误响应码,指示具体错误响应的原因
5、NRC优先级
在ISO14229-1中未明确定义NRC优先级,可以参考下方优先级顺序:
0x11 > 0x7F > 0x13 > 0x12 > 0x7E > 0x33 > 0x24 > 0x31 > 0x22 > 0x78
2E NRC 判断优先级顺序
报文示例
- 示例 1:写 dataIdentifier(数据标识符) 0xF190(VIN)
UDS中常用 NRC
参考
- https://zhuanlan.zhihu.com/p/536089707
更多推荐
所有评论(0)