本文是一篇LoRaWAN的科普介绍,你已经在朋友圈看过无数蜻蜓点水的LoRaWAN文章,是时候来一篇真正的技术干货了。本文先从横向介绍下LoRaWAN的背后势力和网络部署情况,然后纵向讲解了网络架构和具体的协议内容,帮助LoRa从业者系统地了解LoRaWAN协议。

1 LoRaWAN是什么

按照LoRa联盟官方白皮书《what is LoRaWAN》的介绍,LoRaWAN是为LoRa远距离通信网络设计的一套通讯协议和系统架构。

LoRaWAN? defines the communication protocol and system architecture for the network while the LoRa? physical layer enables the long-range communication link.

另外官方提供了这张略偏技术的协议层次图,各位看官大体感受下。

LoRaWAN在协议和网络架构的设计上,充分考虑了节点功耗,网络容量,QoS,安全性和网络应用多样性等几个因素。经过接下来的这些内容,将会对开头这段介绍有更深刻的体会。

2 背后的利益集团 – LoRa联盟

和LoRa相爱相杀的 NB-IoT 出自于全球标准化组织 3GPP ,由大名鼎鼎的ETSI(欧洲电信标准化委员会)、日本ARIB(无线行业企业协会)和TTC(电信技术委员会)、CCSA(中国通信标准化协会)、韩国TTA(电信技术协会)和北美ATIS(世界无线通讯解决方案联盟)等等组成。

相比于 3GPP 的根正苗红,LoRaWAN 背后的LoRa联盟则势力弱了一些。从协议的封面可以看到作者是来自于3个董事会成员公司: N. Sornin (Semtech), M. Luis (Semtech), T. Eirich (IBM), T. Kramp (IBM), O.Hersent (Actility)。

我们知道每一项技术的推广,都伴随着利益的推动。虽然组织和联盟都是非盈利性组织,但是旗下的企业成员都不是一心来做公益的。从企业角度来讲,花5W去投入做的事情,注定是抱着撬动至少50W美金的预期去做的。

LoRa联盟于2015年上半年由思科(Cisco)、IBM和升特(Semtech)等多家厂商共同发起创立,截止目前(2017.04)有400+的成员,董事会成员中也有不少大企业,大家共同为瓜分未来低功耗广域网的蛋糕而抱团努力着。这是我做的一个表格,收集了现阶段愿意交纳5W美金会费的19个董事会成员,你可以看到这些企业的愿ye景xin。

3 LoRaWAN的网络部署情况

在绑定了几个一级电信运营商后,网络部署情况就比较可观了。按照官方目前(2017.04)的声明,网络部署情况是这样:

34个公开声明部署的网络,至少150个在进行的城市试点部署

4 LoRaWAN 网络架构

在前面部分了解了LoRaWAN很火之后,我们具体从技术角度做些了解。如下是LoRa联盟官方白皮书中的网络架构图。

可以看到一个LoRaWAN网络架构中包含了终端、基站、NS(网络服务器)、应用服务器这四个部分。基站和终端之间采用星型网络拓扑,由于LoRa的长距离特性,它们之间得以使用单跳传输。在终端部分官方列了6个典型应用,有个细节,你会发现终端节点可以同时发给多个基站。基站则对NS和终端之间的LoRaWAN协议数据做转发处理,将LoRaWAN数据分别承载在了LoRa射频传输和Tcp/IP上。

5 协议概述

5.1 终端节点的分类

在开头的介绍中我们就看到有协议中有规定 Class A/B/C 三类终端设备,这三类设备基本覆盖了物联网所有的应用场景。

为了方便大家,我又做了个表。

5.2 终端节点的上下行传输

下面来点时序图,让大家有更深的感受。

这是Class A 上下行的时序图,目前接收窗口RX1一般是在上行后1秒开始,接收窗口RX2是在上行后2秒开始。

Class C 和 A 基本是相同的,只是在 Class A 休眠的期间,它都打开了接收窗口RX2。

Class B 的时隙则复杂一些,它有一个同步时隙beacon,还有一个固定周期的接收窗口ping时隙。如这个示例中,beacon周期为128秒,ping周期为32秒。

5.3 终端节点的加网

搞明白了基础概念之后,就可以了解节点如何工作了。在正式收发数据之前,终端都必须先加网。

有两种加网方式:Over-the-Air Activation(空中激活方式 OTAA),Activation by Personalization(独立激活方式 ABP)。

商用的LoRaWAN网络一般都是走OTAA激活流程,这样安全性才得以保证。此种方式需要准备 DevEUI,AppEUI,AppKey 这三个参数。

DevEUI 是一个类似IEEE EUI64的全球唯一ID,标识唯一的终端设备。相当于是设备的MAC地址。

AppEUI 是一个类似IEEE EUI64的全球唯一ID,标识唯一的应用提供者。比如各家的垃圾桶监测应用、烟雾报警器应用等等,都具有自己的唯一ID。

AppKey 是由应用程序拥有者分配给终端。

终端在发起加网join流程后,发出加网命令,NS(网络服务器)确认无误后会给终端做加网回复,分配网络地址 DevAddr(32位ID),双方利用加网回复中的相关信息以及AppKey,产生会话密钥NwkSKey和AppSKey,用来对数据进行加密和校验。

如果是采用第二种加网方式,即ABP激活,则比较简单粗暴,直接配置 DevAddr,NwkSKey,AppSKey 这三个LoRaWAN最终通讯的参数,不再需要join流程。在这种情况下,这个设备是可以直接发应用数据的。

5.4 数据收发

加网之后,应用数据就被加密处理了。

LoRaWAN规定数据帧类型有 Confirmed 或者 Unconfirmed 两种,即 需要应答 和不需要应答类型。厂商可以根据应用需要选择合适的类型。

另外,从介绍中可以看到,LoRaWAN设计之初的一大考虑就是要支持应用多样性。除了利用 AppEUI 来划分应用外,在传输时也可以利用 FPort 应用端口来对数据分别处理。FPort 的取值范围是(1~223),由应用层来指定。

5.5 ADR 机制

我们知道LoRa调制中有扩频因子的概念,不同的扩频因子会有不同的传输距离和传输速率,且对数据传输互不影响。

为了扩大LoRaWAN网络容量,在协议上了设计一个LoRa速率自适应(Adaptive data rate - ADR)机制,不同传输距离的设备会根据传输状况,尽可能使用最快的数据速率。这样也使得整体的数据传输更有效率。

5.6 MAC命令

针对网络管理需要,在协议上设计了一系列的MAC命令,来修改网络相关参数。比如接收窗口的延时,设备速率等等。在实际应用过程中,一般很少涉及,暂时不管。

6 地区参数

LoRa联盟官方在协议之外,还发布了一个配套补充文档《LoRaWAN 地区参数》,这份文档描述了全球不同地区的LoRaWAN具体参数。为了避免新区域的加入而导致文档的变动,因此将地区参数章节从协议规范中剥离出来。

这份文档主要讲了LoRaWAN在全球各地区的具体物理层参数,不单单是频段有区别,细化到信道划分,甚至是数据速率,发射功率,最大数据长度等等都有区别。

为了方便大家了解总体情况,我又做了个表。

其实这个表也可以看出一个好玩的事情,为什么韩国的参数和亚洲各国其实差不太多,却单独拎出来。如果你有记得前文中的董事会成员记录,就应该知道韩国SK电信在LoRa联盟中的地位。这么高的地位搞点小特殊,你说过分么。

7 LoRaWAN应用示例

好了,介绍完如上的信息,大家应该对LoRaWAN有了系统的了解。

在断断续续学习LoRaWAN的这几个月,深深感觉到,物联网厂商要想理解透LoRaWAN还是需要做比较大的投入,特别是在实际项目过程中还是会遇到这样那样的细节问题。不过有更快速省事的方法,诸如借助我们长期的合作伙伴-厦门四信的LoRaWAN串口模块,他们提供了非常简单清晰的串口AT命令,厂商可以专注于自己多变的业务应用,是的,那句话,上帝的归上帝,凯撒的归凯撒。

i.基础网络参数配置

配置DevEUI

AT+DEI=11:22:33:44:55:66:77:88

配置AppEUI

AT+AEI=11:22:33:44:55:66:77:88

配置AppKey

AT+AKY=00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF

ii.加网操作

AT+JON //启动加网

+JON: 1 Failed // 第一次加网失败

+JON: 2 OK

iii.数据收发

向端口21发送数据12345

AT+TXA=21,12345

收到端口21的数据通知

lorawan的工作原理_详解LoRaWAN网络架构和协议内容相关推荐

  1. 4个mos管驱动的全桥电路原理_最经典MOS管电路工作原理及详解没有之一

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 1105621549 高可靠新能源行业顶尖自媒体 在这里有电力电子.新能源干货.行业发展趋势分析.最新产品介绍.众多技术达人与您分享经验,欢 ...

  2. 0832工作原理详解_最经典MOS管电路工作原理及详解没有之一

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 1105621549 高可靠新能源行业顶尖自媒体 在这里有电力电子.新能源干货.行业发展趋势分析.最新产品介绍.众多技术达人与您分享经验,欢 ...

  3. MOS管电路工作原理及详解

    1.三个极的判断 2.P沟道.N沟道的判断 综上: 3. 寄生二极管方向判定 不论N沟道还是P沟道MOS管,中间衬底箭头方向和寄生二极管的箭头方向总是一致的: 要么都由S指向D,要么都有D指向S 4. ...

  4. TYPE-C接口的工作原理图文详解

    TYPE-C接口的工作原理图文详解 发表于 2018-01-29 09:53:53 电子常识 +关注 2016年,有一个名词在手机上非常火,几乎所有的旗舰手机都会提到这个名词,说到这,大家应该都够猜到 ...

  5. c#打开数据库连接池的工作机制_详解数据库连接池概念、原理、运行机制等

    概述 数据库连接池是负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个.那么其中的运行机制又是怎样的呢?今天主要介绍一下数据库连接池原理和常用的连接池. ...

  6. 防火墙工作原理和详解会话表

    防火墙工作原理 防火墙工作原理: 本质上是查看会话表. 报文到达防火墙,先查看是否会有会话表匹配. 如果有会话表匹配,则匹配会话表转发. 如果没有匹配会话表,看是否能够创建会话表. 前提是必须是首包才 ...

  7. mapreduce工作流程_详解MapReduce中的五大编程模型

    前言 我们上一节讲了关于 MapReduce 中的应用场景和架构分析,最后还使用了一个CountWord的Demo来进行演示,关于MapReduce的具体操作.如果还不了解的朋友可以看看上篇文章:[初 ...

  8. 浏览器工作原理探究详解

    浏览器工作原理探究 标签: 浏览器工作原理 / web性能优化 引言 最近对web的性能优化比较感兴趣,而前端代码主要在浏览器工作的.如果对浏览器的工作原理了解清楚,可以为web性能优化提供方向以及理 ...

  9. MapReduce工作原理图文详解

    前言: 前段时间我们云计算团队一起学习了hadoop相关的知识,大家都积极地做了.学了很多东西,收获颇丰.可是开学后,大家都忙各自的事情,云计算方面的动静都不太大.呵呵~不过最近在胡老大的号召下,我们 ...

最新文章

  1. mysql多语句查询结果_MySQL查询从多个选择语句获取结果?
  2. 和lock一起学beego 博客系统开发为例(五)
  3. python3.x中的生成器generator调用next方法
  4. 大数据洞察画像自动化实践
  5. springboot集成redis配置多数据源
  6. 线程Java的两种方式_多线程(java和guava两种方式):
  7. 一周学C#之第4天——语句
  8. java binaryreader_Java字符流与字节流区别与用法分析
  9. Docker教程小白实操入门(12)--如何使用build指令根据Dockerfile文件构建一个镜像
  10. matlab 离散积分器设置,MATLABSIULINK积分器相关操作.docx
  11. 英特尔显示器音频_联想YOGA C940英特尔移动超能笔记本评测:小身材也有大能量...
  12. HTML自动弹出窗口代码
  13. python分布采样_python – 从有界域zipf分布中采样
  14. 软考系统架构设计师学习笔记
  15. 常见的四种EDI传输协议
  16. 数据库四种范式和部分依赖,完全依赖,传递依赖
  17. android 仿微信demo————登录功能实现(服务端)
  18. 好心情:22个表达好心情的经典句子,送给抑郁焦虑的你
  19. 曝NV或将推出新一代Titan显卡:48G显存 功率高达900W
  20. 突发!拼多多程序员自杀

热门文章

  1. go连接数据库(简单的查询学习)
  2. 大学计算机老师面试说课,大学老师面试讲课技巧
  3. B站-HCIA/IP-学习笔记-二层-理论-STP/RSTP/MSTP
  4. 网站页面广告屏蔽监测
  5. 电商后台管理系统登录功能前端实现
  6. word复制到另一个文档,endnotes出现乱码处理
  7. 自己的故事自己讲-从一个挖煤的如何入门编程的故事。
  8. 企业邮箱免费版好用吗?申请收费的企业邮箱要多少钱?
  9. html如何做斑马表格
  10. 老卫带你学---CSS 渐变色 (超好看)