使用WIFI连接进行OTA升级的stm32f103系列芯片远程升级方法

stm32 远程升级 OTA升级 使用WIFI连接升级
芯片 stm32f103系列
升级方式:wifi模块?自建服务器
升级文件为BIN文件,需要使用配套的exe文件将原来的bin文件内的数据,每隔128个字节进行crc16检验,并添加到后面。
单片机下载后,每下载130个字节便检验一下数据,让升级变得稳定可靠。
升级过程:
用户程序里面每隔一定时间控制网络模块使用http的GET指令获取云端info文件
然后从文件里面获取服务器里面的固件程序版本和固件程序下载地址等信息
如果与自身版本号对比不一致,就把固件程序下载地址写入flash,然后设置更新标志,重启,
重启执行BootLoader以后,BootLoader程序检测到更新标志,则提取固件下载的地址,
然后使用http下载程序文件,把程序文件写入flash,完成升级.

资料包含bootloader源码一份,bin文件crc检验处理的exe文件一份,操作说明一份

STM32远程OTA升级技术分析

概述

随着智能家居的普及,智能硬件的应用越来越广泛。而对于一个智能硬件设备的升级,远程OTA升级成为一种非常重要的方式。本文将针对STM32系列芯片,介绍如何使用WIFI连接实现远程OTA升级,并提供详细的升级流程和技术分析。文中所使用的芯片为STM32F103系列。

技术要点

升级方式:WIFI模块?自建服务器

在STM32芯片上使用WIFI连接进行OTA升级,一般有两种实现方式:使用WIFI模块和自建服务器。两种方式各有优缺点。使用WIFI模块可以快速实现OTA升级,但需要向WIFI模块发送指令进行配置,并且需要占用芯片的SPI口。而自建服务器则需要自行搭建服务器,并在芯片中实现相应的网络协议,相对复杂,但可以更好地掌控升级的安全性和数据稳定性。

升级文件格式:BIN文件

升级文件格式为BIN文件,需要使用配套的exe文件将原来的BIN文件内的数据,每隔128个字节进行CRC16检验,并添加到后面。这样,单片机下载后,每下载130个字节便检验一下数据,以保证升级的稳定性和可靠性。

升级过程流程

用户程序里面每隔一定时间控制网络模块使用http的GET指令获取云端info文件,然后从文件里面获取服务器里面的固件程序版本和固件程序下载地址等信息。如果与自身版本号对比不一致,就把固件程序下载地址写入flash,然后设置更新标志,重启。重启后,执行BootLoader以后,BootLoader程序检测到更新标志,则提取固件下载的地址,然后使用http下载程序文件,把程序文件写入flash,完成升级。

技术实现细节

为了保证升级的成功率和数据稳定性,需要注意以下几个方面的实现细节:

1.升级文件的校验:由于网络传输存在丢包和错包等情况,因此需要在升级文件的校验方面进行一些处理。在每隔128个字节进行CRC16检验的基础上,还可以添加MD5校验,增强升级文件的安全性和可靠性。

2.升级数据的大小:为了保证升级数据的稳定性和安全性,升级数据的大小需要逐步递增,一般每次增加130字节左右。在升级失败后,可以通过记录当前的升级数据大小,下次升级时从失败点继续进行。

3.升级文件的备份:为了避免意外情况导致的数据丢失,可以在每次升级前将原程序备份至另外一个flash区域,以备不时之需。

4.升级成功标志的设置:为了避免重复升级,需要设置升级成功标志,以确保每次升级只进行一次。

综上所述,远程OTA升级是一种非常重要的技术,可以实现设备的快速迭代和更新。在实际应用中,需要注意实现细节和升级流程,从而提高升级的成功率和稳定性。这里提供了一种基于STM32芯片的WIFI连接方式的技术分析,希望对大家有所帮助。

相关代码,程序地址:http://lanzouw.top/677901849845.html
 

作者:wUrqNCJW

物联沃分享整理
物联沃-IOTWORD物联网 » 使用WIFI连接进行OTA升级的stm32f103系列芯片远程升级方法

发表评论