查看: 442|回复: 0

[应用笔记] 移芯、海思、展锐AEP SOTA 升级应用笔记

[复制链接]

77

主题

118

帖子

1403

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1403
发表于 2023-11-3 15:20:42 | 显示全部楼层 |阅读模式
  一、升级流程概述

  登录 CTWing 平台后,点击“控制台”,进入控制台后再点击“点击查看详细开通步骤”, 在界面左侧找到“设备管理”—“SOTA 升级”——“平台操作指导”和“软件升级协议”, 如下图所示。在“平台操作指导”和“软件升级协议”中可以看到 SOTA 升级的具体操作流程,由于平台端给出的流程较为详细,该文档将主要以一些升级过程中容易遇到的问题和软 件升级协议的理解为主,并结合客户问题持续进行修改和补充。

图1-1 点击“控制台”


图1-2 点击“点击查看详细开通步骤”


图1-3“设备管理”--“SOTA 升级”--“平台操作指导”和“软件升级协议”



  CTWing 平台 SOTA 升级的流程图如图 1-4 所示。

图 1-4 SOTA升级流程图



  二、升级软件包

  升级软件包结构:

  注:结构图中无后缀的方框为文件夹,且浅蓝色的两个文件夹名称必须相同

  注意事项:
  1、需要将所有要在升级时传给设备的软件版本文件都打包成一个升级文件,且软件包文件名 称不支持包含中文字符。
  2、本次SOTA升级测试的升级软件包为.bin格式,其他升级软件包格式待后续测试。
  3、UpgradeDesc.json为升级软件包描述文件,其模板和具体内容详见“平台操作指导”,其中重要部分的修改见下图。

图 2-1 升级软件包描述文件内容重点


  4、压缩文件包必须为.zip 格式,且为双重压缩。
  5、目前仅支持 LWM2M 协议的设备进行 SOTA 升级。

  三、平台端创建升级包和升级任务

  平台端创建升级包:点击“远程升级管理”--“软件包管理”--“创建升级包”,如图 3-1所示,进入创建升级包界面。在创建升级包界面中选择待升级设备对应的产品和制作好的双 重压缩文件夹,如图 3-2 所示,需保证升级包大小 2M 以内。

图 3-1 点击“远程升级管理”--“软件包管理”--“创建升级包”


图 3-2 创建升级包


  平台端创建升级任务:点击“远程升级管理”--“升级任务”--“SOTA 升级”--“创建 任务”,如图 3-3 所示,进入创建升级任务界面。在创建升级任务界面中,输入任务名称, 并且选择刚刚创建的软件升级包,点击确认按钮,完成升级任务的创建。

图 3-3 进入创建升级任务界面


图 3-4 选择软件升级包并成功创建升级任务



  添加升级设备:点击“升级设备管理”,选择需要进行 SOTA 升级的设备,选择好后点 击“加入升级”。在升级设备管理界面中,点击“已选择设备”,即可查看等待 SOTA 升级 的设备。具体操作如图 3-5 和图 3-6 所示。

图 3-5 升级设备管理


图 3-6 选择升级设备



  启动 SOTA 升级:点击“任务执行控制”--“立即启动”,即可开始进行 SOTA 升级, 如图 3-7 所示。

图 3-7 启动 SOTA 升级


  四、软件升级协议解析

  消息结构见图 4-1,消息码定义见图 4-2,其中校验码需要通过平台提供的程序进行计算, 该程序可在 AEP 平台 SOTA 升级教程中的“软件升级协议”协议的底部找到。

图 4-1 消息结构


图 4-2 消息码定义


  五、模组侧操作流程
1、查询设备版本


  开始 SOTA 升级后,上报任意一组数据,模组会收到来自平台端的消息:
+CTM2MRECV:fffe01134c9a0000



  +CTM2MRECV:fffe(固定起始标识)01(固定版本号)13(消息码,转换为十进制后为 19,查询设备版本)4c9a(校验码)0000(数据区长度)


  接收到上面那条来自平台的消息后,模组需要向平台上报当先的软件版本号,指令为: AT+CTM2MSEND=FFFE01137AB300110056312E30000000000000000000000000


  AT+CTM2MSEND=FFFE(固定起始标识)01(固定版本号)13(消息码,转换为十进 制后为 19,查询设备版本)7AB3(校验码)0011(数据区长度,17 个字节)00(结果码, 处理成功)56312E30000000000000000000000000(当前版本号,V1.0,规定长度为 16 个字节, 不足 16 个字节以 0 作为补充)

  2、新版本通知


  上报当前设备版本完成后,平台会对设备端发起新版本通知: +CTM2MRECV:fffe011450b9001656322e30000000000000000000000000008000086534


  +CTM2MRECV:fffe(固定起始标识)01(固定版本号)14(消息码,转换为十进制后为20,新版本通知)50b9(校验码)0016(数据区长度,22 个字节) 56322e30000000000000000000000000(目标版本号,V2.0,规定长度为 16 个字节)0080(分 片包长度)0008(分片包个数)6534(转换成字符串即为 json 文件中的 versioncheckcode 字 段值)


  此时,设备端需要返回允许升级的消息,指令为:AT+CTM2MSEND=FFFE0114D768000100


  AT+CTM2MSEND=FFFE(固定起始标识)01(固定版本号)14(消息码,转换为十进 制后为 20,新版本通知)D768(校验码)0001(数据区长度,1 个字节)00(结果码,允许 升级,其他不同含义的结果码可以在平台端“软件升级协议”中找到)

  3、请求升级包


  设备端发送完允许升级消息后,需要向平台请求分片升级包。在本次测试升级中,由平 台端发送的新版本通知可知,软件升级包被分为 8 个分片包,因此需要向平台发送总共 8 条请求升级包指令,指令为: AT+CTM2MSEND=FFFE0115CB4F001256322E300000000000000000000000000000


  AT+CTM2MSEND=FFFE(固定起始标识)01(固定版本号)15(消息码,转换为十进制后为 21,请求升级包)CB4F(校验码)0012(数据区长度,18 个字节)56322E30000000000000000000000000(目标版本号,V2.0,规定长度为 16 个字节)0000(分片包0)


  发送请求分片升级包 0 指令成功后,模组会接收到来自平台的消息: +CTM2MRECV:fffe(固定起始标识)01(固定版本号)15(消息码,转换为十进制后为 21, 请求升级包)6292(校验码)0083(数据区长度,131 个字节)00(结果码,处理成功)0000(分片包序号)
313233343536373832323334353637383332333435363738343233343536373835323334353637383632333435363738373233343536373838323334353637383132333435363738323233343536373833323334353637383432333435363738353233343536373836323334353637383732333435363738 3832333435363738(分片包内容)


  以上为请求分片升级包 0 的 AT 指令和返回内容,因为总共存在 8 个分片包,所以还需 要发送 7 条 AT 指令去请求其他分片升级包,这些指令的区别在于分片包序号不同,以及由 于分片包序号改变引起的校验码的不同,以下为剩下 7 条 AT 指令。
AT+CTM2MSEND=FFFE0115DB6E001256322E300000000000000000000000000001

AT+CTM2MSEND=FFFE0115EB0D001256322E300000000000000000000000000002

AT+CTM2MSEND=FFFE0115FB2C001256322E300000000000000000000000000003

AT+CTM2MSEND=FFFE01158BCB001256322E300000000000000000000000000004

AT+CTM2MSEND=FFFE01159BEA001256322E300000000000000000000000000005

AT+CTM2MSEND=FFFE0115AB89001256322E300000000000000000000000000006

AT+CTM2MSEND=FFFE0115BBA8001256322E300000000000000000000000000007



  每发送一条指令都会接收到来自平台的分片升级包数据,接受完全部的分片升级包后, 将分片包的内容进行组合,即可得到完整的软件升级包内容。

  4、上报升级包下载状态


  当设备请求完分片包后,按照协议设备需上传一条消息码流查询设备的升级包下载状态, 让平台知道升级包是否已经都下载完成,指令为:AT+CTM2MSEND=FFFE0116850E000100


  AT+CTM2MSEND=FFFE(固定起始标识)01(固定版本号)16(消息码,转换为十进 制后为 22,上报升级包下载状态)850E(校验码)0001(数据区长度,1 个字节)00(结果码,升级包下载成功,其他不同含义的结果码可以在平台端“软件升级协议”中找到)


  5、执行升级


  设备上报完升级包下载状态后,平台通知设备执行升级,设备会接收到来自平台的消息:+CTM2MRECV:fffe0117cf900000


  设备端收到该消息后,需回复消息:AT+CTM2MSEND=FFFE0117B725000100


  AT+CTM2MSEND=FFFE(固定 起始 标识)01 ( 固定版本 号)17 (消息码,转换 为十 进 制后为 23,执行升级)B725(校验码)0001(数据区长度,1 个字节)00(结果码,处理成 功,其他不同含义的结果码可以在平台端“软件升级协议”中找到)

  6、上报升级结果
  设备完成升级后,上报升级的结果和当前版本号告知平台,平台上更新设备当前所使用 的软件版本,指令为:AT+CTM2MSEND=FFFE01189B2700110056322E30000000000000000000000000


  AT+CTM2MSEND=FFFE(固定起始标识)01(固定版本号)18(消息码,转换为十进制后为 24,上报升级结果)9B27(校验码)0011(数据区长度,17 个字节)00(结果码,处理成功,其他不同含义的结果码可以在平台端“软件升级协议”中找到)56322E30000000000000000000000000(升级后版本号,V2.0,规定长度为 16 个字节)


  平台收到后会回复一个应答消息,数据区为空:+CTM2MRECV:fffe0118afa1000100


  +CTM2MRECV:fffe(固定起始标识)01(固定版本号)18(消息码,转换为十进制后为 24,上报升级结果)afa1(校验码)0001(数据区长度,1 个字节)00(结果码,处理成功)

  模组接收到该消息后,SOTA 升级就完成了,图 5-1 为平台端 SOTA 升级成功的界面。

图 5-1 SOTA 升级成功平台端显示



  以上为本次测试的具体操作流程和协议分析,本次测试基于开发板,无 MCU,仅提供作 为参考。


  备注:所有平台模组SOTA升级整体流程均相同,差别仅在于数据上报AEP平台的方式,例如海思 平台模组通过AT+NMGS指令进行数据的上报,按照AT指令集对上文中标红的指令进行修改即 可,上报的数据内容是一致的。

  六、总结

  用户使用 SOTA 升级 MCU 程序版本通过 AEP 平台实现。本文旨在帮助用户初步了解基 于 AEP 平台的 SOTA 升级流程,并对软件升级协议进行了较为清晰的分析,需要结合平台端 的 SOTA 升级指导查看。

  七、相关文档及术语缩写

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


本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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