LWM2M客户端与上位机数据通信方法、装置及其***
技术领域
本发明涉及物联网设备数据交互技术领域,具体涉及一种LWM2M客户端与上位机数据通信方法、装置及其***。
背景技术
物联网是指通过各种信息传感设备,实时采集任何需要监控、连接、互动的物体或过程等各种需要的信息,与互联网结合形成的一个巨大网络。其目的是实现物与物、物与人,所有的物品与网络的连接,方便识别、管理和控制。物联网产业包括五个层级:支撑层、感知层、传输层、平台层,以及应用层。而物联网感知层、传输层参与厂商众多,成为产业中竞争最为激烈的领域。因此,当前物联网最基本以及广泛的铺开的应用还只是设备管理(Device Management),基本功能包括:软件/固件升级,应用程序升级,远程的参数监视告警。
OMA是一家国际组织,最初定义了一套OMA-DM的协议,用来远程管理移动终端设备,比如手机开户,版本升级等等。OMA-DM有着非常广泛的应用,很多运营生比如VerizonWireless,Sprint都有自已的OMA-DM服务并要求手机/模块入网的时候通过自定义的OMA-DM入网测试。因为物联网的兴起,OMA在传统的OMA-DM协议基础之上,提出了LWM2M协议。2013年底,OMA发布了LWM2M规范。OMA Lightweight M2M主要动机是定义一组轻量级的协议适用于各种物联网设备,因为M2M设备通常是资源非常有限的嵌入式终端:无用户界面(UI),计算能力和网络通信能力都有限。同时也因为物联网终端的巨大数量,节约网络资源变得很重要。
LWM2M协议定义了三个逻辑实体,包括LWM2M Server服务器;LWM2M client客户端:负责执行服务器的命令和上报执行结果;LWM2M Bootstrap server引导服务器:负责配置LWM2M客户端。由于上位机MCU数据通信能力,基于LWM2M协议定义的逻辑实体与上位机MCU无法直接进行数据交互。
发明内容
本发明的目的在于提供一种LWM2M客户端与上位机数据通信方法、装置及其***,旨在解决基于LWM2M协议定义的逻辑实体与上位机MCU无法直接进行数据交互的技术问题。
为实现上述目的,本发明的技术方案为:
一种LWM2M客户端与上位机数据通信方法,该方法包括以下步骤:
获取LWM2M客户端(Client)的注册状态,并判断客户端设备是否完成注册;
所述LWM2M客户端与LWM2M服务器(Server)进行数据交互;所述LWM2M服务器下发写入数据消息(Write)并通过AT指令上报给上位机MCU;
所述上位机MCU对所述LWM2M服务器上报的写入数据消息(Write)进行分析,确定是否执行所述LWM2M服务器的写入命令。
进一步的,所述获取LWM2M客户端(Client)的注册状态,并判断客户端设备是否完成注册的步骤之后,所述方法还包括:
获取所述LWM2M服务器下发的监听消息(Observe)并判断LWM2M客户端是否需要发送唤醒数据(Notify)。
进一步的,所述获取LWM2M客户端(Client)的注册状态,并判断客户端设备是否完成注册的步骤之后,所述方法还包括:
获取所述LWM2M服务器下发的所述写入数据消息,判断所述LWM2M服务器是否需要配置设备参数。
进一步的,所述获取所述LWM2M服务器下发的监听消息(Observe)并判断LWM2M客户端是否需要发送唤醒数据(Notify)的步骤之后,该方法还包括:
所述LWM2M客户端提供发送唤醒数据(Notify)的AT指令,所述上位机MCU通过AT指令发送唤醒数据(Notify)到所述LWM2M服务器。
基于同一发明构思,本发明还提供了一种LWM2M客户端与上位机数据通信装置,该装置包括:
通信模块(modem),用于获取LWM2M客户端(Client)以及LWM2M服务器的交互数据;
客户端MCU,用于分析处理所述交互数据并控制所述通信模块是否提供AT指令。
进一步的,所述交互数据包括所述LWM2M客户端(Client)的注册状态,以及LWM2M服务器下发的写入数据消息(Write)和监听消息(Observe)。
基于同一发明构思,本发明还提供了一种LWM2M客户端与上位机数据通信***,该***包括:
通信模块(modem),用于获取LWM2M客户端(Client)以及LWM2M服务器的交互数据并以AT指令方式上报上位机MCU;
客户端MCU,用于分析处理所述交互数据并控制所述通信模块是否提供AT指令;
上位机MCU,用于分析处理所述LWM2M服务器上报的交互数据后以AT指令方式向所述LWM2M服务器返回判断结果。
进一步的,所述交互数据包括所述LWM2M客户端(Client)的注册状态,以及LWM2M服务器下发的写入数据消息(Write)和监听消息(Observe)。
进一步的,所述写入数据消息(Write)通过AT指令上报给上位机MCU;所述上位机MCU对所述写入数据消息(Write)进行分析,确定是否执行所述LWM2M服务器的写入命令。
进一步的,所述通信模块提供发送唤醒数据(Notify)的AT指令,所述上位机MCU通过AT指令发送唤醒数据(Notify)到所述LWM2M服务器。
本发明方法具有如下优点:
本申请的LWM2M客户端与上位机数据通信方法、装置及其***,利用设置在LWM2M客户端的通信模块,与上位机MCU之间采用AT指令进行数据交互,利用通讯模块获取LWM2M客户端的注册状态、LWM2M服务器下发的监听消息、LWM2M服务器下发的写入数据消息并通过AT指令的方式上报给上位机MCU,同时提供AT指令给上位机MCU发送唤醒数据给LWM2M服务器。借助通讯模块通过AT指令完成LWM2M协议数据交互,解决了客户端MCU不具备数据通讯能力及通信模块和上位机MCU如何交互的问题。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,更显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明的一种LWM2M客户端与上位机数据通信方法流程图;
图2是本发明的一种LWM2M客户端设备获取LWM2M客户端的注册状态的时序图;
图3是本发明的一种LWM2M客户端设备获取LWM2M服务器的observe消息并发送notify数据的时序图;
图4是本发明的一种LWM2M客户端设备获取LWM2M服务器的Write数据指令同时执行和应答的时序图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面参考附图对本发明的实施例进行描述。
实施例1
如图1所示,本发明提供了一种LWM2M客户端与上位机数据通信方法,该方法包括以下步骤:
S101、获取LWM2M客户端(Client)的注册状态,并判断客户端设备是否完成注册;
我们知道LWM2M协议定义了三个逻辑实体,三个逻辑实体设置有数据交互接口,在这三个逻辑实体之间有4个逻辑接口:
第一,Device Discovery and Registration;这个接口让客户端注册到服务器并通知服务器客户端所支持的能力(简单说就是支持哪些资源Resource和对象Object。
第二,Bootstrap;Bootstrap server通过这个接口来配置Clinet,比如说LWM2Mserver的URL地址。
第三,Device Management and Service Enablement;这个就是最主要的业务接口,LWM2M Server发送指令给Client并受到回应。
第四,Information Reporting;这个接口是LWM2M Client来上报其资源信息的,比如传感器温度。上报方式可以是事件触发,也可以是周期性的。
Lightweight M2M协议栈如下表所示:
其中,LWM2M Objects:每个对象对应客户端的某个特定功能实体.LWM2M规范定义了一下标准Objects,比如
urn:oma:LWM2M:oma:2;(LWM2M Server Object)
um:oma:LWM2M:oma:3;(LWM2M Access Control Object)
每个object下可以有很多resource.比如Firmware object可以有Firmware版本号,size等resource。
Vendor可以自已定义object
LWM2M Protocol:定义了一些逻辑操作,比如Read,Write,Execute,Create orDelete。
CoAP:是IETF定义的Constrained Application Protocol用来做LWM2M的传输层,下层可以是UDP或SMS.UDP是必须支持的,SMS是可选的。CoAP有自已的消息头,重传机制等。
DTLS:是用来保证客户端和服务器间的安全性的。
S102、所述LWM2M客户端与LWM2M服务器(Server)进行数据交互;所述LWM2M服务器下发写入数据消息(Write)并通过AT指令上报给上位机MCU;
S103、所述上位机MCU对所述LWM2M服务器上报的写入数据消息(Write)进行分析,确定是否执行所述LWM2M服务器的写入命令。
AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(DaATTerminal Equipment,DTE)向终端适配器(Terminal Adapter,AT)或数据电路终端设备(DaAT Circuit Terminal Equipment,DCE)发送的。
其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。
每个AT指令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。
其中,所述获取LWM2M客户端(Client)的注册状态,并判断客户端设备是否完成注册的步骤之后,所述方法还包括:
获取所述LWM2M服务器下发的监听消息(Observe)并判断LWM2M客户端是否需要发送唤醒数据(Notify)。
其中,所述获取LWM2M客户端(Client)的注册状态,并判断客户端设备是否完成注册的步骤之后,所述方法还包括:
获取所述LWM2M服务器下发的所述写入数据消息,判断所述LWM2M服务器是否需要配置设备参数。
其中,所述获取所述LWM2M服务器下发的监听消息(Observe)并判断LWM2M客户端是否需要发送唤醒数据(Notify)的步骤之后,该方法还包括:
所述LWM2M客户端提供发送唤醒数据(Notify)的AT指令,所述上位机MCU通过AT指令发送唤醒数据(Notify)到所述LWM2M服务器。
实施例2
基于同一发明构思,本发明还提供了一种LWM2M客户端与上位机数据通信装置,该装置包括:
通信模块(modem),用于获取LWM2M客户端(Client)以及LWM2M服务器的交互数据;
客户端MCU,用于分析处理所述交互数据并控制所述通信模块是否提供AT指令。
其中,所述交互数据包括所述LWM2M客户端(Client)的注册状态,以及LWM2M服务器下发的写入数据消息(Write)和监听消息(Observe)。
实施例3
基于同一发明构思,本发明还提供了一种LWM2M客户端与上位机数据通信***,该***包括:
通信模块(modem),用于获取LWM2M客户端(Client)以及LWM2M服务器的交互数据并以AT指令方式上报上位机MCU;
客户端MCU,用于分析处理所述交互数据并控制所述通信模块是否提供AT指令;
上位机MCU,用于分析处理所述LWM2M服务器上报的交互数据后以AT指令方式向所述LWM2M服务器返回判断结果。
其中,所述交互数据包括所述LWM2M客户端(Client)的注册状态,以及LWM2M服务器下发的写入数据消息(Write)和监听消息(Observe)。
其中,所述写入数据消息(Write)通过AT指令上报给上位机MCU;所述上位机MCU对所述写入数据消息(Write)进行分析,确定是否执行所述LWM2M服务器的写入命令。
其中,所述通信模块提供发送唤醒数据(Notify)的AT指令,所述上位机MCU通过AT指令发送唤醒数据(Notify)到所述LWM2M服务器。
如图1所示,是本发明的一种LWM2M客户端设备获取LWM2M Client的注册状态的时序图,通讯模块modem发起注册或注册更新,将注册成功或注册更新成功的结果通过AT指令主动上报给上位机MCU。
如图2所示,是一种LWM2M客户端设备获取LWM2M服务器的observe消息并发送notify数据的时序图,包含如下步骤:
通讯模块modem收到LWM2M Server发送的Observe消息,给与Server发送ack应答。
通讯模块modem解析Observe数据,并通过AT指令上报Observe消息给上位机MCU。
上位机MCU依据Observe的AT指令上报,调用m2msend命令发送Notify数据,最终由通讯模块modem传输给LWM2M Server。
如图3所示,是LWM2M客户端设备获取LWM2M服务器的Write指令同时执行和应答的时序图。可能包含如下步骤:
通讯模块modem收到LWM2M服务器发送的Write命令,检查Write命令的合法性与可执行性等。
Write命令正确,通讯模块modem通过AT指令上报Write命令给上位机MCU。
上位机MCU依据Write的AT指令上报,执行Write指令,调用m2msend命令发送执行结果。
通讯模块modem根据上位机MCU下发的执行结果发送2.04结果码给LWM2M服务器。
本申请的LWM2M客户端与上位机数据通信方法、装置及其***,利用设置在LWM2M客户端的通信模块,与上位机MCU之间采用AT指令进行数据交互,利用通讯模块获取LWM2M客户端的注册状态、LWM2M服务器下发的监听消息、LWM2M服务器下发的写入数据消息并通过AT指令的方式上报给上位机MCU,同时提供AT指令给上位机MCU发送唤醒数据给LWM2M服务器。借助通讯模块通过AT指令完成LWM2M协议数据交互,解决了客户端MCU不具备数据通讯能力及通信模块和上位机MCU如何交互的问题。
以上描述的装置实施例仅仅是示意性的,其中所所述作为分离部件说明的单元可以使或者也不可以不是物理上分开的,作为单元显示的部件可以是也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件可以存储在可读取存储介质中,如:ROM/RAM,磁盘,光碟等,包括若干指令用以使得一台计算机设备(可以使个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。