UDS 诊断服务系列文章目录
诊断和通信管理功能单元
UDS 诊断 - DiagnosticSessionControl(诊断会话控制)(0x10)服务
UDS 诊断 - ECUReset(ECU重置)(0x11)服务
UDS 诊断 - SecurityAccess(安全访问)(0x27)服务
UDS 诊断 - CommunicationControl(通信控制)(0x28)服务
UDS 诊断 - TesterPresent(测试仪保活)(0x3E)服务
UDS 诊断 - AccessTimingParameter(访问计时参数)(0x83)服务
UDS 诊断 - SecuredDataTransmission(受保护的数据传输)(0x84)服务
UDS 诊断 - ControlDTCSetting(控制DTC设置)(0x85)服务
UDS 诊断 - ResponseOnEvent(基于事件响应)(0x86)服务
UDS 诊断 - LinkControl(链路控制)(0x87)服务
数据传输功能单元
UDS 诊断 - ReadDataByIdentifier(按标识符读取数据)(0x22)服务
UDS 诊断 - ReadMemoryByAddress(按地址读取内存)(0x23)服务
UDS 诊断 - ReadScalingDataByIdentifier(按标识符读取换算数据)(0x24)服务
UDS 诊断 - ReadDataByPeriodicIdentifier(按周期性标识符读取数据)(0x2A)服务
UDS 诊断 - DynamicallyDefineDataIdentifier(动态定义数据标识符)(0x2C)服务
UDS 诊断 - WriteDataByIdentifier(按标识符写数据)(0x2E)服务
文章目录
一、服务说明
0x2E 服务允许客户端向服务器中给定数据标识符指定的内部位置写入信息。
客户端使用 0x2E 服务向服务器写入一个 dataRecord(数据记录)。该数据由一个 DID 标识,且可能受保护也可能不受保护。
本服务中不得使用动态定义的 DID。在执行本服务时,车辆制造商须确保满足服务器条件。
本服务的可能用途用:
- 将配置信息编入服务器中(如 VIN),
- 清除非易失性存储器,
- 重置所得值,
- 设置选项内容。
注 服务器肯呢个限制或禁止特定 DID 值(如系统供应商 / 车辆制造商针对只读标识符所确定的值)的写入权限。
二、请求消息
1. 请求消息定义
字节 | 参数名称 | 字节值 |
---|---|---|
#1 | WriteDataByIdentifier(按标识符写数据)请求SID | 0x2E |
#2 #3 | dataIdentifier[] = [
byte#2 ] | 0x00 - 0xFF 0x00 - 0xFF |
#4 . . #m+3 | dataRecord[] = [
. . data#m ] | 0x00 - 0xFF . . 0x00 - 0xFF |
2. 请求消息数据参数定义
定义 |
---|
dataIdentifier(数据标识符) 本参数确定了客户端请求写入的服务器数据记录。 |
dataRecord(数据记录) 本参数提供了与客户端请求写入的 DID 相关的数据记录。 |
三、肯定响应消息
1. 肯定响应消息定义
字节 | 参数名称 | 字节值 |
---|---|---|
#1 | WriteDataByIdentifier(按标识符写数据)响应SID | 0x6E |
#2 #3 | dataIdentifier[] = [
byte#2 ] | 0x00 - 0xFF 0x00 - 0xFF |
2. 肯定响应消息数据参数定义
定义 |
---|
dataIdentifier(数据标识符) 此参数是请求消息中数据参数 dataIdentifier 的回显。 |
四、支持的NRC
NRC | 说明 |
---|---|
0x13 | 消息长度不正确或格式无效 |
0x22 | 条件不正确 若因不满足服务器的运行条件而无法执行所需的操作,则应发送此 NRC。 |
0x31 | 请求超过限值 以下情况下,应发送此 NRC: — 请求消息中的所有 DID 在服务中不受支持或 DID 针对只读目的(通过 0x22 服务)受支持。 — 在 DID 后的请求消息中传输的任何数据是无效的。 |
0x33 | 安全访问被拒绝 若引用了一个指定地址的 DID 是受保护的,并且服务器不处于解锁状态,则应发送此 NRC。 |
0x72 | 一般编程故障 若在写入一个存储单元时服务器检测到错误,则应发送此 NRC。 |
下图为 0x2E 服务 NRC 的处理。
图例
1. 最小程度为 4 字节(SI + DID + DEEC)
2. 总长度为 1 字节(SI + 2 字节 DID + 第 n 个字节 DREC)
五、示例
1. 假设
本条规定了执行 0x2E 服务示例所需满足的条件。
本示例中的服务不受服务器任何限制条件的限制。本示例展示了通过一个两字节 DID 0xF190 进行 VIN 编程的过程。
2. 示例 1:写 DID 0xF190(VIN)
req 2E F1 90
57 30 4C 30 30 30 30 34 33 4D 42 35 34 31 33 32 36
-(dataRecor[ data#1 - data#17] = VIN digit = "W 0 L 0 0 0 0 4 3 M B 5 4 1 3 2 6)
resp 6E F1 90
标签:UDS,服务,DID,诊断,NRC,标识符,WriteDataByIdentifier,0x2E
From: https://blog.csdn.net/weixin_45033239/article/details/141600732