这篇介绍文章是用于团队内部培训使用,对部分内容做了删减后公开发出。
本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/

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


电信运营商 bouygues 法国三大移动网络运营商之一
comcast 美国最大的有线电视运营商
KPN 荷兰皇家电信集团
orange 法国电信运营商
Proximus 比利时电信运营商
SK telecom 韩国电信运营商
网络安全方案商 gemalto 金雅拓,网络安全方案商,涉及网络加密设计,是中国移动合作伙伴
giesecke 捷德,支付安全方案商,涉及网络加密设计,是工行、建行等的U盾方案商
云平台方案商 actility 法国,ThingPark云平台
IBM 平台方案商
ZTE 中兴,平台方案商,基站方案商
基站方案商 cisco 思科
kerlink 基站方案商
sagemcom 基站方案商
终端芯片方案商 semtech LoRa射频芯片供应商
ST 微控制器供应商
renesas 瑞萨,微控制器供应商
行业应用方案商 flashnet 能源管理应用商,如智慧路灯等应用
homerider 水表应用商

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 三类终端设备,这三类设备基本覆盖了物联网所有的应用场景。

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

CLASS 介绍 下行时机 应用场景
A ("all") Class A 的终端采用 ALOHA 协议按需上报数据。在每次上行后都会紧跟两个短暂的下行接收窗口,以此实现双向传输。这种操作是最省电的。 必须等待终端上报数据后才能对其下发数据。 垃圾桶监测、烟雾报警器、气体监测等
B ("beacon") Class B 的终端,除了Class A 的随机接收窗口,还会在指定时间打开接收窗口。为了让终端可以在指定时间打开接收窗口,终端需要从网关接收时间同步的信标。 在终端固定接收窗口即可对其下发数据,下发的延时有所提高。 阀控水气电表等
C ("continuous") Class C 的终端基本是一直打开着接收窗口,只在发送时短暂关闭。Class C 的终端会比 Class A 和 Class B 更加耗电。 由于终端处于持续接收状态,可在任意时间对终端下发数据。 路灯控制等

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的数据通知
+RCV:21,abcd


8 End

That’s all.

9 参考

  • 硬件 SnowMan物联网开发板
  • 软件 yiot易联网SDK

LoRaWAN介绍 - LoRa从业者读这篇就够了相关推荐

  1. 想快速全面了解LoRa?看这篇就够了!

    引言 LoRa与NB-IoT是最有发展前景的两个低功耗广域网通信技术.不过两者之间到底有什么区别和不同?谁又将更胜一筹占领LPWAN制高点? 物联网的快速发展对无线通信技术提出了更高的要求,专为低带宽 ...

  2. 精述字符编码(读这篇就够了)

    文章目录 1.导语 2.ASCII 3.Latin1 4.ANSI 5.GB2312,GB13000,GBK,GB18030,BIG5 6.Unicode 与 BMP 7.UCS.UCS-2 与 UC ...

  3. 前端基础进阶(十三):透彻掌握Promise的使用,读这篇就够了

    Promise的重要性我认为我没有必要多讲,概括起来说就是必须得掌握,而且还要掌握透彻.这篇文章的开头,主要跟大家分析一下,为什么会有Promise出现. 在实际的使用当中,有非常多的应用场景我们不能 ...

  4. ❤️学懂C语言文件操作读这篇就够了(万字总结,附习题)❤️

    目录 ​​​ 一,写在前面 二,为什么使用文件 1,原因 2,数据流 3,缓冲区(Buffer) 4,C语言中带缓冲区的文件处理 5,文件类型 6,文件存取方式 三,什么是文件 1,程序文件 2,数据 ...

  5. 弄懂gas费,读这篇就够了

    Q:gas是什么? gas是指在以太坊上执行操作所需的"燃料". 以太坊提供了虚拟机(EVM,Ethereum Virtual Machine),开发者可以在其上开发各种应用.EV ...

  6. 单模多模还傻傻分不清楚?关于光模块介绍,看这一篇就够啦!

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你提升运维技能! 说到光模块,相信大家一定不会觉得陌生. 随着光通信的高速发展,现在我们工作和生活中很多场景都已经实现了"光进铜 ...

  7. 史上最全的光模块介绍,看这一篇就够了!

    光模块的工作原理 光模块(Optical Modules)作为光纤通信中的重要组成部分,是实现光信号传输过程中光电转换和电光转换功能的光电子器件. 光模块工作在OSI模型的物理层,是光纤通信系统中的核 ...

  8. 读excel_基础 | Excel中单元格的引用方式,读这篇就够了!

    最近推送了几个Excel中最难的函数,哀嚎遍野,太难了-- 所以今天我们来"从万丈高楼平地起"的平地讲起! 搞懂Excel单元格引用方式,是保证公式准确最最基本的条件! 单元格引用 ...

  9. 微软黑科技如何加速游戏开发,读这篇就够了

    2022迈入尾声,游戏产业这场凛冽的寒风比想象中更为持久与刺骨. 一边是投入的缩减,一边是玩家攀升的要求."既要又要还要"成为游戏制作人的高频句型.在紧预算与精制作的矛盾面前,游戏 ...

最新文章

  1. gridview中动态绑定通过模板列增加的textbox。
  2. [ilink32 Error] Error: Unresolved external 'SendARP'
  3. 消息模式在实际开发应用中的优势
  4. Taro+react开发(80):状态改变的构造函数
  5. list redis 怎样做排行_redis实现商品销量排行榜
  6. 求立方根_初一数学立方根考点详解,立足基础,把握题型,学会方法
  7. java中List分片方法
  8. 漫谈Google的Native Client(NaCl)技术(二)–技术篇(兼谈LLVM)
  9. 论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  10. dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析
  11. android 设置文本加粗,如何在Android中将文本更改为粗体?
  12. Web前端实训两天记录
  13. winrar 百度网盘_不冲百度网盘会员,如何在手机上打开网盘里的压缩包?
  14. obs多推流地址_手把手教你-OBS录屏使用
  15. android studio signingconfigs 打正式包,android signingConfigs打包配置
  16. 用女人的温暖造就男人的成功
  17. 计算机中如何美化表格,手把手教你如何一秒美化Excel表格
  18. 红杉观点|生成式AI:一个创造性的新世界
  19. spring boot 外部配置文件1-spring.config.location与spring.config.additional-location的区别
  20. Vue实现离线创建项目

热门文章

  1. Ubuntu、Win10双系统安装(GPT磁盘格式)
  2. 使用ZF2的DI操作Zend\Mail发送邮件
  3. 实验四 键盘、LED及LCD应用实验
  4. 大学计算机绘图实训报告,CAD课程实习报告
  5. 平面直角坐标系中的旋转公式_石材旋转楼梯测量方式及旋转楼梯案例大全
  6. WEB打印控件---无限制完全免费版
  7. 蓝桥杯——粘木棍 (C++)
  8. 策略 | 那些年,Alpha 策略对冲遇到的那些困难
  9. 利用ArcGIS自带工具求多边形四至点坐标
  10. 【MATLAB图像处理实用案例详解(3)】—— 基于阈值分割的车牌定位识别