《UDS协议从入门到精通》系列——图解0x2E:通过ID写数据
Tip📌:本文描述中但凡涉及到其他UDS服务的,将陆续提供链接跳转方式以便快速了解他们。(各服务介绍持续更新中…)
学习UDS基础知识以及其他相关内容?>>>>>>>>> 返回专栏总目录 《UDS协议从入门到精通(UDS速查手册)》<<<<<<<<<
一、简介
该服务与0x22服务是成对的,推荐先阅读0x22-通过DID读数据。客户端根据提供的DID将信息写入目标ECU,常用场景如下:
- 将配置信息(例如VIN码)编程到ECU中;
- 清除非易失性存储器;
- 重置已写入flash中的值;
- 设置一些可配置字段的值。
Tip📌:目标ECU可能限制或禁止对某些DID的写入访问(由系统供应商/车辆制造商定义为只读标识符等。
二、数据包格式
2.1 服务请求格式
该服务请求报文不能一次性请求写入多个DID,此外,本服务不支持sub-function。
2.2 服务响应格式
2.2.1 肯定响应
2.2.2 否定响应
可能出现的NRC及其含义如下:
NRC | 含义 |
---|---|
0x13 | 消息长度错误 |
0x22 | 当前条件不满足 |
0x31 | 请求参数不受支持,参数错误 |
0x33 | 安全访问错误,比如访问的DID数据是安全数据,但当前等级未解锁 |
0x72 | 通用编程错误,一般写入内存出错就报这个NRC |
NRC的处理流程如下所示(即推荐的错误情况检查顺序):
三、通信示例
通过DID 0xF190向ECU写入车辆VIN码。