合作伙伴工作台
注册

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升级流程图

升级流程:

升级成功:

升级失败:


下载失败:


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