【经验】如何利用艾拉比差分技术升级STM32的APP固件?

2022-03-01 艾拉比
开发板,MCU,STM32,BC28 开发板,MCU,STM32,BC28 开发板,MCU,STM32,BC28 开发板,MCU,STM32,BC28

随着互联网的发展和无线通讯网络的普及,低功耗窄带通讯为物联网带来了更多机会。凭借着其覆盖范围广、功耗低等特点,获得了广泛的关注与重视,不断加速实现物与物之间建立智能化、数据化的联系。借助通讯和云计算的高速发展,越来越多的设备开始物联网化演进,大规模部署后的物联网设备面临着在线升级(OTA)的需求,从而解决系统更新,产品功能迭代、漏洞修复、和安全防护等问题。


这其中的在线升级功能,需要使用 OTA (Over-the-Air) 技术 。简单地说,OTA 就是通过网络来升级手中的智能设备。由于大多数物联网终端受硬件资源、功耗、带宽等限制,传统的整包升级方式已经越来越难以满足客户需要,而稳定安全的差分升级在OTA这一技术领域中显得尤为重要。尤其是NB-IOT这类窄带通信技术,大多数应用都是由低功耗小资源的MCU+NB-IOT通讯模块实现的,NB-IOT通讯模块实现联网功能,设备应用运行在MCU上,使用差分OTA升级,可以实现减低功耗、减少硬件资源消耗、提升升级体验、加速下载过程,提供更好的安全性和可靠性,并且有效防止大量设备下载时候对基站等设施的冲击。艾拉比提供的基于MCU+NB-IOT的差分技术方案已经广泛应用在如门锁、手表、定位器、路灯控制器、共享停车位、烟感和表计等领域。


下面以移远BC28+STM32L053C8为例,来演示如何利用艾拉比的差分技术通过NB网络升级STM32的APP固件。我们将从升级方案的设计,设备操作流程两个部分来详细讲解这个方案:

01.升级方案的设计

下图展示了这个升级方案的软件框架:

\

从上图可以看到STM32里中需要有三个部分的修改:

1. STM32L053C8的APP部分,需要集成与OTA服务器通信的程序,我们称为Update Controller,简称UC。

2. STM32L053C8的bootloader部分,需要集成差分升级算法程序,我们称为Update Agent,简称UA。

3. STM32L053C8上需要规划处一定的存储空间,用来存储下载的差分包。 从设计的软件框架来看升级将分为两个阶段:下载差分包阶段和升级上报阶段。在窄带网络下,我们以LWM2M协议为基础来和OTA服务器进行交互通信,设备与服务器端建立的是COAP连接。


我们先来详细分解下载阶段的流程:


从上图中我们可以看到整个下载差分包的流程分以下几个步骤:

1. 初始化模组, STM32向BC28发送初始化的AT指令。

2. STM32发送AT指令给BC28,建立网络链接。BC28返回建立网络的结果给STM32。

3. STM32透过BC28,向OTA服务器发起注册请求。OTA服务器透过BC28下发注册结果,STM32将这些注册信息保存下来。

4. STM32透过BC28,向OTA服务器发起检测版本的请求。OTA服务器透过BC28下发新版本的信息,这其中包含了差分包的下载地址。

5. STM32基于得到的下载地址,透过BC28向OTA服务器发送下载差分包请求。OTA服务器会根据请求将差分包分段透过BC28下发给STM32,STM32在收到后将这些数据存储在差分包存储区域。

6. STM32在下载完差分包并经过校验后,透过BC28上报下载升级包的结果给到OTA服务器。OTA服务器透过BC28下发上报结果。

7. STM32发送指令给BC28关闭网络连接,BC28返回关闭网络连接结果。

8. STM32进行软重启,进入bootloader。


接下来升级流程就进入了下一个阶段,我们先来看流程图:

从上图中我们可以看到整个升级上报的流程分以下几个步骤:

1. STM32在bootloader中运行UA程序,完成差分升级,升级完成后重启。

2. STM32向BC28发送初始化的AT指令,BC28向STM32返回初始化结果。

3. STM32发送AT指令给BC28,建立网络链接。BC28返回建立网络的结果给STM32。

4. STM32透过BC28,向OTA服务器发起注册请求。OTA服务器透过BC28下发注册结果,STM32将这些注册信息保存下来。

5. STM32透过BC28,向OTA服务器上报升级结果。OTA服务器透过BC28下发升级上报结果。

6. STM32通知BC28关闭网络连接,至此整个升级流程结束。


通过对整个方案以及两个阶段流程解析,我们可以看到,在窄带网络下的差分升级,对于这种网络特性,对差分包的大小以及差分包传输的稳定性需要有一定的保障,所以在下载差分包的时候,我们需要进行分段下载,并且需要对每段数据进行相应手段的校验。下面我们从设备端的操作,来看一下整个升级的流程。


02、设备操作流程

从下图我们看到,左边的开发板是STM32L05C38,右边的开发板是移远的BC28,我们将通过串口线将两个设备连接在一起进行升级操作。STM32开发板上的蓝色按钮的功能是发起整个升级流程,黑色按钮的功能是重启STM32开发板,下面我们开始操作。

首先我们按下STM32开发板上的蓝色按钮,发起升级流程,这个时候STM32开发板屏幕上会有如下显示:

此时,我们还可以通过连接到PC上的debug工具,可以看到相应log,这段动画显示的是STM32从初始化到检测版本整个过程的log。

在检测完成后,STM32自动进入下载差分包阶段,下面两张图是STM32进入下载差分包流程时的屏幕进度显示:

这个阶段,我们也可以清晰的从PC的debug工具里看到整个下载流程:

在下载成功后,我们手动按一下STM32开发板上的黑色按键,重启STM32开发板,让设备进入bootloader开始升级,下面两张图是STM32开发板在升级时的屏幕显示:

完成升级后,STM32开发板重启重新进入APP,这个时候会自动将这次升级的结果进行上报,下图是STM32开发板在进行升级上报时候的屏幕显示:

同样,我们也可以在PC上的debug工具里看到整个上报流程:

从STM32开发板的屏幕上看到完成这个流程后,STM32开发版本的固件从1.0成功的升级到了1.1,至此整个升级完成。

  • +1 赞 0
  • 收藏
  • 评论 0

本文由红烧个排骨转载自艾拉比,原文标题为:【艾拉比】基于移远BC28的STM32+NB-IOT的OTA案例分享,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】解析MCU的4种时钟配置以及外接晶振的选择——以STM32F4系列MCU为例

对于MCU时钟配置及外接晶振选择许多人会存在困惑,下面瑞纳捷为您一一进行解答!为了提高系统性能,同时降低功耗,MCU通常提供四种时钟——高速外部时钟、高速内部时钟、低速外部时钟、低速内部时钟。有关晶振选择举例,则以STM32F4系列MCU为例。

设计经验    发布时间 : 2022-06-30

【应用】艾拉比提供芯片级和整机级OTA解决方案,助力智能烟感实现大数据分析处理等要点

面向不同的智能烟感行业客户,以及差异化的应用场景,艾拉比可提供多样化的OTA芯片级和整机级解决方案,解决无法实现大数据分析处理、信息描述不准确、以及芯片各自实现OTA升级方案,碎片化严重、升级容错率低等问题。

应用方案    发布时间 : 2022-08-11

【应用】艾拉比推出智能表计OTA解决方案,仅需为MCU烧录ELB固件,搭配对应模块即可实现升级

面向不同的智能表计行业客户,以及差异化的应用场景,艾拉比可提供多样化的OTA解决方案:标准化产品UB(Upgrade Bootloader)的芯片级解决方案和整机级升级OpenFOTA方案。

应用方案    发布时间 : 2022-08-10

【技术】中移芯昇MCU芯片CM32M101A开发板的使用方法

CM32M101A是中移芯昇推出的首颗MCU芯片。目前已在智能门锁、红外测温仪、工业衣服裁剪机器和挂件运输系统、打印机喷头控制板、车联网北斗数据安全终端、智能双路充电插座相关场景进行应用方案拓展。 

技术探讨    发布时间 : 2022-11-20

Silicon Labs的开发板是否包含MCU的编程器?是否可以从Simplicity Studio以外的其他软件进行编程?

STK有一个板载编程器,入门套件可与许多第三方工具配合使用。Silicon Labs使用了IAR和Keil工具,没有任何问题。Simplicity Studio IDE具有启动用户选择的第三方工具的图标,所以用户可以使用Silicon Labs的程序或其他选项。

技术问答    发布时间 : 2019-11-26

有谁做过IP网络消防报警终端?24V和0V报警信号怎么通过一个拨码开关切换输入到MCU单片机STM32检测啊? 成本低一点

目前解决方法只有电阻分压和光耦隔离两种,MCU推荐您中科芯,可以pin2pin替换stm32,参考链接:中科芯(CETC)32位通用MCU与ST替换对照表

技术问答    发布时间 : 2020-06-01

STM32H745/755 and STM32H747/757 advanced Arm-based 32-bit MCUs Reference manual

型号- STM32H745,STM32H755,STM32H7X7,STM32,STM32H757G,STM32H747G,STM32H747,STM32H757,STM32H757XX,STM32H757XI,STM32H7X5,STM32H755XI

用户指南  -  ST  - Rev 3  - 27-Feb-2020 PDF 英文 下载

数据手册  -  ST  - Rev 2  - December 2017 PDF 英文 下载

用户指南  -  OLIMEX  - Revision Initial  - September 2011 PDF 英文 下载

Discovery kit with STM32G474RE MCU User manual

型号- STM32CUBEG4,B-G474E-DPOW1,STM32G474RET6,STM32G474RE

用户指南  -  ST  - Rev 2  - 8-Sep-2020 PDF 英文 下载

STM32H742xI/G STM32H743xI/G 32-bit Arm® Cortex®-M7 480MHz MCUs, up to 2MB Flash, up to 1MB RAM, 46 com. and analog interfaces Datasheet

型号- STM32H743BI,STM32H743XIT6TR,STM32H742IG,STM32H743IG,STM32H742AG,STM32H743AG,STM32H742II,STM32H743II,STM32H742ZG,STM32H743ZG,STM32H742ZI,STM32H742XG,STM32H742AI,STM32H743AI,STM32H743VI,STM32H742XI/G,STM32H743ZI,STM32H743XG,STM32H742XI,STM32H742VG,STM32H743XI,STM32H743VG,STM32H742VI,STM32H742BG,STM32H743BG,STM32H742BI,STM32H743XI/G

数据手册  -  ST  - Rev 9  - 4-Mar-2022 PDF 英文 下载

用户指南  -  OLIMEX  - Revision C  - April 2012 PDF 英文 下载

STM32H745I-DISCO STM32H750B-DK Discovery kits with STM32H745XI and STM32H750XB MCUs Data brief

型号- STM32H745,STLINK-V3E,STM32H745XIH6,STLINK-V3,STM32,STM32H745I-DISCO,STM32H745XI,STM32H750B-DK,STM32H750XBH6,STM32H750XB,STM32H7

数据手册  -  ST  - Rev 2  - April 2019 PDF 英文 下载

Managing memory protection unit in STM32 MCUs

型号- STM32L1,STM32L4,STM32L5,STM32F2,STM32F1,STM32F4,STM32F3,STM32H7,STM32F7,STM32F21XXX,STM32WL,STM32,STM32L1XXXX,STM32H7 SERIES,STM32F7 SERIES,STM32G0 SERIES,STM32F1 SERIES,STM32F2 SERIES,STM32G4 SERIES,STM32L0,STM32F4 SERIES,STM32L4+,STM32F3 SERIES,STM32G0,STM32WB,STM32L0 SERIES,STM32L4+ SERIES,STM32G4,STM32F20XXX,STM32U5 SERIES,STM32L1 SERIES,STM32WL SERIES,STM32L5 SERIES,STM32U5,STM32F10XXX,STM32WB SERIES,STM32L4 SERIES

应用笔记或设计指南  -  ST  - Rev 5  - 20-Sep-2021 PDF 英文 下载

STM32-E407 development board USER’S MANUAL

型号- STM32-E407,IMX233-STM32-E407

用户指南  -  OLIMEX  - revision L  - October 2021 PDF 英文 下载 查看更多版本

展开更多

电子商城

查看更多

品牌:瑞纳捷

品类:高性能防复制加密芯片

价格:¥0.8000

现货: 1,234,500

品牌:瑞纳捷

品类:MCU

价格:

现货: 740,897

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:武汉芯源

品类:通用MCU

价格:¥7.0625

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.6275

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥4.8025

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.6275

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥4.8025

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.0625

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥5.6500

现货: 300,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:恒烁

品类:MCU

价格:¥1.0800

现货:154,600

品牌:RENESAS

品类:MCU

价格:¥15.6605

现货:140,216

品牌:ST

品类:单片机(MCU)

价格:¥14.2871

现货:114,259

品牌:MICROCHIP

品类:MCU

价格:¥6.6000

现货:100,000

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥7.3800

现货:76,715

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥15.3000

现货:75,000

品牌:MICROCHIP

品类:MCU

价格:¥9.0000

现货:64,841

品牌:Sonix

品类:MCU

价格:¥0.8500

现货:51,104

品牌:ST

品类:MCU

价格:¥6.5000

现货:51,000

品牌:MICROCHIP

品类:MCU

价格:¥5.7360

现货:50,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

最小起订量: 1000 提交需求>

MCU烧录/Flash烧录/CPLD烧录

可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。

最小起订量: 1pcs 提交需求>

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面