FOTA(Firmware Over-The-Air),即利用无线通信技术,云服务器来实现远程的固件更新,包含以下几部分内容,节点端,FOTA服务器,升级方式,文件类型.bin,升级过程管理,安全性。
1 硬件环境
设备主控为Stm32f103VE 内置ram空间64k,内置用户flash空间512k;
SIM7600 4G模块,称之为4G模块;
公司数据服务器,称之为Dserver,负责后台逻辑和协议通信;
公司文件服务器,称之为Fserver, 用于存放固件升级文件;
App 表示用户应用程序代码;
Bootloader 表示用户应用程序引导程序;
2 整体思路
固件原位升级 | 固件乒乓升级 | 固件冗余升级 |
---|---|---|
综上,考虑采用方案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 升级文件名称格式
注:
- 升级文件软件版本号为最新版本号,设备当前软件版本只有小于最新版本才允许升级。
- 每次都会发布两个相同软件版本号、升级flash区域标志不同的文件。
- 如果当前设备软件版本号为E-x.x.x,升级对应升级flash区域标志为O的文件
如果当前设备软件版本号为O-x.x.x,升级对应升级flash区域标志为E的文件