零基础入门 UDS 诊断| UDS 0x22 DID到底是什么?

📅 2026/7/27 16:06:01
零基础入门 UDS 诊断| UDS 0x22 DID到底是什么?
文章目录一、从名字开始DID 是什么意思二、三个比喻秒懂 DID比喻一钥匙与柜子比喻二书的目录与页码比喻三快递单号三、DID 的技术真面目2字节编码四、四个角度深入理解 DID五、DID 指向的数据长什么样六、DID 分哪几类七、DID 有什么用八、总结记住这几句口诀UDS 诊断协议系列 · 基础概念不讲报文格式不讲服务细节只讲一件事DID到底是个什么东西很多刚接触 UDS 诊断的同学一上来就看 0x22 服务、看报文格式结果被各种字节、SID、NRC 绕晕了。其实只要先把一个概念搞懂后面的一切都顺理成章——它就是 DID。DID 是理解 UDS 数据传输的钥匙。理解了 DID你就知道了诊断仪和 ECU 之间到底在聊什么、怎么聊的。这篇文章不讲报文细节不讲服务流程只专注讲清楚一件事DID 到底是个什么东西。关键词DID 数据标识符0基础入门概念理解车载诊断ISO 14229一、从名字开始DID 是什么意思DID 是DataIDentifier 的缩写中文叫数据标识符。把名字拆开来看D —— Data数据指的是 ECU 内部存储的各种数据比如 VIN 码、软件版本号、传感器数值等。ID —— Identifier标识符就是编号的意思给每个数据分配一个唯一的编号方便查找。DID —— Data Identifier数据标识符合起来就是给 ECU 内部数据贴上的唯一编号。通过这个编号就能找到对应的数据。一句话理解 DIDDID 就是 ECU 内部数据的**“编号”**。你告诉 ECU 一个编号它就把这个编号对应的数据给你。就这么简单。二、三个比喻秒懂 DID如果上面的拆解还不够直观我们来用三个生活中的例子帮你彻底建立对 DID 的直觉。比喻一钥匙与柜子想象 ECU 是一个有很多抽屉的大柜子每个抽屉里放着不同的东西——VIN码、版本号、传感器值等。DID 就是每把抽屉的钥匙编号。你想拿 VIN 码用 0xF190 这把钥匙开对应的抽屉。想看软件版本用 0xF195 这把钥匙。每把钥匙只开一个抽屉不会开错。比喻二书的目录与页码ECU 内部数据就像一本厚厚的书DID 就是目录里的页码。翻到第几页输入哪个 DID就能看到第几页的内容读到对应的数据。你不需要记住数据存在哪、什么格式只要知道VIN码在第 0xF190 页翻开就能看到。比喻三快递单号DID 就像快递单号。你在手机上输入一个单号系统就能帮你找到对应的包裹。DID 也是一样——诊断仪报出一个编号ECU 就把该编号对应的包裹数据给你。三个比喻的共同点钥匙、页码、快递单号——它们的共同点是本身不是内容只是一个编号。DID 也是如此它本身不含任何数据只是一个帮你找到数据的编号。三、DID 的技术真面目2字节编码理解了 DID 的概念我们来看看它在协议中到底长什么样。在 ISO 14229-1 协议中DID 是一个2 字节16位的十六进制编码。就这么简单——两个字节仅此而已。以最常用的 VIN 码 DID 为例DID 0xF190 → 高字节 0xF1 低字节 0x902字节 16位二进制 4位十六进制取值范围 0x0000 ~ 0xFFFF共 65536 个⚠️最重要的认知DID 不等于数据DID 本身只有 2 个字节的编号不包含任何数据内容。真正的数据VIN码、版本号等存在 ECU 的非易失性存储器中。DID 只是门牌号不是房子里的东西。四、四个角度深入理解 DID同一个 DID从不同角度看会有更立体的理解。这里提供四个角度帮你彻底搞透 DID。角度一DID 是数据的标签每个数据都有一个标签DID比如0xF190这个标签贴在 VIN 码上0xF195贴在软件版本号上。看到标签就知道是什么数据。角度二DID 是数据的访问地址ECU 内部存了大量数据DID 就是每个数据的访问入口。诊断仪说读 0xF190ECU 就知道该去哪个位置取数据。角度三DID 是数据的门牌号把 ECU 内部想象成一个小区每个数据住在不同的房子里DID 就是每栋房子的门牌号。找数据就像送快递——看门牌号就行。角度四DID 是编程中的变量名如果你有编程基础DID 就像变量名数据内容就是变量值ECU 的存储器就是内存。DID 0xF190等同于vin_code 1G1JH543...。✅总结这四个角度无论从哪个角度理解DID 的本质都一样它是一个编号用来唯一标识 ECU 内部的某份数据。诊断仪通过这个编号来按图索骥找到自己想要的数据。五、DID 指向的数据长什么样搞懂了 DID 是编号接下来看看这个编号指向的内容——也就是数据本身——有什么特点。从上图可以看出DID 指向的数据有三个重要特点长度可变有的数据只有 1 个字节如会话类型有的有 17 个字节如 VIN 码长度不固定。格式多样有的是纯数值如转速 5000 RPM有的是 ASCII 文本如 VIN 码 “1G1JH…”有的可能是状态标志位。预先定义哪些 DID 存在、每个 DID 对应什么数据、什么格式都是在软件开发阶段就定义好的不是运行时动态生成的。数据存在哪里DID 指向的数据存储在 ECU 的**非易失性存储器NVM**中断电后数据不会丢失。这也是为什么 VIN 码写入一次后后续每次诊断都能读到。六、DID 分哪几类DID 的取值范围是0x0000 ~ 0xFFFF共 65536 个。这么多编号谁来定义、怎么分配主要分为两大类分类谁定义的举例标准 DIDISO 14229-1 协议统一规定跨车型通用0xF190VIN码0xF186当前会话0xF187备件编号自定义 DID主机厂OEM和供应商自己定义0xD100配置参数0xB001标定数据0xA001传感器值实际测试看什么标准 DID 是协议规定的通用编号但实际项目中具体支持哪些 DID、数据格式是什么必须依据项目的诊断规范文档来确认。每个项目的 DID 定义可能不同。七、DID 有什么用理解了 DID 是什么最后来看看它到底能干什么。DID 在车辆全生命周期中主要有四大作用作用通俗解释ECU 的身份证通过 DID 读取软硬件版本号、序列号确认 ECU 身份和版本是否正确标定与配置通过 DID 读取或写入标定参数、配置项调整 ECU 的功能行为状态监测通过 DID 读取运行参数如转速、里程、温度实时了解 ECU 工作状态故障诊断通过 DID 读取故障快照数据帮助定位问题来源八、总结记住这几句口诀DID 记忆口诀DID 是编号不是数据本身2字节十六进制0x0000到0xFFFF标准自定义两大类项目规范说了算身份证、标定、监测、诊断四大作用记心间最后用一张表把 DID 的核心知识串起来维度核心要点是什么ECU 内部数据的唯一编号本身不含数据多长固定 2 字节16位十六进制表示范围0x0000 ~ 0xFFFF共 65536 个分类标准 DID协议定义 自定义 DIDOEM 定义数据在哪存在 ECU 非易失性存储器中长度可变、格式多样怎么来的开发阶段预先定义依据项目诊断规范有什么用身份证、标定配置、状态监测、故障诊断个人理解有误指正本文基于 ISO 14229-1 协议和实际测试经验整理聚焦 DID 概念本身的理解。后续会专门讲解如何通过 0x22 服务读取 DID 数据。如有错误欢迎指正。墩墩的总线实验室车载测试技术干货 · UDS 协议解析 · 自动化测试实战本文基于 ISO 14229-1 协议整理仅供学习交流