合作伙伴工作台
注册

NB LWM2M

i.概述

终端应支持LWM2M协议所制定接口协议、资源对象(Object3和Object5)及本章节规定的功能要求和流程要求。

AEP平台的远程升级服务包括任务制定、升级包下载、远程升级、任务结束处理四个阶段,如下图所示:

图:远程升级概述

ii.Object5升级状态机管理

远程升级状态机管理由Object5实现,覆盖升级任务中下载和升级阶段。

图:Object5升级状态机管理

Object /5/0创建并初始化State=0,Result=0

终端收到URI配置,启动下载,更新升级状态,State=1,Result=0;

升级包下载结束

*若下载成功,更新升级状态,State=2,Result=0。

*若下载失败,更新升级状态和下载结果,State=0,Result=error_code。其中当Result为9,7,6,2,3时,平台进入任务结束流程;当Result为4,5时,平台进入重新下载流程,当重新下载次数到达,平台进入任务结束流程。(error_code为9: 协议不支持,7: 无效URI,6: 升级包类型不支持,2:Flash Memory不足,3. RAM不足,4:下载过程中连接断,5:下载的升级包校验失败)。

终端执行远程升级:启动升级,更新升级状态为State=3,Result=0。升级结束后,模组更新升级状态和升级结果。

*若升级成功,更新升级状态和升级结果,State=0,Result=1。平台进入任务结束流程。

*若升级失败,更新升级状态和下载结果,State=2,Result=8。平台进入重新升级流程,当重新升级次数到达,平台进入任务结束流程。

iii.远程升级功能要求

固件升级包:

用户先制作好固件升级包,然后通过平台门户按要求上载升级包;在设备下载阶段,由AEP平台提供下载服务。

升级下载协议:

使用CoAP块传输协议下载固件升级包。

远程升级管理:

远程升级管理由AEP平台负责。管理内容包括升级任务的状态管理、升级任务的审核、升级任务启动管理、下载时机和并发数的管理、下载和升级失败时重试机制管理和升级任务结束处理等。

交互协议支持:

*设备固件版本,平台通过Object /3/0/3命令进行远程读取;

*通过Object /5/0进行远程升级的状态机管理。

对终端的要求:

终端必选功能:支持Object5及FOAT升级状态的管理(参见图:FOAT升级状态机管理); Object5实例的创建删除由平台FOAT管理模块控制,终端保证Object5实例可跨会话存在,断电重启或重新登录应恢复Object5实例信息;通过下载URI识别固件升级和软件升级,支持固件升级和软件升级流程。

平台支持同时下载和业务传送的方案,若部分模组在下载过程要求进行业务数据阻塞,由模组内部控制实现。当模组收到平台下行消息,回5.03响应,并在响应中包含一个 Retry-After 头用以标明阻塞时间。

当终端下载成功,自行启动升级流程时,在升级过程中,终端收到平台升级指示,回正常响应并忽略升级指示。

当下载或升级失败时,若终端本地有重新下载或重新升级的策略,可本地执行,不纳入状态机管理范围。本地策略执行结束后,再进行状态的迁移和执行结果的设置。

当采用AEP平台下载服务,必须支持AEP下载协议和认证加密要求。

终端可选功能:支持断点续传和在业务碎片时间下载,即当业务处理和下载处理并存,以业务处理优先。

ⅳ.固件下载流程

图:固件下载流程

平台判断升级可行性

*平台判断终端下行可达:

查询FirmwareVersion信息与任务中相关信息比较,若匹配,则继续,否则置任务状态为结束,结果为失败,原因为升级条件检查失败,任务流程结束。(如果需要提供其它升级所需信息,方案再议)。

查询Object5实例化(/5/0)是否存在,若存在则指示终端删除/5/0。

升级条件检查成功,启动FOTA任务。

平台启动任务,进入升级配置。

指示终端创建Object5实例(State=0,Result=0),并下发Observe操作。

配置下载URI(/5/0/1),终端启动固件包下载。当终端下载失败,平台根据策略判断需要重新下载,可重新配置URI,启动终端下载。

终端启动固件包下载:

模组进行状态机管理,修改State=1 ,并向平台通知State、Result信息。

模组进行固件包下载、下载包校验。下载成功,置State=2,否则置State=0,Result=Error_Code。

终端向平台上报State、Result信息。平台根据State、Result信息判断后续操作

*若State=2,Result=0 ,下载成功,指示终端进入升级流程;

*若State=0,Result=4,5时,平台进行重新下载,当重新下载次数未达到,平台向终端配置下载URI,重新启动下载。已到达,置任务状态为结束,结果为下载失败,原因为4,5,转入任务结束处理流程。

*若State=0,Result=其它时,平台置任务状态为结束,结果为下载失败,原因为Result,转入任务结束处理流程。

下载失败,模组可根据本地策略进行重新下载,本地策略完成后方可进行Object5状态机的修改。

平台采用同时下载和业务传送的方案。若部分模组在下载过程要求进行业务数据阻塞,由模组内部控制实现。当模组收到平台下行消息,回5.03响应,并在响应中包含一个 Retry-After 头用以标明阻塞时间。

平台在向终端配置下载URI前,必须保证State=0。

下载成功(State=2,Result=0),在平台未指示终端升级前,终端异常主动退出升级操作,置State=0,Result=0。在此期间,平台收到该状态转移,置任务状态为结束,结果为失败,原因为下载成功终端异常主动退出升级,转任务结束流程。

v.固件升级流程

图:固件升级流程

平台指示终端固件升级:

在固件包下载成功(State=2,Result=0)和固件升级失败需要重新升级(State=2,Result=8),平台指示终端启动固件升级。

平台下发 Execute /5/0/2 ,下发前要求State=2(DOWNLOADED)。

当终端下载成功,自行启动固件升级流程时,在升级过程中,终端收到平台升级指示,回正常响应并忽略升级指示。

终端启动固件升级流程:

模组进行状态机管理,修改State=3 ,并向平台通知State、Result信息。平台收到升级状态State=3,则进行终端状态转移,终端状态进入“升级中”,只允许上行消息,不允许下行消息。

模组向终端业务层发送固件升级请求,业务层完成业务处理后,指示模组开始升级。

模组固件升级完成后,进行状态机管理。升级成功State=0,Result=1;升级失败State=2,Result=8。平台收到升级结束,则进行终端状态转移,终端状态退出“升级中”,恢复原有状态。

模组通知终端业务层固件升级结束,终端向平台上报State和Result信息。

平台对上报结果处理,当State=0,Result=1,转入任务结束流程。当State=2,Result=8,指示终端重新固件升级,重新升级次数到,转入任务结束流程。

升级失败,模组可根据本地策略进行重新升级,本地策略完成后方可进行Object5状态机的修改。

终端升级失败,可因被复位等原因主动退出升级,置State=0,Result=8。平台收到后,置任务状态为结束,结果为失败,原因为升级失败,终端主动退出升级,并转任务结束流程。

ⅵ.任务结束流程

图:升级任务结束流程

任务状态和结果判断设置:

查询终端模组或软件版本,升级成功,置任务状态为结束。

任务结束处理,释放相关资源:

指示终端取消对/5/0的Observe操作。

指示终端删除Object5实例。

ⅶ.NB LWM2M升级流程图

升级流程:

升级成功:

升级失败:


下载失败:


viii平台操作指导

1) 创建固件包

点击“远程升级管理—固件包管理”菜单中的“创建固件包”按钮

 

选择固件关联的产品、固件版本名称、固件版本号、签名算法、固件来源(本地固件、固件地址)、模组名称、固件版本描述

 

2) 创建升级任务

点击“远程升级管理—升级任务”菜单中的“创建任务”按钮

 

填写任务名称、固件版本、重试次数、任务描述。

 

3) 升级设备管理

点击操作中“升级设备管理”图标

 

升级设备管理中支持导入设备(导入execl中设备,最大导入5000条)、加入升级(勾选页面未选择的设备)、一键加入(默认选择这个产品下所有未完成升级的设备)三种方式添加需要升级的设备。其中导入设备为异步导入,您可以点击“导入结果查询”模块查看导入任务执行情况,若导入存在部分失败,支持点击操作中“下载”按钮,查看失败原因。


添加需升级的设备后,点击操作中“任务执行控制-立即启动”,若您在升级设备管理中操作“一键加入”“批量导入”设备的操作仍在进行中,系统将提示您“升级设备管理中您进行的一键加入/批量导入操作在进行中,请等待”;若存在部分失败情况,将提示您“升级设备管理中您进行的一键加入/批量导入操作存在部分失败,请确定是否继续启动?” ,确定后将对加入成功的设备生成升级任务。

 

启动后,可以点击“操作-查看升级详情”按钮查看升级情况

若需取消部分设备升级任务可以选择勾选任务升级子任务前复选框后点击“取消升级”。若需将所有升级子任务都取消,可直接点击“一键取消”按钮

 

远程升级管理中产品的固件包、软件包及升级任务的所属机构与产品的所属机构一致,每个用户仅可查看本机构及子机构下的产品、固件包、软件包、升级任务。因此若无法查看别人创建的产品、升级包、升级任务,可联系本租户主账号调整产品的所属机构。



这篇文档是否帮助您解决了问题?
如果您愿意进一步帮助我们改进文档 ,请留下您的联系方式。