打印

OTA原理详解

[复制链接]
1683|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beam92|  楼主 | 2017-3-1 15:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
云端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值校验,确认文件传输正确。
  • 更新:有主、备两个区域。替换进行更新,确认如果更新失败,程序仍然可以从另一区域正常启动。



相关帖子

沙发
keer_zu| | 2017-3-1 16:24 | 只看该作者
可以向指定的设备推送吗?
任何设备可以主动向其他设备推送吗?

使用特权

评论回复
板凳
beam92|  楼主 | 2017-3-1 17:07 | 只看该作者
keer_zu 发表于 2017-3-1 16:24
可以向指定的设备推送吗?
任何设备可以主动向其他设备推送吗?

可以的,但是推送不是在设备进行的,是在云端进行推送的

使用特权

评论回复
地板
keer_zu| | 2017-3-1 19:14 | 只看该作者
beam92 发表于 2017-3-1 17:07
可以的,但是推送不是在设备进行的,是在云端进行推送的

设备向云端发布,云端再向订阅的设备推送。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

192

主题

234

帖子

6

粉丝