WriteDataByIdentifier就是通过标识符写入数据服务,这里的标识符(ID)指的是数据标识符,也就是我们经常说的DID。

目录

1.英文术语

2.缩写表

3.服务描述

4.请求消息定义

4.1.请求消息子功能定义

4.2.请求消息数据参数定义

5.肯定响应消息定义

5.1.肯定响应消息数据参数定义

6.否定响应消息定义

6.1.否定响应码

6.2.NRC评估序列

7.服务使用示例

7.1.示例#1-写入数据标识符0xF190(VIN码)

7.1.1.步骤1:请求通过标识符写入数据

7.1.2.操作汇总


通过标识符写入数据
服务 描述
WriteDataByIdentifier

客户端向服务端请求写入一个DID对应标识的数据记录值。

1.英文术语

英文术语 翻译
WriteDataByIdentifier 通过标识符写入数据

WriteDataByIdentifier Request SID

通过标识符写入数据请求SID

ISO14229定义此值为0x2E

WriteDataByIdentifier Response SID

通过标识符写入数据响应SID

ISO14229定义此值为(0x2E+0x40)

dataIdentifier 数据标识符,缩写为DID

2.缩写表

缩写 解释
SID 服务标识符
DID 数据标识符
Cvt

约定值

M 强制的

C 有条件的

U 用户选项

NRC

否定响应码

3.服务描述

通过标识符写入数据服务就是向对应的数据标识符写入数据记录值。

通过标识符写入数据服务重点知识:

  • 该服务请求中只能有一个DID;
  • 对于某些特定的DID,可以设置在某个安全等级下访问某个诊断会话模式下访问
  • 使用此服务写入数据时,可以设置某些前提条件(譬如:车速为0km/h);
  • 对于某些特定的DID,可以禁止写访问,所以这些DID不能使用此服务写入(譬如:动态定义的DID读写属性是只读);

通过标识符写入数据服务可能用途:

  • 将配置信息写入到服务器,如:VIN码;
  • 清除非易失性存储器;
  • 重置学习值;
  • 设置选项类型(对某些数据设置选项,以供选择运行)

4.请求消息定义

请求消息定义
A_Data字节 参数名称 Cvt 字节值 助记符
#1 通过标识符写入数据请求SID M 0x2E WDBI

#2

#3

DID[]= [

字节#1(MSB)

字节#2]

M

M

0x00-0xFF

0x00-0xFF

DID_

HB

LB

#4

#m+3

数据记录[]= [

字节#1(MSB)

字节#2]

M

U

0x00-0xFF

0x00-0xFF

DREC_

DATA_1

DATA_m

4.1.请求消息子功能定义

该服务不使用子功能参数。(肯定也没有抑制肯定响应位,因为没有子功能参数)

4.2.请求消息数据参数定义

请求消息数据参数定义
定义

DID

此参数标识服务端的数据记录值。譬如:某协议定义了DID = 0xF190,标识了服务端的VIN码。

简单说此参数就是一个标识。

注:有关DID参数定义,可查阅

数据记录

此参数是客户端向服务端请求写入的关联DID所标识的数据记录值,此数据记录值由车辆制造商定义

5.肯定响应消息定义

肯定响应消息定义
A_Data字节 参数名称 Cvt 字节值 助记符
#1 通过标识符写入数据响应SID M 0x6E WDBIPR

#2

#3

DID[]#1 = [

字节#1(MSB)

字节#2]

M

M

0x00-0xFF

0x00-0xFF

DID_

HB

LB

5.1.肯定响应消息数据参数定义

肯定响应消息数据参数定义
定义

DID

此参数标识服务端的数据记录值,是与上面的请求消息中的DID相同。譬如:某协议定义了DID = 0xF190,标识了服务端的VIN码。

6.否定响应消息定义

否定响应消息定义
A_Data字节 参数名称 Cvt 字节值 助记符
#1 否定响应SID M 0x7F SIDNR
#2 通过标识符写入数据请求SID M 0x2E SIDRQ
#3 否定响应码 M 0xXX NRC_

6.1.否定响应码

此服务支持的否定响应码
否定响应码 描述 助记符
0x13

消息长度错误或格式无效

如果消息的长度错误,则应发送此否定响应码。

IMLOIF
0x22

条件不正确

如果服务端不满足条件,就无法清除储存在服务端中的DTC相关信息,则应返回此NRC。

CNC
0x31

请求超出范围

以下情况下,应发送该NRC:

——设备不支持所请求的DID值;

——当前会话中不支持所请求的DID;

——该DID设置的读写属性是只读;

ROOR

0x33

安全访问被拒绝

如果请求写入的DID有一个需要进行安全访问,此时服务端若处于非解锁状态或非对应的解锁状态下,则应返回此NRC。

SAD
0x72

通用编程失败

如果服务端在写入存储器(根据地址写)时检测到错误,则应返回此NRC。

GPF

6.2.NRC评估序列

7.服务使用示例

7.1.示例#1-写入数据标识符0xF190(VIN码)

7.1.1.步骤1:请求通过标识符写入数据

譬如:在某个协议中定义,该数据标识符0xF190包含VIN码

通过标识符写入数据请求消息

消息方向

客户端→服务端

消息类型

请求

A_Data字节

描述(所以值为16进制)

字节值

助记符

#1

通过标识符写入数据请求SID

0x2E

WDBI

#2

#3

DID[]= [

字节#1(MSB)

字节#2]

0xF1

0x90

DID_B1

DID_B2

#4

#5

#6

#7

#8

#9

#10

#11

#12

#13

#14

#15

#16

#17

#18

#19

#20

数据记录[] = [

数据#1 = VIN数字1 ="W"

数据#2 = VIN数字2 ="O"

数据#3 = VIN数字3 ="L"

数据#4 = VIN数据4 ="O"

数据#5 = VIN数据5 ="O"

数据#6 = VIN数据6 ="O"

数据#7 = VIN数据7 ="O"

数据#8 = VIN数据8 ="4"

数据#9 = VIN数据9 ="3"

数据#10 = VIN数据10 ="M"

数据#11 = VIN数据11 ="B"

数据#12 = VIN数据12 ="5"

数据#13 = VIN数据13 ="4"

数据#14 = VIN数据14 ="1"

数据#15 = VIN数据15 ="3"

数据#16 = VIN数据16 ="2"

数据#17 = VIN数据17 ="6"]

0x57

0x30

0x4C

0x30

0x30

0x30

0x30

0x34

0x33

0x4D

0x42

0x35

0x34

0x31

0x33

0x32

0x36

DREC_DATA1

DREC_DATA2

DREC_DATA3

DREC_DATA4

DREC_DATA5

DREC_DATA6

DREC_DATA7

DREC_DATA8

DREC_DATA9

DREC_DATA10

DREC_DATA11

DREC_DATA12

DREC_DATA13

DREC_DATA14

DREC_DATA15

DREC_DATA16

DREC_DATA17

通过标识符写入数据响应消息

消息方向

服务端→客户端

消息类型

响应

A_Data字节

描述(所以值为16进制)

字节值

助记符

#1

通过标识符读取数据响应SID

0x6E

WDBIPR

#2

#3

DID[] = [

字节#1(MSB)

字节#2]

0xF1

0x90

DID_B1

DID_B2

7.1.2.操作汇总

步骤1:请求通过标识符读取数据

图解:

注:超过8字节数据使用首帧和连续帧进行拆解。

操作 CAN报文 实体
0 1 2 3 4 5 6 7
请求通过标识符写入数据(首帧) 0x10 0x14 0x2E 0xF1

0x90

0x57 0x30 0x4C 客户端
流控帧(服务端自动发出) 0x30 0x08 0x0A 服务端
请求通过标识符写入数据(连续帧) 0x21 0x30 0x30 0x30 0x30 0x34 0x33 0x4D 客户端
请求通过标识符写入数据(连续帧)

0x22

0x42 0x35 0x34 0x31 0x33 0x32 0x36 客户端
肯定响应 0x03 0x6E

0xF1

0x90 服务端

到这里我们的0x2E服务基本学完了。

以上解释有没有解决大家的疑惑,如果还是觉得有疑惑的地方,欢迎大家踊跃提出,一起分享,共同进步!!!

有CSDN号的也可以帮忙点个关注,我会陆续更新其它UDS服务

汽车UDS诊断之通过标识符写入数据服务(0x2E)深度剖析相关推荐

  1. 汽车UDS诊断之读取DTC信息服务(0x19)深度剖析

    ReadDTCInformation就是读取DTC信息服务,DTC即故障编码,简称故障码. 读取DTC信息 服务 描述 ReadDTCInformation 客户端向一个服务端或多个服务端请求驻留的D ...

  2. 汽车UDS诊断教程 ISO15765(六)

    ISO15765-2是什么?包含哪些内容?  接上一节了解具体数据链路层的使用     数据链路层接口服务 L_Data.request 该请求服务需要通过<Idetifier>标识,将& ...

  3. 汽车UDS诊断教程 ISO15765(十)

    地址结构 概述 目标地址及源地址都编码在 29 位 CAN 标识符中,并且每个长度为 11 位. 地址的定义 一个地址包含两个部分 a) 网络地址 网络地址部分包含第一个连续的位"X&quo ...

  4. 【车载开发系列】UDS诊断---读取周期标识符($0x2A)

    [车载开发系列]UDS诊断-读取周期标识符($0x2A) UDS诊断---读取周期标识符($0x2A) [车载开发系列]UDS诊断---读取周期标识符($0x2A) 一.概念定义 二.报文格式 1)请 ...

  5. 汽车UDS诊断详解及Vector相关工具链使用说明——2.2.6 周期读取DID数据(0x2A)

    1. 概述 周期读取数据服务可以命令ECU周期性返回某个数据. 该服务的DID都位于0xF200-0xF2FF范围内,所以该服务的请求报文中不包含DID完整的两字节,而是只包含低字节,省略了高字节0x ...

  6. 汽车UDS诊断详解及Vector相关工具链使用说明——2.3.1 故障码(DTC)格式详解

    1. 概述 存储数据传输功能单元其实就是读取故障码信息和清除故障码两个服务.我们本文先来看一下我们一直在说的故障码的格式是怎样的. 我们通常把诊断分成两种,我们之前一直在讲的UDS诊断属于增强型诊断, ...

  7. 汽车UDS诊断之诊断设备在线服务(0x3E)深度剖析

    TesterPresent就是诊断设备在线服务,它是最简单的一个诊断服务. 诊断设备在线 服务 描述 TesterPresent 客户端向某服务端请求来确认此服务端是否在线,客户端有没有跟服务端连接上 ...

  8. 汽车UDS诊断详解及Vector相关工具链使用说明——2.1.1 诊断和通讯管理功能单元概述

    从本章开始,会为大家详细讲解UDS中常用的诊断服务. 标准中把UDS所有诊断服务分为了以下几个部分: 诊断和通信管理功能单元 数据传输功能单元 传输储存的数据功能单元 输入输出控制功能单元 远程激活例 ...

  9. 汽车UDS诊断详解及Vector相关工具链使用说明——2.1.3 初步了解CDD(以10服务为例)

    我们前一篇文章详细讲了诊断会话控制服务10服务,这篇文章来讲一下如何在CDD文件中配置这个服务和相关的诊断会话状态等内容. 具体包括: 服务属性设置 服务请求和响应格式设置 参数设置 否定响应码设置 ...

最新文章

  1. 聊聊企业级 Java 应用最重要的4个性能指标
  2. 强人工智能还有多远?先用10到20年突破这5个数学问题
  3. linux脚本实现复制,Shell脚本实现复制文件到多台服务器的代码分享
  4. [转载]Java数据库设计中的14个技巧
  5. element ui表单验证
  6. for range 经典问题
  7. 手把手教你Python获取全部金融数据
  8. 全网最简单明了的MySQL连接Eclipse方法(JDBC详细安装方式及简单操作)2020新版
  9. cad大理石填充图案_CAD制图初学入门者必须知道的CAD填充问题
  10. V-rep学习笔记:ROSInterface
  11. 广播信道的数据链路层和CSMA/CD协议
  12. 为什么每个程序员都应该学习C语言?
  13. 3D点云目标检测算法汇总
  14. 6425C-Lab8 使用组策略管理安全性(2)
  15. fiddler视频分析
  16. openwrt定时任务 2021-10-08
  17. 微生物组实验手册:中科院、北大和清华等52家单位的74个团队的153篇方法正在创作中(15篇已投稿)...
  18. 青龙面板关闭青龙二级验证
  19. 《MySQL系列-开发相关》MySQL新建数据库表并存储2010年到2030年的日期
  20. 微信最新授权登录 微信小程序无法弹出授权弹框 open-type getUserInfo获取不到用户信息 授权不弹框

热门文章

  1. java图片文字自动识别
  2. 使用selenium自动登陆b站 图片文字验证识别
  3. Ubuntu中使用john the ripper口令破解
  4. elementUI表单验证之动态表单验证
  5. 怎样实现群晖(NAS)中查看是谁添加、修改、删除文件内容
  6. java--表格的使用
  7. jquery强大的选择器--jq选择器大全
  8. Dockerfile部署LNMP
  9. window10下安装Elasticsearch(es)和IK分词器
  10. h61 nvme硬盘_一盒在手,说走就走-ORICO M.2双盘位移动硬盘盒评测