您的位置:首页 > 大数据 > 物联网

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

2020-03-06 18:30 537 查看

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

1 硬件环境

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

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

2 整体思路

  • 2.1 OTA的升级方式选择

固件原位升级 固件乒乓升级 固件冗余升级

综上,考虑采用方案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校验,工具已经上传。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
IOT技术栈 发布了42 篇原创文章 · 获赞 15 · 访问量 3904 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: