单片机OTA升级中的A/B双分区:经典方案与实现逻辑

strongerHuang 2025-08-30 20:00

关注+星标公众,不错过精彩内容

来源 | 亚细亚的老鱼


OTA:Over-the-Air ,空中下载,也就是远程升级的意思。


现在OTA升级已经成了很多汽车电子、IoT 等嵌入式设备的必要功能,就连很多几块钱的电子产品,都具备了这个功能。


为了避免升级过程中断电、传输错误导致设备“变砖”,业内普遍采用 A/B 双分区机制。本文总结几种经典方案,并结合实际 MCU的特性,给出实现思路。

资讯配图



一、A/B 双分区的经典方案

  1. 静态 A/B(切换入口)

  • 下载区 + 拷贝区

  • 外部 Flash A/B

  • 差分升级(Delta Patch)



  • 二、典型内存布局

    | Boot Control Block (BCB) |  状态标志区
    |--------------------------|
    | Bootloader (保护段)    |  固定不被擦写
    |--------------------------|
    | 应用分区 A           |  App + 校验信息
    |--------------------------|
    | 应用分区 B           |  App + 校验信息



    三、升级完整逻辑

    1. 下载阶段


    2. 启动阶段(Bootloader)

    1. 检查 BCB,若有待验证分区 → 优先启动它。

    2. 校验 Header、CRC、签名。

    3. 如果失败 → 回滚到旧分区。

    4. 如果通过 → 进入试运行模式。


    3. 试运行与确认



    四、关键点与注意事项



    五、应用场景



    六、总结

    A/B 双分区 OTA 升级的核心是:

    这套机制被广泛应用于汽车电子和物联网设备,是目前最可靠的 OTA 设计之一。

    ------------ END ------------

    资讯配图
    ●专栏《嵌入式工具
    ●专栏《嵌入式开发》
    ●专栏《Keil教程》
    ●嵌入式专栏精选教程

    关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。


    点击“阅读原文”查看更多分享。

    声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
    单片机
    more
    单片机开发为啥很少用C++?
    单片机常用状态机QP框架的原理
    单片机OTA传输协议深入分析
    单片机自定义printf函数的几种写法
    “90%”的单片机开发者,都忽略了数据结构的重要性
    单片机电池供电产品设计要点
    单片机软件为啥要上架构?
    如何将单片机变量“钉”在Standby RAM中?
    又遇到一起单片机死机案例!
    6个月从零掌握单片机开发!软硬件全流程实战,配套开发板+项目驱动教学!
    Copyright © 2025 成都区角科技有限公司
    蜀ICP备2025143415号-1
      
    川公网安备51015602001305号