4. 升级介质与传输方式
固件升级的成败,往往在“介质选型”这一步就已经决定了一半。升级介质不仅决定了传输速率,还直接影响升级包的封装格式、校验方式、断点续传能力、现场可维护性,甚至决定了产品能否支持远程批量升级。本节从工程视角梳理 UART、USB、CAN、以太网、无线 OTA 五类主流介质的特点,并给出一套可落地的选型方法。
一、核心原理:介质决定升级链路的“物理上限”
固件升级本质上是把一段二进制镜像从“源端”搬运到“目标端”,再写入 Flash 并校验。介质处于这条链路的最底层,它决定了三件事:带宽上限、可靠性边界、可触达范围。带宽决定升级耗时,可靠性决定是否需要重传与断点续传,可触达范围决定是“现场插线升级”还是“远程空中升级”。
因此选型不能只看“哪个快”,而要看“在什么场景下、由谁操作、失败代价多大”。例如产线烧录追求速度与稳定,现场维护追求免拆机,远程运维追求可批量与可回滚。
二、五类介质的特点与适用场景
| 介质 | 典型速率 | 可靠性 | 典型场景 | 主要限制 |
|---|---|---|---|---|
| UART | 9.6k–921.6kbps | 中,需协议层校验 | MCU 板级升级、Bootloader 串口下载 | 速率低,无热插拔,线缆短 |
| USB | 12Mbps–5Gbps | 高,硬件 CRC + 协议重传 | 产线批量烧录、设备本地升级 | 需驱动/枚举,主机端依赖强 |
| CAN | 125k–1Mbps | 高,差分抗扰 + 仲裁重发 | 车载 ECU、工业多节点升级 | 单帧 8 字节,需分包与流控 |
| 以太网 | 10M–1Gbps | 高,TCP 保证有序可靠 | 网关、工控机、局域网批量升级 | 需 IP 配置与网络环境 |
| 无线 OTA | 几十 k–几 Mbps | 中,依赖链路与重传策略 | 已部署设备远程升级、消费电子 | 带宽波动,需断点续传与回滚 |
三、方法流程:四步完成介质选型
- 明确升级场景:产线、现场维护、远程运维,三者对操作者和环境的要求完全不同。
- 估算镜像大小与时间预算:用“镜像大小 ÷ 有效速率 × 1.3(协议开销)”估算耗时,判断是否可接受。
- 评估可靠性与回滚需求:是否允许升级中断?是否必须支持 A/B 分区或双备份?
- 确认硬件与协议栈成本:接口是否已存在、是否需要额外芯片、Bootloader 是否支持该介质。
耗时估算示例:镜像 512KB,UART 115200bps 有效速率约 11KB/s,理论约 47 秒,加协议开销约 60 秒;若换 USB 全速 12Mbps,实际约 1–2 秒。产线节拍紧张时,UART 往往不可接受。
四、案例与配置:CAN 与 OTA 的典型参数
以车载 CAN 升级为例,常见做法是把镜像按 8 字节分包,通过 ISO-TP 或自定义流控传输。下面是一段典型的升级参数配置:
# CAN 升级参数示例
can_bitrate = 500000 # 500kbps
frame_payload = 8 # 经典 CAN 单帧 8 字节
block_size = 4096 # 每块 4KB,块尾校验
flow_control = ISO-TP # 流控帧控制发送节奏
retry_limit = 3 # 单块重传上限
verify = CRC32 # 整包校验
无线 OTA 则更强调“可恢复”。典型策略是:先下载到备份分区,校验通过后再切换启动标志;若升级中断,下次上电仍从原分区启动。关键参数包括分片大小、重试次数、超时时间和回滚标志位。
实用建议:无论哪种介质,都应在协议层加入“包序号 + 校验 + 确认重传”三件套。介质本身可靠,不代表升级过程可靠;断电、复位、总线拥塞都可能造成半包。
五、误区与复盘
- 误区一:只看峰值速率。USB 标称 480Mbps,但实际受协议栈、Flash 写入速度限制,瓶颈常在存储侧。
- 误区二:忽略 Bootloader 支持。硬件有以太网,但 Bootloader 只实现了 UART,等于无法用以太网升级。
- 误区三:OTA 不做回滚。一旦新固件启动失败,设备可能彻底失联,现场只能拆机。
- 误区四:CAN 升级不做流控。多节点同时升级会挤占总线,导致关键报文延迟甚至丢失。
复盘要点:选型时把“升级失败后的恢复路径”写进设计文档。能本地恢复的,优先本地;只能远程恢复的,必须双分区 + 看门狗 + 回滚标志。介质选得再快,恢复不了就是事故。
综上,UART 适合低成本板级引导,USB 适合产线与本地高速升级,CAN 适合车载与工业多节点,以太网适合局域网批量与网关设备,无线 OTA 适合已部署设备的远程维护。选型的核心不是追求最快,而是在速率、可靠性、可触达性、成本四者之间找到与业务场景匹配的平衡点。