物联网智能设备终端OTA远程升级方案

FOTA(Firmware Over-The-Air),即利用无线通信技术,云服务器来实现远程的固件更新,包含以下几部分内容,节点端,FOTA服务器,升级方式,文件类型.bin,升级过程管理,安全性。

1 硬件环境

设备主控为Stm32f103VE 内置ram空间64k,内置用户flash空间512k;

SIM7600 4G模块,称之为4G模块;
公司数据服务器,称之为Dserver,负责后台逻辑和协议通信;
公司文件服务器,称之为Fserver, 用于存放固件升级文件;
App 表示用户应用程序代码;
Bootloader 表示用户应用程序引导程序;

2 整体思路

  • 2.1 OTA的升级方式选择

固件原位升级 固件乒乓升级 固件冗余升级
centered 文本居中 right-aligned 文本居右 在这里插入图片描述

综上,考虑采用方案2.

2.1 stm32主flash空间划分

(1)划分4个区:
bootloader区,app1区和app2区;
(2)各区大小:
BootLoader区大小12k, app1区和app2区各自大小250k;

2.2 整体流程

出纸机在通电联网后和Dserver握手时,会上传当前MCU固件的版本号。正常工作情况下运行应用程序,接收到Dserver发过来的升级命令后,MCU将4G模块设置为http模式,然后向Fserver发送get请求数据包,之后4G模块连续从Fserver接收数据发送给MCU, MCU将接收到的数据存储到相应的APPflash存储区,整个文件接收完成之后,校验通过(待确定),置位参数区域的需要更新标志,然后stm32软件复位,bootloader将根据文件升级标志,pc跳转到app位置执行程序。

2.3 用到了4G模块有3种工作模式

  • AT指令模式;
  • 透传模式;
  • Http client模式;

3 流程图

在这里插入图片描述

4 数据通信协议格式

4.1 服务器通知设备进行固件升级

在这里插入图片描述

4.2 上报升级结果

设备升级完成后,会自动重启,连接服务器,握手时上报版本号,服务器判断,如果OTA控制台的该设备正在升级中,且上报的是升级后的版本号,那么认为升级成功;如果上报的是老版本号,认为升级失败。

5 升级文件名称格式

在这里插入图片描述
注:

  1. 升级文件软件版本号为最新版本号,设备当前软件版本只有小于最新版本才允许升级。
  2. 每次都会发布两个相同软件版本号、升级flash区域标志不同的文件。
  3. 如果当前设备软件版本号为E-x.x.x,升级对应升级flash区域标志为O的文件
    如果当前设备软件版本号为O-x.x.x,升级对应升级flash区域标志为E的文件

这个只是草稿版本供参考,后续优化,分享代码,用到了文件CRC校验,工具已经上传。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章