4. 刷写升级基础

在 RH850 这类车规级 MCU 的 Bootloader 工程中,刷写升级并不是“把新固件写进去”这么简单,它是一套由存储分区、通信协议、校验机制、安全策略和行业标准共同约束的完整系统。理解这套基础,是后续设计 Bootloader 状态机、CAN/UDS 刷写流程以及安全启动机制的前提。

一、刷写升级的核心原理

刷写升级的本质,是在目标 ECU 上把旧的应用程序(App)替换为新的固件镜像,并保证替换后系统能够正确启动。RH850 通常将 Flash 划分为 Bootloader 区、App 区、参数/标定区,部分方案还会保留备份区(Backup)和升级标志区(Update Flag)。

上电后,Bootloader 先运行,判断升级标志是否有效:若有效,则进入刷写模式,通过通信接口接收新固件并写入 App 区;若无效,则跳转到 App 执行。刷写过程中,新固件通常按“块(Block)”或“段(Segment)”传输,每块写入前擦除对应 Flash 扇区,写入后立即做校验,确保数据完整。

关键点:刷写升级必须保证“可中断、可恢复、可回滚”。如果刷写中途断电或通信中断,Bootloader 必须能识别异常并重新进入刷写模式,而不是直接跳转到不完整的 App。

二、通信接口与协议选择

RH850 刷写升级常用的通信接口包括 CAN、CAN FD、LIN、FlexRay 和以太网(DoIP)。在车载诊断场景中,CAN/CAN FD 配合 UDS(ISO 14229)是最主流的组合;LIN 多用于低成本节点;以太网则用于高带宽刷写,如智能座舱或域控制器。

UDS 刷写涉及几个关键服务:0x10 会话控制、0x27 安全访问、0x34 请求下载、0x36 传输数据、0x37 请求退出传输、0x31 例程控制、0x11 ECU 复位。Bootloader 需要实现这些服务的服务端逻辑,并配合 P2/P2* 超时参数保证通信可靠性。

典型 UDS 刷写服务序列:
10 03        → 进入扩展会话
27 01 / 27 02 → 安全访问(Seed/Key)
31 01 FF00   → 擦除 Flash 例程
34 00 44 ... → 请求下载(指定地址与长度)
36 01 ...    → 传输数据块
37 01        → 退出传输
31 01 FF01   → 校验例程
11 01        → ECU 复位

三、升级流程与状态迁移

一个完整的刷写升级流程通常分为:预编程、编程、后编程三个阶段。预编程阶段检查车辆条件、读取版本、进入扩展会话;编程阶段执行安全访问、擦除、下载、校验;后编程阶段复位 ECU、清除故障码、验证版本。

下图展示了 RH850 Bootloader 刷写升级的典型数据流与状态迁移关系,涵盖诊断仪、Bootloader、Flash 分区以及安全校验之间的交互。

RH850 刷写升级数据流与状态迁移 诊断仪 / 上位机 UDS Client CAN / DoIP 通信接口层 CAN FD / LIN / ETH ISO-TP / DoIP Bootloader UDS Server Flash Driver RH850 Flash Boot / App Flag / Backup 请求 数据 写入 刷写状态迁移 上电 / 复位 Boot 运行 检查升级标志 Flag Valid? 刷写模式 擦除 / 下载 校验与复位 CRC / 跳转 有效 标志无效 → 跳转 App 安全机制 Seed/Key 认证 · 签名校验 · CRC32 · 安全启动 回滚保护 · 防降级 · 刷写权限控制 行业标准 ISO 14229 (UDS) · ISO 15765 (CAN TP) ISO 26262 · AUTOSAR · OTA 规范

四、安全机制与行业标准

刷写升级的安全机制主要解决三个问题:谁可以刷、刷的内容是否可信、刷坏了怎么办。常见手段包括:

  • 安全访问(Security Access):通过 Seed/Key 挑战应答,防止未授权诊断仪执行擦写操作。
  • 固件签名与校验:对固件镜像做 CRC32、SHA-256 或 RSA/ECC 签名验证,确保完整性与来源可信。
  • 安全启动(Secure Boot):RH850 可配合硬件安全模块(HSM)或 ICUM 实现启动链校验。
  • 回滚与防降级:通过版本号与防回滚计数器,阻止刷入旧版本或恶意固件。
  • 掉电保护:升级标志、双备份区、原子写入策略,保证异常中断后可恢复。

行业标准方面,UDS(ISO 14229)定义了诊断服务,ISO 15765 定义了 CAN 传输层,AUTOSAR 定义了 Bootloader 与 Flash 驱动接口,ISO 26262 则对功能安全提出要求。OTA 场景还会涉及《汽车软件升级通用要求》等法规。

机制 作用 典型实现
安全访问 防止未授权刷写 UDS 0x27 Seed/Key
完整性校验 检测数据错误 CRC32 / SHA-256
签名验证 确认固件来源 RSA-2048 / ECC
安全启动 启动链可信 HSM / ICUM
回滚保护 防止降级攻击 版本计数器

五、常见误区与复盘

误区一:只做 App 校验,不做 Bootloader 自身保护。Bootloader 被篡改后,所有安全机制都会失效。
误区二:擦除与写入不按扇区对齐,导致 RH850 Flash 操作失败或数据异常。
误区三:忽略 P2 超时与流控参数,刷写大固件时出现丢帧或超时中断。
误区四:没有升级标志与备份区,断电后设备变砖。

复盘建议:在项目早期就明确 Flash 分区表、通信矩阵、安全等级和回滚策略;刷写流程必须经过“正常刷写、断电中断、错误固件、非法诊断仪”四类测试;所有关键状态迁移都要有日志或标志位可追溯。只有把原理、接口、流程、安全和标准串成一条链,RH850 Bootloader 的刷写升级才具备量产可靠性。