从刷写到OTA:程翧 CAN FD Bootloader 的工程化实践|技术集结

随着汽车电子电气架构从分布式 ECU 走向域控制器和中央计算平台,车载软件规模和迭代频率都在快速提升。过去几十 KB 的控制器固件,如今可能扩展到数 MB 甚至更大;过去主要发生在产线和售后的刷写动作,也逐渐成为整车 OTA 能力的一部分。在这个变化中,Bootloader 不再只是“把程序烧进去”的小工具,而是车载 ECU 升级链路中支撑可靠性和工程闭环的基础软件。
CAN FD 的引入,首先解决的是传输效率问题。相比 Classic CAN 单帧最多 8 字节的数据负载,CAN FD 单帧数据区最高可达 64 字节,并支持仲裁段和数据段采用不同速率。在 UDS on CAN FD 场景下,Bootloader 可以通过 ISO-TP 分段传输,将多个 CAN FD 帧重组为 UDS TransferData 数据块,再按 Flash 页、扇区或编程粒度聚合写入。工程实践中,4096 字节数据块是一项很有价值的配置:它既能发挥 CAN FD 大载荷优势,也能减少频繁写 Flash 带来的时序和可靠性压力。

不过,CAN FD Bootloader 的价值并不只是“传得更快”。真正的工程难点在于:如何把 UDS 下载服务、CAN TP 分段重组、Flash 擦写、镜像校验、失败恢复、安全访问和 OTA 编排组织成一个确定、可诊断、可恢复的闭环。一次升级过程中,通信可能中断,电源可能掉电,Flash 编程可能失败,新镜像也可能不兼容。如果 Bootloader 只关注数据接收,而没有完整的状态管理和恢复策略,就很容易把一次升级失败放大成 ECU 不可恢复的现场问题。
面向 OTA 和量产升级,A/B 分区是建立这种可靠性的基础方案。对于支持硬件 Bank 或 A/B 分区的汽车级 MCU,可以把新镜像写入非活动分区,校验通过后再切换活动分区,从而保留回滚能力。对于不支持硬件 A/B 的平台,也可以通过软件 A/B 分区实现类似能力,但需要处理运行地址、链接脚本、启动入口和异常向量等约束。对于资源受限的控制器,单分区方案也依然常见,此时冷启动强刷模式就变得关键:只要 Bootloader 自身可靠,即使应用区刷写中断,ECU 仍应能在复位后进入恢复刷写流程。

要让 A/B、强刷恢复和 OTA 编排真正落地,Bootloader 还必须具备清晰的分层设计。UDS 层负责会话、安全访问、例程控制、下载和复位;传输层负责 CAN TP 分段、流控、序号和超时;Flash 层负责擦除、编程、对齐和读回校验;元数据与安全层负责镜像头、CRC/hash、签名、版本兼容、槽位状态和激活条件。层次清晰,才能让问题定位更直接,也便于在不同 MCU、不同 OEM 规范和不同项目约束下复用。程翧车控系统中的 Bootloader 软件架构正是沿着这类分层思路构建,在需要时还可以结合 RT-Thread Nano 和 msh 形成超小型运行环境,在资源占用可控的前提下完成升级、CAN 通信和必要的调试定位。

在这个闭环中,安全与 OEM 对接同样不能被简化。UDS SecurityAccess 可以验证诊断请求方是否具备刷写权限,但它不能替代固件可信校验;面向 OTA 和量产场景,Bootloader 还需要在镜像激活前完成 CRC/hash、签名验证、版本兼容、目标区域检查和 A/B 激活状态确认。不同 OEM 的信息安全要求差异很大,睿赛德科技/程翧系统既经历过偏软件方式的 Seed-Key、签名和版本校验,也支持基于 AUTOSAR CP 的 Csm、KeyM 等 Crypto Stack 标准对接,还能适配走 HSM 的密钥隔离和硬件级安全校验方案。真正的工程价值不只是把安全模块接入系统,而是把安全要求落到刷写、校验、激活、失败恢复、掉电恢复、诊断日志和 OTA 编排的完整流程中。

也正因为这些问题彼此耦合,Bootloader 能力最终体现为工程落地能力。睿赛德科技/程翧系统已经在多个 Bootloader & OTA 量产项目中完成实践,覆盖国产芯片 UDS 刷机、产线刷写、售后恢复、整车 OTA、A/B 回滚和异常恢复等场景。对于 RISC-V 车载 MCU,团队处理过 ECU Bootloader 与 OTA 升级流程,覆盖启动入口、Flash 编程、镜像校验、应用跳转、升级状态管理,并支持 Bootloader 自更新等复杂能力。
因此,对于 OEM 车企和 Tier 1 来说,Bootloader 的技术选型不应只看单次刷写速度,更应关注长期可维护性:是否支持 4096 字节高效传输,是否具备 A/B 回滚和冷启动恢复路径,是否能和 OEM 信息安全规范对接,是否能从国产芯片 UDS 刷写平滑延伸到 OTA 升级。CAN FD 提供了更高效的传输链路,而真正决定升级体验和现场可靠性的,是底层基础软件对异常场景和量产流程的处理能力。
程翧 Bootloader & OTA 能力概览
基于多个 Bootloader & OTA 量产项目实践,程翧系统在车载 ECU 升级方向已经形成较完整的工程能力,重点覆盖高效刷写、可靠回滚、自更新、安全对接和多芯片平台适配等关键环节。
程翧系统在 Bootloader & OTA 方向的能力包括:
高效刷写:支持 4096 字节 UDS TransferData 数据块,结合 ISO-TP 分段重组、CAN FD 64 字节载荷和 Flash 聚合写入,提高刷写效率并降低频繁写 Flash 带来的时序压力。
可靠升级:支持硬件 A/B、软件 A/B 和单分区强刷恢复等方案,覆盖镜像校验、active slot 切换、失败回滚、冷启动强刷和恢复刷写。
Bootloader 自更新:支持在特定项目中实现 Bootloader 自身升级能力,覆盖 RAM 运行、备份区写入、升级状态标志、重启后接续升级和失败保护等关键环节。
多芯片平台适配:支持面向国产 ARM 芯片、国产芯旺微架构芯片、RISC-V 车载 MCU 以及英飞凌 TriCore 芯片的 Bootloader 和 OTA 流程适配。
OEM 信息安全对接:支持偏软件方式的 Seed-Key、CRC/hash、签名和版本校验,也支持 AUTOSAR CP Csm、KeyM、CryIf、Crypto Driver 等 Crypto Stack 对接,以及 HSM 密钥隔离和硬件级安全校验路径。
OTA 升级闭环:支持从产线 UDS 刷写、售后诊断恢复到整车 OTA 升级的流程衔接,覆盖 OTA 编排、升级状态上报、失败恢复和版本一致性管理。
汽车软件正在走向高频迭代,ECU 升级也会越来越常态化,国标也强制要求升级需要满足信息安全的要求。对于睿赛德科技而言,Bootloader 不只是一个独立模块,而是车规基础软件能力在底层固件升级场景中的集中体现:把复杂留在工程实现里,把稳定、可恢复和可量产交给最终系统。

本文来源于睿赛德科技/程翧系统的技术分享
