查看: 527|回复: 0

[应用笔记] Lierda NB861&MB261&MB961 DFOTA应用指导

[复制链接]

77

主题

118

帖子

1403

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1403
发表于 2023-7-6 10:25:37 | 显示全部楼层 |阅读模式
  1  引言

  NB861&MB261&NB961系列模块支持固件空中差分升级(DFOTA)功能,此功能可以实现模块固件包的无线升级或降级。基于DFOTA,用户通过差分包即可实现固件升级或降级。所述差分包仅包含当前固件版本和目标固件版本之间的差异,因此大大降低了数据传输量、极大地缩短了传输时间。

  本文档主要介绍了如何通过DFOTA功能对NB861&MB261&MB961系列模块进行的固件升、降级,对中国电信IoT/AEP平台和中国移动OneNET平台进行DFOTA升级介绍。

  2  差分包生成

  本章节讲解在本地利用差分制作工具完成升级差分包的制作。

  1、打开差分包制作工具

  找到官方提供的DiffTools工具压缩包并解压,解压后文件夹目录如下图所示:
图2.1 DiffTools工具压缩包
图2.2 文件夹目录

  2. 选择需要升级的固件

  把模组目前运行的固件和即将要升级的固件,放到文件夹里,如下图所示,把模组目前运行的固件重命名为“old.pac”, 把将要升级的固件重命名为“new.pac”。
图2.3 放入升级前后的固件

  3. 生成差分包

  在文件夹上面显示的路径框中,输入“CMD”,打开命令行窗口,在对话框中输入如下命令,然后“回车”执行。

  dtools fotacreate2 --pac old.pac,new.pac,setting\fota8811.xml output.pack -d v

  “1”为旧固件名,“2”为新固件名,“3”为生成的差分包文件名。
图2.4 输入差分包生成命令

  生成差分包文件“output.pack”。
图2.5 差分包文件

  注:差分包大小最大支持103KB (106428 Bytes)。

  3  DFOTA应用指导

  3.1  中国电信AEP平台DFOTA

  本章节主要描述如何通过CTWing中国电信物联网开放平台(中国电信AEP平台)的DFOTA功能对 NB861&MB261&MB961系列模块进行升级及相关注意事项。

  AEP平台DFOTA流程如下:
  第一步:上传差分包到AEP平台
  第二步:创建DFOTA任务
  第三步:添加升级设备
  第四步:设备升级

  3.1.1  上传差分包到平台

  登录电信CTWing平台,查看“远程升级管理”下面的“固件包管理”,选择“创建固件”图标。
图3.1 固件包管理

  然后,在创建固件版本窗口填写相关信息,“固件相关产品”栏填写对应的升级模组所在的产品目录,“签名算法”选择“MD5”。
图3.2 创建固件版本

  “选择固件”栏选择之前生成的差分包文件“output.pack”,“固件版本名称”自行填写,“固件版本号”自行填写(最好是填写将要升级的固件版本),后面会用到。
图3.3 选择差分包

  填写完之后,可查看固件版本信息。
图3.4 固件版本信息

  3.1.2  创建DFOTA任务

  查看“远程升级管理”下面的“升级任务”,选择“创建任务”图标。
图3.5 点击创建任务

  然后,在创建升级任务窗口,填写相关信息,“任务名称”自行填写一个名称,“固件版本”选择填写上面创建固件版本的“固件版本号”,“重试次数”自行填写。
图3.6 创建升级任务

  创建升级任务完成。
图3.7 升级任务创建完成

  3.1.3  添加升级设备

  点击“升级设备管理”图标,在升级设备管理窗口,选择需要升级的设备名称,然后选择“加入升级”。
图3.8 升级设备管理按钮
图3.9 设备加入升级

  查看“已选择设备”,需要升级的设备已添加。
图3.10 查看已选择设备

  3.1.4  设备升级

  选择“执行升级控制”图标,开启升级任务。
图3.11 开启升级任务

  查看升级详情,升级状态为“等待升级”。
图3.12 查看升级详情

  查询模组固件的版本号,然后开始注册到电信CTWing平台,触发电信CTWing平台FOTA升级任务,开始升级,AT串口输出字符串“FOTA download start”。
图3.13 初始固件版本
图3.14 开始FOTA升级

  查看电信CTWing平台的升级状态变为“升级执行中”。
图3.15 平台侧升级状态

  查看本地AT串口输出的log信息,显示FOTA差分包的下载进度,然后下载完成之后,模组会自动复位重启。AT串口会输出“FOTA download success”表示差分包下载成功,“FOTA package check success”表示差分包校验成功,“FOTA updating. Ready to reboot”表示模组准备复位重启。
图3.16 FOTA升级成功后自动复位

  模组复位重启后,查看模组的固件版本,已经是升级后的固件版本,然后模组重新注册到电信CTWing平台,AT串口会输出“FOTA update success”。
图3.17 模组侧FOTA升级成功

  查看电信CTWing平台的升级状态变为“升级成功”。
图3.18 平台侧显示升级成功

  注:
  1、FOTA升级过程中MCU不得向模组发送任何AT指令。
  2、FOTA升级过程中需要保证模组的供电稳定,不能出现断电的现象。
  3、模组FOTA升级完成后会自动复位,复位完成后重新注册平台,模组会向平台上报升级后版本号确认是否FOTA升级成功。

  3.2  中国电信IoT平台DFOTA

  本章节主要描述NB861&MB261&MB961系列模块通过中国电信IoT平台的固件升级功能进行升级的主要步骤和注意事项。

  中国电信IoT平台DFOTA升级的主要步骤如下:
  第一步:配置平台DFOTA能力。
  第二步:生成公私密钥。
  第三步:签名固件升级包。
  第四步:上传公钥。
  第五步:上传固件升级包。
  第六步:配置平台升级任务。
  第七步:设备升级。

  3.2.1  配置平台DFOTA能力

  在DFOTA升级之前,需要确保在中国电信IoT平台上成功注册设备,且能正常收发数据。只有在设备与中国电信IoT平台进行正常通讯时,才可以进行DFOTA升级。

       请参考中国电信IoT平台官方文档完成应用的创建。创建应用时,请注意产品对应的Profile,该Profile必须包含omCapabilities能力(若未包含,请在Profile中添加如下Profile模板中的红色标记内容),否则无法向平台上传对应设备的差分固件升级包且平台无法对该设备创建固件升级任务。请联系中国电信IoT平台获取具体的Profile开发指导。
图3.19 配置固件升级能力

  3.2.2  生成公私密钥

  1、工具下载

  登陆中国电信IoT平台(https://develop.local.ct10649.com:8843/#/login),进入“系统管理”→“工具”页面,点击“离线签名工具”下载离线签名工具压缩包signtool.zip,如下图所示。
图3.20 下载离线签名工具

  2. 生成公私密钥

  解压工具压缩包,运行signtool.exe,选择“签名算法”为“ECDSA_256K1+SHA256”,输入“私钥加密口令”,例如“lierdaMB261”;点击“生成公私密钥”,将生成一对公私密钥文件private.pem和public.pem,如下图所示。
图3.21 生成公私密钥
图3.22 公私密钥文件

  3. 签名固件升级包

  将生成的output.pack重命名为output.bin,并使用压缩文件压缩为output.zip文件(签名工具要求为zip文件)。
图3.23 压缩文件

  导入私钥文件和固件进行数字签名。
图3.24 数字签名

  3.2.3  上传公钥

  进入“系统管理”→“设备管理”,选择所创建的产品名称,点击“软件库”→“公钥管理”→“上传”,上传公钥文件public.pem到中国电信IoT平台,如下图所示。注意“厂商名称”需要与Profile文件里面的厂商名称相对应。
图3.25 上传公钥

  3.2.4  上传固件包

  登陆中国 IoT 平台,进入“软件库”→“固件包管理”→“添加固件包”页面。
图3.26 添加固件包按钮

  设备类型、厂商名称、型号、协议必须与应用的Profile严格一致,否则上传差分固件升级包和DFOTA升级任务将失败。
图3.27 上传固件包

  3.2.5  配置平台升级任务

  设备->所有设备->升级设备详情->软件。
图3.28 当前固件版本
图3.29 选择升级包
图3.30 设备开始升级

  3.2.6  设备升级

  查询模组固件的版本号,然后开始注册到电信IoT平台,或向电信IoT平台发送一包数据,触发电信IoT平台FOTA升级任务,开始升级,AT串口输出字符串“FOTA download start”。
图3.31 初始固件版本
图3.32 开始FOTA升级

  查看本地AT串口输出的log信息,显示FOTA差分包的下载进度,然后下载完成之后,模组会自动复位重启。AT串口会输出“FOTA download success”表示差分包下载成功,“FOTA package check success”表示差分包校验成功,“FOTA updating. Ready to reboot”表示模组准备复位重启。
图3.33 FOTA升级成功后自动复位

  模组复位重启后,查看模组的固件版本,已经是升级后的固件版本,然后模组重新注册到电信IoT平台,AT串口会输出“FOTA update success”。
图3.34 模组侧FOTA升级成功

  查看电信IoT平台的设备详情→软件,显示当前固件版本为FOTA升级后的版本。
图3.35 平台侧显示升级成功

  3.3  中国移动OneNET平台DFOTA

  本章节主要描述如何通过中国移动OneNET平台的DFOTA功能对NB861&MB261&MB961系列模块进行升级及相关注意事项。

  DFOTA 流程如下:
  第一步:上传差分包到OneNET平台。
  第二步:关联设备。
  第三步:创建 DFOTA 任务。
  第四步:设备升级。

  3.3.1  关联设备并上传差分包

  登录移动OneNET平台后,点击左侧“OTA升级”下的“FOTA升级”,找到并点击右侧的“添加FOTA群组”图标。
图3.36 点击添加FOTA群组

  在“添加FOTA群组”界面中填写相关信息,群组类型选择正式群组,厂商名称选择利尔达,模组型号选择当前升级模组的型号,如下图所示。
图3.37 添加FOTA群组

  添加FOTA群组完成后,点击“关联设备”,选择需要进行FOTA升级的设备。
图3.38 点击关联设备

  在“关联设备”界面中,点击“未关联”,选择需要关联的设备后点击“提交修改”即可完成对需要FOTA升级的设备的关联。
图3.39 关联设备

  点击“FOTA升级”,进入“固件管理”界面。
图3.40 进入固件管理界面

  点击“添加固件版本”,输入版本号后点击“确定”。
图3.41 点击添加固件版本
图3.42 添加固件版本

  由于FOTA升级使用的是差分包进行升级,因此会出现两种情况,分别为第一次FOTA升级无初始固件版本的情况和进行过FOTA升级存在初始固件版本的情况。

  1、无初始固件版本(第一次FOTA升级)

  需要在添加固件版本时先添加一个初始固件版本号,里面可以不用上传升级包,再添加一个目标固件版本,其中加入差分升级包。
图3.43 点击添加固件版本
图3.44 添加初始固件版本号
图3.45 添加升级目标版本
图3.46 点击添加升级包
图3.47 上传差分包
图3.48 差分包上传成功

  2. 存在初始固件版本(进行过FOTA升级)

  直接添加一个目标固件版本,在“添加升级包”界面中的“初始版本”选项任选一个初始固件版本即可。
图3.49 添加升级目标版本
图3.50 点击添加升级包
图3.51 添加升级包

  至此,添加差分固件包完成。

  3.3.2  创建DFOTA任务

  点击“升级任务管理”,选择“添加升级任务”。
图3.52 点击添加升级任务

  在“添加升级任务”界面中,升级包选择选用之前添加的差分升级包,如下图所示对选项进行选择后点击添加,即可完成创建升级任务。
图3.53 选择升级包
图3.54 添加升级任务

  在升级任务管理界面中,可以看到添加的升级任务处于“升级中”的状态,点击“更多操作”中的“详情”,即可查看当前的升级状态。
图3.55 升级任务状态
图3.56 升级任务详情

  3.3.3  设备升级

  查询模组固件的版本号,然后开始注册到移动OneNET平台,触发移动OneNET平台FOTA升级任务,开始升级,AT串口输出字符串“+MIPLEVENT:0,40”,表示开始差分包下载。
图3.57 注册到OneNET平台
图3.58 FOTA升级ATLog
图3.59 重连平台上报固件版本
图3.60 模组侧FOTA升级成功

  第二次连接OneNET平台后,模组会向平台上报FOTA升级成功后的版本号,若与升级任务中添加的差分升级包的目标版本一致,则平台端会显示升级成功。
图3.61 升级任务完成
图3.62 平台侧FOTA升级成功

  以下为OneNET平台FOTA流程中的事件,可用作比对。
图3.63 FOTA升级事件注释

  4  完整流程示例

  考虑用户的使用和示例的易读性,以下示例流程删除了指令回复中的回车换行,模组返回内容需以实际为准。

  4.1  上电检查流程

  AT                              //判断模组是否上电开机成功
  AT+CPIN?                  //查询是否读到卡
  AT+CEREG?               //判断PS域附着状态,第二个参数为1或5表示附着正常
  AT+CGPADDR           //查询核心网是否已分配IP

  4.2  中国电信AEP平台DFOTA

  AT+CGMR
  223305Lierda88110206
  MB261_RAC_78X
  OK

  AT+CTM2MINIT="221.229.214.202",5683,86400,0,0
  OK

  AT+CTM2MREG                                
  OK
  +CTM2M:reg,0
  FOTA download start
  FOTA downloading ... 512 B
  FOTA downloading ... 5632 B
  FOTA downloading ... 10752 B
  FOTA downloading ... 15872 B
  FOTA downloading ... 20992 B
  FOTA downloading ... 26112 B
  FOTA downloading ... 31232 B
  FOTA downloading ... 36352 B
  FOTA downloading ... 41472 B
  FOTA downloading ... 46592 B
  FOTA downloading ... 49901 B
  FOTA download success
  FOTA package check success
  FOTA updating. Ready to reboot

  REBOOT_CAUSE_APPLICATION,0x0000,0x0
  Lierda

  AT+CTM2MINIT="221.229.214.202",5683,86400,0,0                  
  OK

  AT+CTM2MREG
  OK
  +CTM2M:reg,0
  FOTA update success
  +CTM2M:obsrv,0

  AT+CGMR
  223305Lierda881102B6
  MB261_RAC_78X
  OK

  4.3  中国电信IoT平台DFOTA

  AT+CGMR
  223305Lierda88110206
  MB261_RAC_78X
  OK

  AT+CTM2MINIT="180.101.147.115",5683,86400,0,0
  OK

  AT+CTM2MREG
  OK
  +CTM2M:reg,0
  +CTM2M:obsrv,0

  AT+CTM2MSEND=3134
  +CTM2MSEND:36183
  OK
  +CTM2M:send,0,36183
  FOTA download start
  FOTA downloading ... 512 B
  FOTA downloading ... 5632 B
  FOTA downloading ... 10752 B
  FOTA downloading ... 15872 B
  FOTA downloading ... 20992 B
  FOTA downloading ... 26112 B
  FOTA downloading ... 31232 B
  FOTA downloading ... 36352 B
  FOTA downloading ... 41472 B
  FOTA downloading ... 46592 B
  FOTA downloading ... 49901 B
  FOTA download success
  FOTA package check success
  FOTA updating. Ready to reboot

  REBOOT_CAUSE_APPLICATION,0x0000,0x0
  Lierda

  AT+CTM2MINIT="180.101.147.115",5683,86400,0,0
  OK

  AT+CTM2MREG
  OK
  +CTM2M:reg,0
  +CTM2M:obsrv,0
  FOTA update success

  AT+CGMR
  223305Lierda881102B6
  MB261_RAC_78X
  OK

  4.4  中国移动OneNET平台DFOTA

  AT+CGMR
  223305Lierda88110206
  MB261_RAC_78X
  OK

  AT+MIPLCREATE
  +MIPLCREATE:0
  OK

  AT+MIPLADDOBJ=0,3200,1,"1",1,0
  OK

  AT+MIPLOPEN=0,86400,30
  OK
  +MIPLEVENT:0,1
  +MIPLEVENT:0,2
  +MIPLEVENT:0,4
  +MIPLEVENT:0,6
  +MIPLOBSERVE:0,63116,1,3200,0,-1
  +MIPLDISCOVER:0,63118,3200
  +MIPLEVENT:0,40
  +MIPLDISCOVER:0,63118,3200
  +MIPLDISCOVER:0,63118,3200
  +MIPLEVENT:0,42
  +MIPLEVENT:0,43

  REBOOT_CAUSE_APPLICATION,0x0000,0x0
  Lierda

  AT+MIPLCREATE                  
  +MIPLCREATE:0
  OK

  AT+MIPLADDOBJ=0,3200,1,"1",1,0                                          
  OK

  AT+MIPLOPEN=0,86400,30
  OK
  +MIPLEVENT:0,1
  +MIPLEVENT:0,2
  +MIPLEVENT:0,4
  +MIPLEVENT:0,6
  +MIPLEVENT:0,48
  +MIPLOBSERVE:0,19567,1,3200,0,-1
  +MIPLDISCOVER:0,19568,3200

  AT+MIPLDISCOVERRSP=0,19568,1,4,"5750"
  OK

  AT+CGMR                                    
  223305Lierda881102B6
  MB261_RAC_78X
  OK

  5  相关文档

  以下相关文档提供了文档的名称,版本请以最新发布的为准。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

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

本版积分规则

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