UDS(八)应用层 22/2E

Data Transmission functional unit
UDS的第二类诊断服务:数据传输。该类型服务包含SID如下:

ReadDataByIdentifier (0x22)
ReadMemoryByAddress (0x23)
ReadScalingDataByIdentifier (0x24)
ReadDataByPeriodicIdentifier (0x2A)
DynamicallyDefineDataIdentifier (0x2C)
WriteDataByIdentifier (0x2E)
WriteMemoryByAddress (0x3D)

通常,0x22和0x2E成对使用,0x23和0x3D成对使用,这几个服务用于诊断数据的基本读写操作。0x24,0x2A,0x2C是一些特殊操作。本人只使用过SID:0x22和0x2E,本章目前就只对这两个服务进行介绍,后续如果有其他的SID使用将会对其补上。

1. ReadDataByIdentifier (0x22) service

该服务通过标识符(identifier)来读取ECU的数据。

1.1 请求格式:
在这里插入图片描述
由上图可知请求格式分为两个个部分:
第一部分:请求SID:0x22,占用一个字
第二部分:dataIdentifier(DID),占用两个字节,由厂家定义DID的值,代表读取的是什么数据。如0x0123代表的是读取ECU版本号。一次请求可读取多个DID数据。DID范围如下图所示:

1.2 响应格式:

在这里插入图片描述
由上图可以响应格式分为三个部分:
第一部分:response SID:0x62
第二部分:dataIdentifier(DID),请求读取的DID值
第三部分:dataRecord,要读取DID对应的数据。
注意:根据诊断仪一次请求读取多少个DID,ECU就响应多少个DID的数据给诊断仪。格式:response SID + n(dataIdentifier + dataRecore)。一般都是一次请求读取一个DID数据

1.3 举例

读取ECU版本号,假设DID:0x0123为ECU版本号的标识符

在这里插入图片描述

2. WriteDataByIdentifier (0x2E) service

该服务通过标识符(identifier)来写入数据到ECU。

2.1 请求格式

在这里插入图片描述
由上图可知,请求格式分为三部分
第一部分:请求SID:0x2E,占用一个字节
第二部分:dataIdentifier(DID),需要写入数据对应的DID标识符值。占用两个字节
第三部分:dataRecord,需要写入的数据

2.2 响应格式

在这里插入图片描述
由上图可知,响应格式分为两个部分
第一部分:response SID:0x6E
第二部分:dataIdentifier(DID),请求DID的echo

2.3 举例
写入ECU版本号,假设DID:0x0123为ECU版本号的标识符

在这里插入图片描述
参数知乎:https://zhuanlan.zhihu.com/p/33995635

UDS协议栈系列文章:

UDS(一)入门概述

UDS(二)网络层

UDS(三)网络层时间参数

UDS(四)应用层

UDS(五)应用层10/3E

UDS(六)应用层11/27

UDS(七)应用层28/85

UDS(八)应用层22/2E

UDS(九)应用层14/19

UDS(十)应用层34/36/37

  • 9
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值