• 761查看
  • 0回复

[VCU] UDS统一诊断服务【八】通过DID读取数据0X22服务

[复制链接]


该用户从未签到

发表于 10-12-2023 08:02:20 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


今天分享的内容是UDS诊断通过DID读取数据0X22服务介绍,希望能对你有所帮助

一、读数据服务介绍

DID:Data Identifier 数据标识符,简单理解就是个编号,用来标识要读取的是什么内容,比如,你要读取软件版本号,硬件版本号,那发送的DID就不一样了。0X22服务的主要功能就是通过DID读取数据,可以请求一个DID的数据,也可以请求多个,其数量限制也由汽车厂商和供应商来约定。请求的DID数量,只要不超过数量限制即可,服务端在回复的时候要包含所有数据,也就是有多少个DID请求,就要回复多少个DID对应的数据,即使多个DID里面有重复的,响应的时候也要当成是两个单独的DID请求。
二、数据格式

1,请求报文

请求报文的格式简单,[SID] + [DID] 即可,SID后面至少跟一个DID,需要注意的是,之前的服务都是有sub-function的,这个服务是没有的

UDS统一诊断服务【八】通过DID读取数据0X22服务w1.jpg

2,响应报文

响应报文格式:[SID + 0X40] + [DID] + [DataRecord] ……+ [DID] + [DataRecord]

这里需要注意的是,看是单个DID请求还是多个DID请求,有多少个DID请求,回复的时候就需要回复多少个 [DID] + [DataRecord]

UDS统一诊断服务【八】通过DID读取数据0X22服务w2.jpg

3,否定响应

0X13:请求的消息长度不正确,或格式错误

0X14:响应的消息太长了

0X22:条件不正确,就是不满足服务daunt的运行条件

0X31:不支持当前请求的DID

0X33:没过安全访问,需要先执行27服务解密后,才能执行22服务

UDS统一诊断服务【八】通过DID读取数据0X22服务w3.jpg

三、举例子

单个DID请求

UDS统一诊断服务【八】通过DID读取数据0X22服务w4.jpg

回复

UDS统一诊断服务【八】通过DID读取数据0X22服务w5.jpg

多个DID请求的例子

UDS统一诊断服务【八】通过DID读取数据0X22服务w6.jpg

回复

UDS统一诊断服务【八】通过DID读取数据0X22服务w7.jpg

最后,如果觉得有帮助,希望你能点个关注,一键三连,感激不尽

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 4-3-2025 22:26 , Processed in 0.471240 second(s), 34 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.