第5周学习云连接,学习链接:https://www.stmcu.com.cn/ecosystem/app/cloud;我学习的是远程固件升级,链接是:https://www.stmcu.com.cn/ecosystem/app/cloud3
首先学习远程固件升级的概念:英文缩写FOTA,全称是:Firmware Over-The-Air;利用无线技术,利用云服务来实现远程的设备固件更新。
为什么要进行远程固件升级呢?原因是:之前的产品装到现场,无论是修复bug,还是增加功能,都需要升级程序;以前的做法都需要安排人员到现场,打开设备外壳,拿出板子,然后通过调试接口或串口,连接上位机写入程序。这样又麻烦,成本也高。远程固件升级就解决了这种问题,尤其是现在物联网技术非常成熟,设备都具有上网能力,完全可以利用这个功能,实现远程的设备固件更新,不用到现场,不用开盖,设备自动升级,对于设备厂家和用户来说,都是节省成本、缩短问题解决时间的好途径。
最后就是怎么实现远程固件升级。首先,FOTA这个功能一定是由两个部分共同实现:节点端的程序和云端的升级和存储服务。节点端就是需要进行固件升级的设备。运行在节点的程序,除了原有的功能以外,还要包括一部分FOTA功能,这部分程序完成与云端服务器通信,从云端下载固件,并更新MCU固件的工作。云端的服务器能够提供固件升级版本管理,升级文件存储等服务。其次,选择一种升级方式。从存储器的划分角度可以分为:原位升级,乒乓升级,冗余升级;从升级文件的构成可以分为:全片升级,部分升级,差分升级等。
在实现远程固件升级功能中,需要考虑可靠性、安全性问题,比如被中断、数据被篡改等问题。
这次的内容还通过STM32F769探索套件举例说明如何实现远程固件升级。这个例程是通过WIFI无线的方式连接到云端的,采用的冗余升级方式。程序完成的功能有:首先与百度IoT平台建立MQTT连接。可以将开发板的状态,软件版本等信息上传到云端,并且接收云端下发的LED控制命令,新固件版本和下载地址。再根据接收到新固件下载地址,自动通过HTTP协议从对应的服务器下载新的固件。下载完成后程序通过LCD屏向用户提示可用的新版本信息,用户可以通过按键启动新固件的升级。下载和升级的过程支持固件完整性校验,一键恢复出厂默认固件。
通过这次学习,除了使用wifi配合云端进行固件升级;感觉4G直接连接设备进行固件升级也挺不错,流程处理上更简单一些。
|