🔧 诊断仪 & ECU 交互协议
📘 实战 · 30章
1
诊断协议概述
什么是汽车诊断 · KWP2000到UDS · 物理连接方式
2
UDS协议基础
协议栈架构 · OSI七层模型 · 服务分类(强制/可选)
3
诊断会话控制 (0x10)
默认/编程/扩展会话 · 切换机制与超时管理
4
ECU复位服务 (0x11)
硬件复位 · 钥匙下电复位 · 软件复位场景
5
安全访问服务 (0x27)
种子与密钥 · 安全等级 · 防破解设计
6
通信控制服务 (0x28)
报文发送使能/禁止 · 网络管理报文特殊处理
7
测试仪在线服务 (0x3E)
保持会话活跃 · S3超时计数器原理
8
读取数据服务 (0x22)
DID定义与读取 · 多字节字节序问题
9
读取故障码服务 (0x19)
DTC状态掩码 · 快照数据 · 扩展数据记录
10
写入数据服务 (0x2E)
写入DID权限 · 条件检查 · 非易失性存储
11
例程控制服务 (0x31)
启动/停止/检查例程 · 擦除内存为例
12
诊断仪物理层 (CAN)
CAN总线基础 · 报文帧结构 · CAN-ID分配
13
传输层协议 ISO 15765-2
单帧/多帧 · 流控制帧(FC) · 连续帧(CF)
14
网络层定时参数
N_As/N_Ar/N_Bs/N_Br/N_Cs/N_Cr 超时调优
15
应用层定时参数
P2_Server · P2*_Server · S3_Client 超时设定
16
诊断请求与响应格式
SID+SubFunction · 肯定/否定响应(NRC)编码
17
常见否定响应码(NRC)
0x12 · 0x22 · 0x31 深度解析
18
诊断刷写流程 (Bootloader)
预编程/主编程/后编程 · OTA升级为例
19
内存擦除与写入
0x31擦除 · 0x34请求下载 · 0x36传输 · 0x37退出
20
诊断日志记录
0x22读取刷写日志 · 0x2E写入刷写结果标记
21
多ECU诊断
网关路由 · 物理/功能寻址 · 子网通信挑战
22
诊断测试模式
0x20回环 · 0x21读取ECU识别 · 0x23读内存地址
23
UDS on CAN FD
CAN FD优势 · 诊断报文适配 · DLC编码
24
诊断自动化测试 (Python)
使用can库模拟诊断仪 · 发送UDS请求解析
25
诊断数据库 (CDD/ODX)
CDD文件结构 · ODX解析 · 生成诊断代码
26
诊断与网络管理交互
NM报文影响 · 休眠/唤醒诊断行为
27
诊断安全机制
TLS安全诊断 · SecOC · 防止重放攻击
28
诊断一致性测试
ISO 13400(DoIP) · 15765-2 · 常见失败项
29
实车诊断故障排查
CAN干扰 · ECU死机 · NRC 0x78应对策略
30
未来趋势
SOME/IP诊断 · 远程OTA · 基于服务SOA架构