华为云计算 云知识 玩转物联网设备软件升级
玩转物联网设备软件升级

华为云IoT 物联网平台 :软件(Software)一般分为系统软件和应用软件,系统软件实现设备最基本的功能,比如编译工具、系统文件管理等;应用软件可以根据设备的特点,提供不同的功能,比如采集数据、数据分析处理等。

软件升级又称为SOTA(SoftWare Over The Air),是指用户可以通过OTA的方式支持对LwM2M协议和MQTT协议的设备进行软件升级。基于LwM2M协议的产品模型,软件升级遵循的协议为PCP协议(查看PCP协议介绍),设备侧需要遵循PCP协议进行软件升级的适配开发,适配方法请参考设备侧适配开发指导;基于MQTT协议的产品模型,不校验软件升级协议类型。

LwM2M协议设备软件升级流程

 

LwM2M协议SOTA升级流程的详细说明:
1~2.  用户在设备管理服务的控制台上传软件包,并在控制台或者应用服务器上创建软件升级任务。
3.  LwM2M设备上报数据,平台感知设备上线,触发升级协商流程。(超时时间为24小时)
4~5.  物联网平台向设备下发查询设备软件版本的命令,查询成功后,物联网平台根据升级的目标版本判断设备是否需要升级。(第4步等待设备上报软件版本,超时时间为3分钟)
  • 如果返回的软件版本信息与升级的目标版本信息相同,则升级流程结束,不做升级处理。
  • 如果返回的软件版本信息与升级的目标版本信息不同,则继续进行下一步的升级处理。
6.  物联网平台向设备订阅软件升级的状态。
7~8.  物联网平台查询终端设备所在的无线信号覆盖情况,获取小区ID、RSRP(Reference Signal Received Power,参考信号接收功率)和SINR(Signal to Interference Plus Noise Ratio,信号干扰噪声比)信息。(等待上报无线覆盖等级和小区ID,超时时间为3分钟左右)查询成功:则根据如下方式计算可同时升级的并发数计算,并按照步骤10进行处理。
  • 如下图所示,如果设备的RSRP强度和SINR强度均落在等级“0”中,则同时可以对该小区的50个相同信号覆盖区间的设备进行同时升级。
  • 如果设备的RSRP强度和SINR强度分别落在等级“0”和“1”中,则以信号较弱的等级“1”为准,则只能同时对该小区的10个设备进行升级。
  • 如果设备的RSRP强度和SINR强度分别落在等级“1”和“2”中,则以信号较弱的等级“2”为准,则只能同时对该小区的1个设备进行升级。
  • 如果设备的RSRP强度和SINR强度不在该3个等级范围内,且均可以查询到,则按照信号最弱覆盖等级“2”处理,则只能同时对1个设备进行升级。
  • 说明:

    如果用户在软件升级中发现同时进行升级的设备数较少,则可以联系当地运营商检查和优化设备所在小区的无线覆盖情况。

  • 查询失败:则按照流程9进行处理。
9. 物联网平台继续下发查询小区ID信息的命令,获取终端设备所在的小区ID信息。
  • 如果查询成功:物联网平台支持同时对该小区的10个相同情况的设备进行软件升级。
  • 如果查询失败:则升级失败。
10~12. 物联网平台通知设备有新的软件包版本,设备启动软件包的下载。软件包的下载按照分片的方式进行下载,支持断点续传功能,通过软件包分片中携带的“versionCheckCode”确定是否属于同一个软件包。下载完成后,设备知会物联网平台软件包已下载完毕。(第11步超时时间为60分钟)13~14. 物联网平台向设备下发升级的命令,终端设备进行升级操作,升级完成后终端设备向物联网平台反馈升级的结果。(等待设备上报升级结果和升级状态,超时时间为30分钟)15. 物联网平台向控制台/应用服务器通知升级的结果。

MQTT协议设备软件升级流程

MQTT协议SOTA升级流程的详细说明:

1~2.  用户在设备管理服务的控制台上传软件包,并在控制台或者应用服务器上创建软件升级任务。

3.  平台感知设备是否在线,当设备在线时立即触发升级协商流程。当设备不在线时,等待设备上线订阅升级Topic,平台感知设备上线,触发升级协商流程。(等待设备上线时间25小时以内)

4~5.  平台向设备下发查询设备软件版本号的命令,查询成功后,物联网平台根据升级的目标版本判断设备是否需要升级 。(第5步超时时间3分钟)

  • 如果返回的软件版本信息与升级的目标版本信息相同,则升级流程结束,不做升级处理,升级任务置为成功。
  • 如果返回的软件版本信息与升级的目标版本信息不同,且该版本号支持升级,则继续进行下一步的升级处理。

6~7. 物联网平台下发下载包URL访问这里,token及包的相关信息,用户根据下载包URL和token通过HTTPS协议来下载软件包,24小时后token无效。(下载包和升级状态上报超时时间为24小时)

8.  终端设备进行下载包升级操作,升级完成后终端设备向物联网平台反馈升级的结果。(设备升级完成后返回的版本号和设置的版本一致为成功)

9.  物联网平台向控制台/应用服务器通知升级的结果。

上传软件包
  1. 访问 设备接入服务 ,单击“管理控制台 ”进入设备接入控制台。
  2. 选择设备 > 软固件升级
  3. 选择“软件列表”页签,单击“上传软件”。
  4. 在弹出的页面中,按照如下信息填写参数后,单击“确认”上传软件包。

在上传软件包时,需要填写如下信息:

参数名称

说明

软件文件

加载软件包,软件包名不能带中文字符。

软件版本

软件包的版本。(设备升级完成后需要上报升级版本号,平台检查设备上报的版本号是否与此参数一致,一致为升级成功。)

选择产品

选择对应设备的产品模型

支持设备源版本

手动输入,如需输入多个,可以在输入完一个版本后,单击“回车”按键,再输入下一个。

软件包分片大小

终端下载软件包的每个分片的大小,单位为byte。取值范围:32~500,默认值500。

说明:目前平台仍然支持上传已签名的软件包,但无法修改公钥。如果您上传的是签过名的软件包,平台会使用之前上传的公钥对签名进行校验。如果您之前没有上传过公钥或者签名的私钥发生变化,签名会校验失败从而导致软件包上传失败。

后续平台将下线上传签名软件包功能,为了保障您能够正常使用软件升级功能,请直接上传需要下发给设备的文件。

批量设备软件升级用户对批量设备进行软件升级有两种方式:
  1. 应用服务器通过调用的“创建软件升级任务”API接口,创建批量设备的升级任务,详情请参考创建批量任务
  2. 通过控制台,创建批量设备的软件升级任务。
下面将重点介绍通过控制台创建批量设备的软件升级任务。

1. 访问设备接入服务,单击“管理控制台 ”进入设备接入控制台。

2. 在左侧导航栏选择"设备 > 软固件升级",单击“升级任务”。

3. 选择“软件升级”页签,单击“新建任务”按钮,进入新建软件升级任务页面。

4. 设置“任务信息”,填写任务名称、执行时机、启用重试。

启用重试后,可以设置重启次数和重启间隔。重启次数建议设置为2次,重启间隔设置为5分钟,即设备升级失败后,隔5分钟后会进行升级重试。

5. 选择需要升级的软件包。

6. 选择需要升级的设备或者设备群组,然后单击“立即创建任务”。

设备群组可以参考群组与标签创建需要升级的设备群组,并绑定对应的设备。

7. 创建完批量升级任务后,可以在软件升级任务列表中查看批量任务的执行结果。单击对应任务"查看"按钮,可以在“执行详情”界面查看每个设备的升级结果。

说明:如果升级任务正在执行中,是不允许删除任务的,如需删除,请先在任务列表中,手动停止任务后,再删除升级任务。
上一篇:华为云视频直播服务优点 下一篇:鲲鹏高校训练营-深圳大学&鲲鹏联合出品

智能边缘平台 IEF

智能边缘平台(Intelligent EdgeFabric)是基于云原生技术构建的边云协同操作系统,可运行在多种边缘设备上,将丰富的AI、IoT及数据分析等智能应用以轻量化的方式从云端部署到边缘,满足用户对智能应用边云协同的业务诉求