UDS学习三:读数据 0x22(Read Data By Identifier)
读数据 0x22Read Data By Identifier1. 为什么需要这个服务2. 报文格式3. DID 是什么4. DID 的通用分类5. 数据格式怎么读6. 0x22 需不需要解锁7. 常见 NRC1. 为什么需要这个服务ECU 内部存储了很多信息硬件序列号、软件版本、配置参数、车辆状态等。Tester 需要一种方式来读取这些信息——这就是0x22Read Data By Identifier。每个信息有一个唯一编号叫DIDData Identifier占2 个字节。Tester 发请求我要读 DID 0xF1AAECU 返回这个 DID 对应的数据内容下面是 0x22 服务完整的「请求—判断—响应」流程满足不满足或不存在Tester 发送 0x22 请求22 DIDECU 查找该 DIDDID 存在且当前条件满足返回正响应62 DID 数据返回负响应7F 22 NRC2. 报文格式请求Tester → ECU22 DID高字节 DID低字节示例22 F1 AA表示读 DID0xF1AA。支持一次读多个 DID一条请求携带多个 DID22 F1AA F1AE F18C → 一次读 3 个 DIDECU 会把三个 DID 的数据一起返回。正响应ECU → Tester62 DID高字节 DID低字节 数据字段说明62正响应 SID0x22 0x40 0x62DID回显你请求的 DID 编号数据数据内容长度和格式由该 DID 的定义决定负响应7F 22 NRC下面用时序图描述一次报文的完整交互过程ECUTesterECUTesteralt[DID 可读][DID不可读或不存在]22 F1 AA62 F1 AA 数据7F 22 NRC3. DID 是什么DID 是一个2 字节编号指向 ECU 内部的一块数据。可以理解为 ECU 里维护着一个大字典DID 0xF1AA → 硬件序列号 DID 0xF1AE → 软件版本信息 DID 0xDD0A → 使用模式 DID 0xF190 → VINDID 的定义在 ECU 的诊断描述文件里如 CDD 文件或模块 XML。每个 DID 包含编号recordId名称数据格式字节如何解析成可读值转换方式BCD、ASCII、枚举等可以把 DID 理解为一张「索引 → 数据」的映射表DID 0xF1AA硬件序列号DID 0xF1AE软件版本信息DID 0xDD0A使用模式DID 0xF190VIN 车辆识别码4. DID 的通用分类信息类 DID通常位于 F1xx 段DID含义F1AA硬件序列号Core Assembly PNF1AB交付序列号Delivery Assembly PNF1AE软件版本信息Software Load ModuleF1A0应用诊断数据库零件号F18C序列号F190VIN车辆识别码以上是 ISO 14229 附录中建议的标准化 DID大部分车企都遵循。状态类 DID这类 DID 各车企自定义例如使用模式、车辆模式等。DID 编号和枚举值因项目而异需查对应 ECU 的诊断规范。5. 数据格式怎么读原始字节的解析思路如下具体解析方式完全由各 DID 的定义决定BCD ASCII单字节枚举长度前缀 循环收到正响应62 DID 原始字节取出数据段按 DID 定义选择解析方式展开 BCD 并转换 ASCII查枚举表映射为名称按数量与单条长度循环截取DID 返回的数据是原始字节如何转换为可读值取决于 DID 定义。下面介绍几种常见格式。BCD ASCII 混合编码如 0xF1AA 硬件序列号62 F1AA 6608716844 41解析规则前 5 字节 BCD 编码的零件号每 4 bit 代表一个十进制数字第 6 字节 ASCII 字符0x41A 版本号组合结果 6608716844A单字节枚举如使用模式62 DD0A 01只有 1 个字节值0x01 Inactive。DID 定义中会有一个枚举表把每个值映射到具体名称。长度前缀 循环结构如 0xF1AE 软件版本62 F1AE 02 640651900142 640652000142 ...解析规则第 1 字节 软件部件数量后面每 N 字节 一个「部件号 版本号」测试程序按「数量 × 单条长度」截取逐条解析比对6. 0x22 需不需要解锁一般不需要。读 DID 在 Default Session 下即可完成。但部分 ECU 对某些敏感 DID如密钥、安全常量会要求先解锁才能读取具体取决于 ECU 供应商的安全策略。7. 常见 NRCNRC名称含义0x13Incorrect Message Length请求长度不对少发了字节0x14Response Too Long一次读太多 DID响应超出最大长度0x22Conditions Not CorrectDID 存在但当前条件不满足如需要解锁0x31Request Out Of RangeECU 没有这个 DID0x31和0x22的区别0x31 ECU 根本没有这个 DID永远不会返回0x22 DID 存在但当前条件不允许读取收到负响应后可以根据 NRC 快速判断失败原因0x310x220x130x14收到负响应7F 22 NRC判断 NRC 值ECU 没有这个 DIDDID 存在但条件不允许请求消息长度不对响应超出最大长度

相关新闻

黑苹果麦克风无声的协议层诊断与SSDT延迟修复

黑苹果麦克风无声的协议层诊断与SSDT延迟修复

1. 项目概述:这不是驱动兼容问题,而是信号链路被悄悄切断了“黑苹果麦克风无法使用”——这行字在各大技术社区里每年都会重复出现上千次,但绝大多数人点进去后看到的解决方案,不是“换声卡驱动”,就是“重装系统”&am…

2026/10/16 12:24:35 阅读更多 →
基于STM32与MP2642的2S电池主动均衡电路设计

基于STM32与MP2642的2S电池主动均衡电路设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 12:24:35 阅读更多 →
拉普拉斯变换从原理到工程:收敛域、部分分式与系统稳定性全解析

拉普拉斯变换从原理到工程:收敛域、部分分式与系统稳定性全解析

拉普拉斯变换这章,几乎是所有工科生“信号与系统”“自动控制原理”里的分水岭。前面还在跟时域的微分方程搏斗,到这里突然发现,原来可以用一个变换把微分方程变成代数方程,把卷积变成乘法。我在实际项目里做控制系统分析、电路响…

2026/10/16 12:24:35 阅读更多 →

最新新闻

freeCodeCamp信息安全认证实操:HelmetJS+Python渗透测试

freeCodeCamp信息安全认证实操:HelmetJS+Python渗透测试

freeCodeCamp的信息安全认证我在去年集中过一段时间认真刷完了,前后花了大概三周。这套认证和其他课程最大的不同在于,它不是为了让你背几个概念,而是逼着你真正去写代码:一边用HelmetJS给Express应用加固防护,一边用P…

2026/10/17 5:24:25 阅读更多 →
景区旅游小程序源码部署与二次开发全流程指南

景区旅游小程序源码部署与二次开发全流程指南

简介:这份PHP经典源码面向希望学习Web应用开发或搭建景区在线服务平台的开发者,以旅游小程序为实战场景,覆盖预订、导航、信息查询等核心业务。源码包共1952个文件,约27.88MB,以1186个PHP文件为主体,辅以ph…

2026/10/17 5:24:25 阅读更多 →
让机器人学会设计下一个自己:Physical RSI与AutoResearch方法论拆解

让机器人学会设计下一个自己:Physical RSI与AutoResearch方法论拆解

1. 从RoboDojo榜单说起:一个成立3个月的团队凭什么登顶RoboDojo这个名字,最近在机器人学习圈子里被反复提起。它本质上是一个面向具身智能体的综合评测基准,覆盖抓取、装配、移动操作、多步任务规划等几十类任务,评分维度不只看成…

2026/10/17 5:24:25 阅读更多 →
Claude Code模板全解析:从CLAUDE.md到Hooks的工程化实践

Claude Code模板全解析:从CLAUDE.md到Hooks的工程化实践

claude-code-templates 这个名字,最近在开发者圈子里出现的频次明显高了起来。拆开看其实很直白:一组围绕 Claude Code 这个终端级 AI 编程助手设计的模板方案,涵盖 CLAUDE.md 项目指令文件、斜杠命令、权限策略、hooks 钩子配置等一整套可复…

2026/10/17 5:24:25 阅读更多 →
Vim快速上手指南:从模式到高效编辑的完整攻略

Vim快速上手指南:从模式到高效编辑的完整攻略

说实话,每次有新人问我“如何快速学会vim”,我都有点不知道怎么回答。因为vim这东西,用“学会”这个词其实不太准确,更贴切的说法是“习惯”——它是把你从鼠标和菜单的舒适区里硬拽出来,逼着你的手指和思维重新建立一…

2026/10/17 5:24:25 阅读更多 →
Claude Code模板化实战:把项目约定固化,让AI编程助手真正懂你

Claude Code模板化实战:把项目约定固化,让AI编程助手真正懂你

项目标题往那摆,说白了就是一句话的事儿:Claude Code 的真正效率,不在于你问得多细,而在于你给它的模板有多靠谱。今年 Claude Code 这类命令行 AI 编程工具火了之后,最容易被忽略的就是“模板化”这件事。很多人拿到 …

2026/10/17 5:23:24 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →