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

DID:Data Identifier 数据标识符,简单理解就是个编号,用来标识要读取的是什么内容,比如,你要读取软件版本号,硬件版本号,那发送的DID就不一样了。

大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是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服务

2,响应报文

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

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

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

3,否定响应

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

0X14:响应的消息太长了

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

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

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

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

三、举例子

单个DID请求

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

回复

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

多个DID请求的例子

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

回复

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

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

 

声明:本站内容资源均来源于网友分享及网络公开合法渠道,但我们不对这些内容的观点、描述的准确性负责,也不保证所有信息的原创性、真实性、完整性及即时性。对于本站所含文章或资料的版权问题,如您发现有侵犯版权的情况,请联系我们进行处理。同时,我们提倡将本站内容用于个人学习交流,严禁未授权的商业用途,否则由此产生的法律后果由使用者自行承担。感谢支持!
技术分享电子电气车载通讯

UDS统一诊断服务【七】DTC控制0X85服务

2024-4-29 21:11:51

技术分享电子电气车载通讯

UDS统一诊断服务【九】通过ID写入数据0X2E服务

2024-4-29 21:27:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索