本文是一篇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上。

下面结合下行业生态再来看下这个网络架构,大家可以有更深的认知。图来自ST的LoRa白皮书《IoT connectivity made easier STM32 MCUs & LoRa》。

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设计之初的一大考虑就是要支持应用多样性。除了利用 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 科普文相关推荐

  1. 科普文:服务器上如何 Node 多版本共存 #31

    科普文:服务器上如何 Node 多版本共存 #31 背景 很多公司的服务器环境没有做隔离,就是全局安装一个 Node.js Runtime,一般很少升级. nvs / nvm 等可以用来切换版本,但无 ...

  2. 科普文:为什么不能在服务器上 npm install ? #30

    科普文:为什么不能在服务器上 npm install ? 背景 Node.js 很简单,容易上手.但也因此缺乏不少规范,使用者水平参差不齐. 最近经常看到的一个问题是:很多新手,在部署的时候,是直接在 ...

  3. 什么是Kubernetes?科普文

    在过去几年,整个行业逐渐转向开发更小更专业的程序. 越来越多的企业把原先庞大稳定的巨型系统拆分成解耦的独立的组件. 这个方向是正确的. 微型服务有以下几个优点: 快速部署:因为你可以快速的创建并且发布 ...

  4. 低通滤波器计算截止评率_科普文|一文了解电阻-电容(RC)低通滤波器

    作为一个电子硬件方面的工作者,怎么能不认识滤波器呢?那么到底什么是滤波?分享一篇科普文~了解一下电阻 - 电容(RC)低通滤波器是什么以及在何处使用它们能让你更好的掌握高端的电路设计实战.本文将介绍了 ...

  5. 【科普文】二维码的[生成]和[扫码]

    作者:孙辉,美团金融前端团队成员.15年毕业加入美团,相信技术,更相信技术只是大千世界里知识的一种,个人博客: sunyuhui.com 最近这段时间,团队在做的业务主要和二维码相关,在做的过程中,发 ...

  6. 浅谈路由器漏洞挖掘(科普文)

    想在国内找一些路由渗透的纪实,但还是木有什么结果,就是今晚给国内某路由厂商提交一些漏洞时,还被人家鄙视了,哎.什么狗屁心态.不管了,留给我未来的 儿子玩吧.说不定可以搞出什么东西.呵呵,扯远了,今晚就 ...

  7. [科普文] Web3 中的资产负债表

    在一个新领域中学习,一个非常大的难点是需要找到一套高效的思考框架和交流语言.Web3 涉及到很多通证经济和金融相关的议题,在相关讨论中,资产负债表(balance sheet)是非常有用的工具,不仅可 ...

  8. 自动驾驶仿真科普文之二:传感器的仿真究竟难在哪?

    交流群 | 进"传感器群/滑板底盘群"请加微信号:xsh041388 交流群 | 进"汽车基础软件群"请加微信号:ckc1087 备注信息:群名称 + 真实姓名 ...

  9. 科普文:国内ChatGPT怎么用,ChatGPT国内怎么用,关于ChatGPT你需要了解的内容应该都在这

    在国内用了很长一段时间的ChatGPT,每次跟小白,哪怕是用ChatGPT的人交流的时候,都感觉解释不清,正好今天周末,给大家整理一篇关于ChatGPT的科普文,想要了解或使用ChatGPT的人,一定 ...

最新文章

  1. 莱特准则 matlab,初学MATLAB,遇到一简单的题目,一点头绪也没有啊.99
  2. 【TEG第7年】这里有你和你的永不妥协
  3. 通过jquery-ui中的sortable来实现拖拽排序
  4. 【转】ABP源码分析三十三:ABP.Web
  5. Redis:05---键的基本命令(下) 生存周期
  6. Java-所有类型的Class对象
  7. 八大排序算法的python实现(七)基数排序
  8. AI 视频分析识别系统技术分析
  9. 主板后置音频接口图解_图解主板前置音频线接法(一)
  10. java 下载压缩文件后打开报 不可预料的压缩文件末端
  11. Facade模式的介绍
  12. jmeter前后置处理器
  13. 网络安全kali渗透学习 web渗透入门 Metasploit---基于tcp协议收集主机信息
  14. 基于php开发的学生成绩管理系统
  15. Promise、THEN链的穿透/顺延机制、关于Promise.all/any/race 三个方法的研究、AJAX的串行和并行
  16. python py7zr 压缩解压 指定文件名、文件后缀
  17. 如何将房室模型运用到数学建模中?——气体传感器响应分析(校内赛)
  18. 杜洋视频入门PCB设计 软件AD09 淘宝上买的全套超清教程
  19. 【硬件设计】DC-DC之降压(BUCK)电路
  20. Neighbor2Neighbor:从单个噪声图像进行自监督去噪

热门文章

  1. 2.1 电子计算机的兴起
  2. neo4j CQL使用
  3. Windows系统下上架iOSAPP
  4. HDMI 连接笔记本与显示器
  5. 线性代数 --- 用内积重新定义矩阵的转置(个人学习笔记)
  6. 使用C++实现CE中的代码注入
  7. 计算机毕业设计Java河池市旅游信息系统(源码+系统+mysql数据库+lw文档)
  8. Kerberos鉴权后Spark程序连接Redis数据库,解决No Reachable node in cluster错误
  9. Windows11无法打开 WindowsTerminal 图形化设置界面
  10. 手Q游戏中心的个性化推荐实战 | CSDN博文精选