FUOTA = Firmware Update Over The Air, 译为“无线固件更新”,这项功能将为工程人员的升级及调试带来极大的便利。1 l/ b$ K3 `4 x |; o- w + D3 Q! \- @! ~, F, z & j9 \% G' G- ~/ r随着正在和将要发生的物联网规模化落地,“无线连接”被广泛采用,因为可以带来更多更具想象力的应用场景,无线升级(FOTA:Firmware on the Air,亦称作空中升级)成为嵌入式设备的必备功能之一。 “无线连接”可以用两个字符概括表达:W & B,W = WIRELESS, B=BLE。这就是STM32WB后两个字符的由来。要“连接”,就会涉及到很多协议,比如BLE、Thread、Zigbee,它们在STM32WB芯片内部是如何布局?我们需要复盘一下STM32WB的双核架构。 G9 M; f ^" q8 ?- P; h STM32的双核结构 STM32WB是一个系统芯片方案,即只有一颗芯片,但包含了两颗独立内核,用以实时执行任务。相比单核的无线MCU使用的分时共享,STM32WB通过双核的分配和协同升级为实时执行,因而缩短了任务执行时间,达到降低功耗、延长电池续航时间的效果;双核的架构还提高了开发的灵活度,使开发更为简易快速。 2 }$ ]. t, F3 g% B. C4 p4 [7 J! r! E% z/ _" e% R FUS是什么?因何而来? 0 {" l2 X; h( E; J; c5 ?7 }# k( l6 i% kSTM32WB的两个内核具有不同的使用功能,M0+跑协议栈,M4跑用户应用。由于支持多种协议栈,因此芯片出厂前并未烧录协议栈,而是放了一个FUS,让用户自主选择并烧录协议栈。FUS,Firmware Update Service之意,是专门为 Firmware 升级来服务的一段特殊程序,但需要特别指出的是,此处的“Firmware”是专指由M0+内核运行的FUS本身和RF协议栈,不包括M4内核上运行的用户应用程序。( R# `5 n3 @" x- r1 `; G RF协议栈包含在STM32CubeWB包里,用户在拿到WB芯片后,最通常的做法应是:使用最新版本的STM32CubeWB固件包里,最新的RF协议栈和最新的FUS同步更新。 * W6 q5 J: B& q# d STM32WB的无线固件更新功能 $ C6 ~7 l# Y. K* l6 x我们更新STM32WB芯片里的RF协议栈和用户应用程序,可以有四种方式,如下图。 ▲ 四种更新方式图解 近程/有线方式两种:一是通过USB通信接口,搭配STM32CubeProgrammer上位机软件更新;二是通过JTAG/SWD调试接口,搭配STLINKUtility使用。 另外一大类就是使用BLE接口的空中升级方式,即远程/无线方式(FUOTA)。如果STM32WB芯片里面已经有合适的BLE 协议栈和带BLE OTA功能的bootloader程序;那么即可通过手机或者装有STM32CubeProgrammer的上位机作为OTA客户端发起OTA请求,从而更新RF协议栈或新版的用户应用程序。 + m2 Z& R' v7 e7 ~3 ? FUOTA具体如何操作呢?以下七节视频为你解答,并带你实际操作体验FUOTA的便利:(点击蓝字进入视频)
|
收藏 |
好东东 |
4月25日培训|基于ST 双核多协议STM32WB55的Matter方案开发
实战经验 | 关于STM32WB OTA 速率提升引发的讨论
基于STM32WB55的配置串口打印Debug经验分享
基于创建STM32WBA BLE_Custom工程经验分享
来看直播了,就在明天 | STM32 Matter 解决方案,轻松实现智能家居无缝连接
基于STM32WB55开发之套件概述(1)
基于STM32WB55开发之监测STM32WB连接状态(1)
基于STM32WB55开发之修改蓝牙地址(2)
STM32WB基于Custom Template实现客户定制BLE私有协议
如何基于STM32WB一次性烧写FUS+STACK+APP