OTA原理详解-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4348|回复: 0

OTA原理详解

[复制链接]
发表于 2017-3-1 15:48 | 显示全部楼层 |阅读模式
云端OTA通知推送
云端只会给当时在线设备推送;对于当时不在线,或者没升级成功的设备,云端会每天推送一次。


MCU OTA:包括下载、存储、校验、传输4个过程。
下载、存储、校验同GAgent OTA一样;
传输:通知MCU有固件传输,并分片传输给MCU,每片需要进行sum校验,传输完成后mcu需要进行md5校验。MCU成功后重启GAgent,以让GAgent重新握手获取更新后的MCU信息。


111410rpwgp7pqdsz395sx.png


MCU实现OTA流程:
  • GAgent首先检查wifi固件是否需要升级,有则进行OTA,无则进行MCU固件检查,有muc固件需要OTA则进入第二步。
  • 下载对应mcu新固件到wifi模组的flash区域。并对其做固件完整性校验(一般是MD5校验)。
  • 固件检查完成且正确,通知MCU有新固件可以给MCU OTA。
  • MCU接收到OTA信息之后,自己判断是否需要OTA,需要则发送需要OTA固件信号给GAgent,这个时候GAgent则发送固件数据给MCU。
  • MCU接收到数据之后,自行做数据处理,实现对MCU的升级。

MCU的OTA实现,数据传送师走串口大数据传送指令,协议内容可以向对应PM获取。





GAgent OTA:包括下载、存储、校验、更新4个过程。
  • 下载:获取下载链接并判断是否需要下载(硬件版本号一致,软件版本号大于当前软件版本号),进行下载,目前不支持断点续传。下载失败后不再下载。
  • 存储:下载过程中进行分片存储到flash中缓存区域。
  • 校验:进行md5值校验,确认文件传输正确。
  • 更新:有主、备两个区域。替换进行更新,确认如果更新失败,程序仍然可以从另一区域正常启动。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:41 , Processed in 0.102423 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表