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

机智宝 发表于 2017-3-1 15:48

OTA原理详解

云端OTA通知推送
云端只会给当时在线设备推送;对于当时不在线,或者没升级成功的设备,云端会每天推送一次。


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





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值校验,确认文件传输正确。
[*]更新:有主、备两个区域。替换进行更新,确认如果更新失败,程序仍然可以从另一区域正常启动。
[*]


页: [1]
查看完整版本: OTA原理详解