这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 综合技术» 物联网技术» 基于NB-IoT的LWM2M协议浅析

共1条 1/1 1 跳转至

基于NB-IoT的LWM2M协议浅析

菜鸟
2020-07-08 15:25:23 打赏

LWM2M协议是OMA组织制定的轻量化的M2M协议,主要面向基于蜂窝的窄带物联网(Narrow Band Internet of Things, NB-IoT)场景下物联网应用,聚焦于低功耗广覆盖(LPWA)物联网(IoT)市场,是一种可在全球范围内广泛应用的新兴技术。具有覆盖广、连接多、速率低、成本低、功耗低、架构优等特点。

移动OneNET平台采用的是基于NB-IOTLWM2M协议和CoAP协议实现UE与平台的通信,其中LWM2M协议为应用层协议,CoAP协议为传输层协议。

1LWM2M协议逻辑实体与逻辑接口

(1)LwM2M定义了三个逻辑实体:

LWM2M Server:接入机,平台服务器接口;

LWM2M client: 客户端,负责执行服务器 的命令和上报执行结果;

Bootstrap server:引导机,负责 配置LWM2M客户端。

(2)这三个逻辑实体之间有4个逻辑接口:

BootstrapBootstrap Server通过这个接口来配置Clinet -比如说LWM2M serverURL地址;

Device Discovery and Registration:客户端注册到服务器并通知服务器客户端所支持的能力;

Device Management and Service EnablementLWM2M Server发送指令给Client并受到回应.

Information ReportingLWM2M Client来上报其资源信息的,比如传感器温度。

这三个逻辑实体与四个逻辑接口之间的关系如下图:

图片7.png

2LWM2M协议栈

Lightweight M2M协议栈结构如下图所示:

图片8.png

2.1LWM2M Objects

每个object(对象)对应客户端的某个特定功能实体。LWM2M规范定义了一些标准Objects,比如:

urn:oma:lwm2m:oma:2; (LWM2M Server Object,其中‘2’object ID)

urn:oma:lwm2m:oma:3; (LWM2M Access Control Object,其中‘3’object ID)

除了LWM2M定义的objectIPSO组织也定义了一些常用传感器的object,比如:

urn:oma:lwm2m:ext:3311;(IPSO Light Control,,其中‘3311’object ID)。

每个object可以有多个resource,每个resource代表一项object属性或者功能。比如object ID3311的传感器的部分resource描述如下表:

图片9.png

2.2LWM2M Protocol

LWM2M Protocol定义了一些逻辑操作,比如Read, Write, Execute, CreateDelete等操作。通过这些逻辑操作,实现云平台与终端设备的数据交互。

3、基于LWM2M协议接入移动OneNet实例

此我们使用北京奇迹物联的AM20E模块接入OneNET平台。接入之前,需要完成OneNET平台侧的用户注册和产品创建。

3.1产品创建

1.完成用户注册并登录后,进入开发者中心进行产品创建。

图片10.png

2.产品创建时,根据页面内容,填写您的产品信息。

图片11.png图片12.png

3.产品创建完成之后,添加设备,其中,AM20E模块的IMEI号和SIM卡的IMSI号,可使用串口调试工具,分别通过AT+ CGSN指令和AT+CIMI指令获取,并填入。

图片13.png

4.产品创建并添加设备完成之后,可在设备管理界面看到所添加的设备,设备栏灰色表示离线状态。

图片14.png

5.在模块侧接入流程中,当模块收到平台侧返回的注册结果+MIPLEVENT:0,6,完成注册。设备栏将显示绿色,表示上线状态。

图片15.png

3.2模块接入OneNET平台流程

模块完成初始化流程并成功注册网络后,接入OneNET平台,流程图如下所示。

图片16.png

上述模块接入OneNET平台流程图中,需要说明的是:

数据交互过程中,平台READ/WRITE/EXECUTE/PARAMETER操作请求、模块资源值上报、以及模块更新注册信息,这3个步骤不分先后顺序,所以未对其按顺序进行编号。

图中虚线箭头表示OneNET平台将返回响应结果+MIPLEVENT给模块侧。+MIPLEVENT返回值请参考AT指令集的说明。

3.3参考示例

1.模块初始化

AT

+PBREADY

AT//AT响应正常

OK


AT+CSQ

+CSQ: 20,99 OK//检测CSQ正常


AT+CEREG?

+CEREG: 0,1 OK//模块注册网络正常

2.模块接入OneNET平台,完成注册

AT+XIIC=1 OK//获取IP地址

AT+XIIC?

+XIIC: 1,100.103.238.182//查询IP地址已成功获取

OK

AT+MIPLVER?//查询基础通信套件版本2.2.0

OK

AT+MIPLCREATE

+MIPLCREATE:0//创建基础通信套件成功,返回00是基础通信套件标识,后续AT指令都需要使用到它

OK

AT+MIPLADDOBJ=0,3303,2,"11",6,1

//添加对象33032个实例,6个属性。其中对象Objectid3303需遵守命名规范,请参考链接:

http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html

OK

AT+MIPLOPEN=0,3600 OK

//模块请求注册

+MIPLEVENT:0,1//OneNET平台返回结果BOOTSTRAP_START

+MIPLEVENT:0,2//OneNET平台返回结果BOOTSTRAP_SUCCESS

+MIPLEVENT:0,4//OneNET平台返回结果CONNECT_SUCCESS

+MIPLEVENT:0,6//OneNET平台返回结果REG_SUCCESS

//模块侧收到上述返回值表示请求注册成功,此时,刷新OneNET平台可看到设备显示绿色在线状态。

图片17.png

3.模块响应OneNET平台Observer请求和Discover请求,完成订阅

+MIPLOBSERVE:0,87667,1,3303,0,-1 //OneNET平台对象/实例Observe请求

AT+MIPLOBSERVERSP=0,87667,1 //模块响应Observe请求,其中msgid=87667必须对应OneNET平台Observe请求消息中下发的msgid

OK

+MIPLEVENT:0,21 //模块响应Observe请求成功

+MIPLDISCOVER:0,153204,3303 //OneNET平台对象Discover请求

+MIPLDISCOVER:0,153204,3303

AT+MIPLDISCOVERRSP=0,153204,1,34,"5700;5701;5601;5602;5603;5604;5605" OK

//模块响应Discover请求,其中msgid=153204必须对应OneNET平台Discover请求消息中下发的msgid。模块响应

Discover请求时创建7个资源,每个资源用分号“;”隔开,其中资源Resourceid 5700;5701;5601;5602;5603;5604;5605

需遵守IPSO规范定义,请参考链接:

http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html

+MIPLEVENT:0,21

//平台返回Discover请求结果给模块,完成订阅。此时OneNET平台上可查看到对象3303对应的资源列表信息。

图片18.png图片19.png

4.模块与OneNET平台数据交互

+MIPLREAD:0,21459,3303,0,5700

//平台请求指定资源(此处指Resourceid 5700)的READ请求

AT+MIPLREADRSP=0,21459,1,3303,0,5700,4,5,20.22,0,0

//模块响应平台READ请求,其中msgid=21459必须对应OneNET平台READ请求消息中下发的msgid4表示float数据类型。模块将资源值20.22返回给OneNET平台侧。

OK

+MIPLEVENT:0,21

//平台请求指定资源(此处指Resourceid 5605)的EXECUTE

+MIPLEXECUTE:0,11671,3303,0,5605,5,"reset

AT+MIPLEXECUTERSP=0,11671,2/模块执行EXECUTE请求

OK

+MIPLEVENT:0,21//模块收到平台返回的响应结果

AT+MIPLNOTIFY=0,77861,3303,0,5700,4,4,23.5,0,0 OK

//模块向平台侧上报指定资源值,此处上报float类型的值810.56Resourceid 5700,其中msgid=129584必须对应

前面OneNET平台Observer请求消息中下发的msgid

+MIPLEVENT:0,26

//模块收到平台返回的响应结果,上报资源值成功,点击操作的详情按钮,可看到上报资源值的数据流。

//模块收到平台返回的响应结果,刷新OneNET平台,可看到实例0,资源5700的属性值更新为20.2199999

图片20.png

AT+MIPLUPDATE=0,3600,1//模块更新注册信息

+MIPLEVENT:0,11//模块收到平台返回的响应结果,更新注册信息成功

图片21.png

5.模块删除对象

AT+MIPLDELOBJ=0,3303 OK

6.模块请求注销

AT+MIPLCLOSE=0 OK

+MIPLEVENT:0,15

7.删除基础通信套件

AT+MIPLDELETE=0 OK


微信公众号.jpg





共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]