设备固件升级概览


EnOS 提供面向设备的固件 OTA(Over-the-Air)升级服务,该服务支持云端对设备的固件版本管理和升级消息推送能力,以满足设备部署后的缺陷修复和功能升级等需求。

固件版本全生命周期管理

你可以通过 EnOS 管理控制台 实现固件版本全生命周期管理,新建固件版本并设定升级策略。云端自动对选中的设备推送升级请求,记录升级进度和结果和删除固件版本。EnOS 可以将升级请求推送到已筛选或选定的设备,并记录其升级进度和结果。设备可以请求对 EnOS 进行 OTA 升级,搜索可用的新固件,然后进行 OTA 升级。


通过 EnOS 管理固件版本生命周期的过程如下:

../../_images/ota_lifecycle_management.png

资源准备

设备文件存储资源

为 OTA 使用设备文件存储服务前,需确保 OU 已经通过 EnOS 管理控制台 > 资源管理 页面申请 设备文件存储 资源。有关申请资源的详细信息,参见 设备文件存储

设备端 OTA 升级 SDK

提供设备端 OTA 升级 SDK,封装版本号上报和升级的相关消息接口,设备应自行实现具体的固件切换逻辑,并上报升级后的固件版本号。

固件 OTA 升级流程

EnOS 支持以下固件升级方式:

  • 云端主动推送升级:云端对设备端发起强制升级,要求指定设备升级到指定的版本号。
  • 设备端请求升级:由设备所有者或者运维人员判断是否要进行升级,只有确定升级时设备才会向云端发起升级请求。

云端主动推送升级

云端主动推送升级流程如下图所示:

../../_images/cloud_pushed_ota_process.png


云端创建批量升级任务后,根据升级策略维护待升级的设备范围,按照升级序列将升级请求推送至设备:

  • 如果设备此时在线,则 EnOS 会将新固件推送到设备以开始升级过程。
  • 如果此时设备不在线,则 EnOS 会等待设备下次在线后将新固件推送到设备上。


一般情况下设备接收到请求即会进入升级流程并重启上报新版本号,但是否真的强制升级依赖于设备端的实现,开发者仍然可以对下载后的 OTA 固件增加本地确认升级逻辑,以便用户选择是否进行升级,本地确认后才会真正切换到新的固件启动区。

设备请求升级

设备请求升级流程如下图所示:

../../_images/update_upon_request_ota.png


设备主可以动请求 OTA 升级。当设备将升级请求发送到 EnOS 时,EnOS 会判断是否属于任何升级列表。如果设备可以升级,则 EnOS 会将可用的固件发送到设备。


设备主动升级增加了人工干预和确认环节,为用户提供了更大的灵活性来决定是否升级设备。

马上开始

  1. 使用 SDK 进行设备端 OTA 能力开发,了解更多
  2. 在云端添加设备固件,了解更多
  3. 小批设备进行固件升级,验证固件能否正常推送到设备端以及固件能否成功升级,了解更多
  4. 配置批量升级任务以完成符合要求的设备按照升级策略及升级方法在规定时间窗口内的升级,了解更多