OTA 为什么难做
OTA(空中下载升级)听着简单——远程推个新固件。但设备在现场、可能断电、网络不稳、机型还杂。一次升级失败就可能把设备变砖。所以 OTA 的核心不是「能升级」,而是「升级失败也能救回来」。
OTA 的第一原则:永远留一条能退回旧版本的后路。
OTA 三大风险
- 升级中断电设备变砖。
- 网络不稳包下不全。
- 机型太杂新固件不兼容。
双分区与回滚
主流做法是双分区(A/B):当前运行 A 分区,新固件写到 B 分区,校验通过才切过去启动。启动几次失败就自动回滚到 A。这样即使新固件起不来,设备也不会死。
// 伪代码:升级状态机
download(firmware) -> verify(md5)
-> write(B) -> setBoot(B)
-> reboot -> if bootFail: rollback(A)
差分升级与校验
完整固件可能几 MB 起步,弱网下全量下载很慢。差分包只传新旧版本的差异,设备端在本地合并。下载过程必须做 MD5/签名校验,包不全、被篡改都不允许写分区。
灰度与分批
新固件不能一夜之间推给所有设备。先推给一小批测试机,观察几天故障率;再按比例分批放大。平台要能按机型、地区、客户分组推送,出问题能停在某一批。
升级时机与断点续传
升级要挑设备空闲、电量充足、网络稳定的窗口,不能在用设备的关键作业时打断。下载支持断点续传,网络断了下次接着传,不用从头来。升级完设备要上报版本号,平台才知道谁升了、谁没升。
落地清单
- 双分区失败自动回滚。
- 差分弱网省流量。
- 灰度分批放量、可叫停。
- 续传断点接着下。
设备全生命周期
OTA 只是生命周期的一环。从产线烧录、激活绑定、在线监控、远程升级,到设备退役,每个阶段平台都要留痕。版本号、激活时间、最近在线、升级记录,这些数据是排查现场问题的依据。
小结与延伸阅读
OTA 的精髓是「安全第一、失败可救」:双分区回滚、差分校验、灰度分批、断点续传。把这几件做扎实,远程升级就从高风险操作变成日常运维。
- 设备身份读《物联网安全与设备身份认证实战》。
- 规则联动读《物联网平台规则引擎与低代码开发实战》。
- 端侧智能读《边缘 AI 推理实战》。