推广 热搜: 铸铁T型槽平台  BQG250/0.3气动隔膜泵  封号  北京  手中  bqg350/0.2气动隔膜泵  收购ACF  250*6防尘帘  牵手  滤芯 

lwm2m 、lwm2m协议

   日期:2023-04-16     浏览:33    评论:0    
核心提示:LwM2M协议介绍 LwM2M是一套适用于物联网的协议。首先,EMQ君从整体上来带领大家来了解一下这个协议,看以下几个问题: LwM2M的全称是Lightweight Machine-To-Machi

LwM2M协议介绍

LwM2M是一套适用于物联网的协议。首先,EMQ君从整体上来带领大家来了解一下这个协议,看以下几个问题:

LwM2M的全称是Lightweight Machine-To-Machine,它的名称里面包含了这么两个重要含义:1)这个协议是轻量级的;2)这个协议适用于物联网设备。

LwM2M协议是由OMA(Open Mobile Alliance)提出并定义的。OMA这个组织专注于移动通讯以及物联网产业的标准开发,给自己的定位是“规范大工厂”。随着“万物皆可联”概念的兴起,物联网终端数目急剧膨胀,也不再局限于智能手机这样的强力大块头。有很多设备,要么电量有限,要么内存有限,要么可使用带宽有限,之前那些适于强劲终端设备管理的协议对它们来说有些太重了难以承受,因此,为了照顾到这些资源有限的小个子设备们,LwM2M协议在2013年底诞生了。目前的成熟版本号依然是1.0,OMA的专家们正在努力整1.1版。

概括地说: LwM2M是适用于资源有限的终端设备管理的轻量级物联网协议。

接着,我们从几个方面详细介绍LwM2M协议:

先看一下LwM2M协议的基本架构。

协议最主要的实体包括LwM2M Server和LwM2M Client。

此外,根据需要还可以加入LwM2M引导服务器(Bootstrap Server)或智能卡(SmartCard),对客户端完成初始的引导。

在这些实体之间,协议定义了4个接口,来实现预期的功能。

LwM2M协议有以下几个突出特点:

考虑到与时俱进,实现简洁易懂的风格,LwM2M协议采用了REST。

但由于协议的服务对象是资源有限的终端设备,传统的HTTP数据传输方式显得过分笨重,难以支持受限资源,因此选择了具备REST风格的CoAP来完成消息和数据传递。一方面CoAP基于UDP,与TCP相比,在网络资源有限及无法确保设备始终在线的环境里更加游刃有余(出于安全性考虑,使用了基于UDP的DTLS安全传输协议)。另一方面CoAP本身的消息结构非常简单,报文压缩,主要部分可以做到特别小巧,无需占用过多资源。

出于类似的考虑,协议的数据结构必须足够简单。LwM2M协议定义了一个以资源(Resource)为基本单位的模型,每个资源可以携带数值,可以指向地址,以表示LwM2M客户端中每一项可用的信息。资源都存在于对象实例中(Object Instance),即对象(Object)的实例化。LwM2M协议预定义了8种对象(Object)来满足基本的需求,分别是:

考虑到扩展性,协议也允许根据实际需要自定义更多的对象。在这样的数据模型中,资源、对象实例以及对象都是用数字对应的ID来表示的,以实现***程度的压缩,因此任何资源都可以用最多3级的简洁方式表示,例如/1/0/1表示服务器对象(Server Object)第1个实例中的服务器短ID资源。 在注册阶段,LwM2M客户端把携带了资源信息的对象实例传递给LwM2M服务器,以通知服务器自身设备所具备的能力。

LwM2M协议的主要开源实现有以下几个:

此外,EMQ也实现了EMQ服务器上的LwM2M网关插件,实现了LwM2M协议的大部分功能,LwM2M设备可以注册至EMQ-LWM2M上,从而通过EMQ-LWM2M访问并管理设备,设备也可以向EMQ-LWM2M上报信息,并使用EMQ后端的服务来采集数据。

LwM2M协议初识_2022.06.06

学习基于记录,而不止于记录。

希望自己能坚持下去~

    出于工作需求,涉及物联网相关,综合考虑物联传输协议选型,决定使用LwM2M。本文作为本人一篇学习笔记,难免错漏,有路过大神欢迎指正。随着后续学习深入,会继续更新(大概吧)。

  这里贴上 官网地址 ,目前中文搜索引擎优先提供的都是一些第三方机构或者开发人员给出的对于协议方面的定义,这一块建议还是看看官网,由于是英文,可以使用中文插件汉化一下,如下。

其实理解起来也不用那么复杂,LwM2M,全称:light weight machine to machine,顾名思义就是一种面向机器与机器,或者设备与设备之间的轻量级协议,是一种数据传输标准。

另外,协议栈如下图所示,传输层采用的是UDP或者SMS协议(这里不讨论后者);应用层协议,是Coap,而LwM2M是基于Coap协议,所以说,要想了解LwM2M还是得先知道Coap协议,这里贴上一篇 Coap相关文章 ,可以先看看作为了解,另附 coap协议的官方文档 ;至于中间的DTLS是安全协议,同时因为UDP的特性决定,LwM2M注定是一种非可靠性的协议,而加入DTLS可以一定程度确保其可靠性,再附上 DTLS协议的官方文档 。最后,有篇知乎专栏作为入门文章相当不错,贴在这里, LwM2M 协议介绍 。

  看了不少博客和业内前辈的总结,关于LwM2M说明了很多东西,但是其实很重要的一个特性就是资源,LwM2M协议将服务端和客户端之间的交互,其实都设计为对于资源的操作,客户端成功将自己注册到服务端,并且告知服务端,自己所拥有的资源,服务端据此注册信息,可以发起对资源的操作。

  而LwM2M本身也是提供了一些最基本的资源供开发者使用,这里呢,看下 官方LwM2M 注册表 API ,里面做了说明,如下(已汉化):

点击对象发现里面的最新链接,需要注意的是label为0的是OMA定义,如下(只截取了部分):

资源的请求风格,是restful风格,比如,如果读取id为19对象,***个资源,及其下的***个资源实例,便是 /19/0/0 ,根据权限,服务端可以对资源进行读取、删除、写入等操作,同事服务端可以对设备进行管理,例如发现、注册或者取消注册等操作。

  作为开发者,我们更加关注是技术细节实现,那么如果选择LwM2M作为传输协议,我们该怎么实现,适合Java的LwM2M框架就是 Eclipse Leshan 。官网首页如下:

  目前了解还比较浅,所以能说的也比较少,关于这方面的资料国内不多,英文的啃起来难受,目前进度推进缓慢,只能勉强搭建起环境,后续应该还会更新关于Leshan的相关使用。

LWM2M设备接入

最近在梳理设备接入的相关流程,对于LWM2M协议接入,画了个简单的图,以便加深理解。

一个IOT设备内部主要包括如下几部分:

MCU(微控制单元)、模组、通信单元等。

MCU是设备本身自带的,改动起来是比较困难的。模组是嵌入进去的,本身就是为修改而生。所以一般来说目前的IOT设备胖模组瘦MCU的模式是比较常见的。通信单元就是IOT设备接入的出口:比如通过NB窄带蜂窝网接入平台,会有张物联网卡在里面,卡激活后具备上网功能的。

设备通过串口,以AT命令的形式,发送已编码数据到NB-IoT模组。每个厂家的AT命令都是自定义的,各不相同。所以就有了SDK存在的必要性了,通过平台SDK可以统一模组的接入标准。在SDK中定义好相关流程,所有模组只需要调用SDK即可,不需要自己实现一套流程。这样便于维护,标准化接入,降低IOT设备的接入成本。

模组接收到AT命令后,将p***load后,自动封装为LwM2M协议的消息,并发送给事先配置的物联网平台;

LwM2M协议基于COAP协议,都是基于传输层UDP协议,安全传输使用DTLS协议。其是标准协议,SDK封装LWM2M协议。

lwm2m的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于lwm2m协议、lwm2m的信息别忘了在本站进行查找喔。

原文链接:http://www.huishang88.com/news/show-14747.html,转载和复制请保留此链接。
以上就是关于lwm2m 、lwm2m协议全部的内容,关注我们,带您了解更多相关内容。
 
标签: 协议 设备 资源
打赏
 
更多>同类资讯
0相关评论

推荐资讯
网站首页  |  VIP套餐介绍  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  SITEMAPS  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报