🚗 UDS刷写状态机
实战控制
📘 30章 · 从协议到测试
⚙️ 嵌入式 · 汽车电子
01
UDS协议概述
协议背景
汽车电子地位
协议栈分层
02
刷写流程总览
完整生命周期
前置条件
后置检查
03
状态机基础理论
FSM概念
状态/事件
转移/动作
04
刷写主状态机设计
IDLE
PREPROGRAMMING
PROGRAMMING
POSTPROGRAMMING
05
会话控制服务(0x10)
诊断会话切换
编程会话进入
06
安全访问服务(0x27)
Seed&Key
安全解锁流程
常见算法
07
安全访问状态机
LOCKED
SEED_SENT
UNLOCKED
失败处理
08
刷写前置检查
硬件版本校验
软件兼容性
条件判断
09
例程控制服务(0x31)
检查前置条件
擦除内存例程
10
内存擦除状态机
ERASE_IDLE
ERASE_REQUESTED
ERASING
ERASE_COMPLETE
失败恢复
11
请求下载服务(0x34)
下载请求参数
地址空间映射
数据长度协商
12
数据传输服务(0x36)
连续帧传输
流控制FC
传输状态管理
13
数据传输状态机
DATA_TRANSFER_IDLE
WAITING_FC
SENDING_DATA
TRANSFER_COMPLETE
14
请求退出传输(0x37)
正常退出
异常退出
传输中止
15
ECU复位服务(0x11)
硬件复位
钥匙开启复位
软件复位
复位后行为
16
刷写后状态机
复位等待
重启后检查
刷写完成确认
17
例程控制-完整性检查
CRC校验
完整性流程
失败处理
18
例程控制-依赖检查
依赖关系
版本匹配
缺失处理
19
写入数据服务(0x2E)
写入配置参数
写入VIN码
写入序列号
20
读取数据服务(0x22)
读取ECU标识
读取软件版本
读取刷写日志
21
TesterPresent(0x3E)
保持会话激活
S3定时器刷新
防止超时
22
否定响应码(NRC)处理
NRC分类
常见含义
处理策略
23
超时管理
P2_Server
P2_Client
S3超时
超时状态机
24
刷写错误处理
传输错误
校验错误
安全错误
硬件错误
恢复策略
25
多块刷写状态机
多块下载
块间切换
块完成确认
26
刷写进度管理
进度计算
进度上报
中断恢复
27
刷写日志记录
日志数据结构
日志存储
日志读取
日志分析
28
刷写安全策略
防回滚
签名验证
加密刷写
安全启动
29
刷写性能优化
传输效率
擦写速度
并行刷写
30
刷写测试与验证
单元测试
集成测试
压力测试
异常场景