LoRaWAN 协议介绍
本章将介绍 LoRaWAN 协议,但在介绍 LoRaWAN 协议之前,让我们来认识一下什么是 LoRa。
LoRa
LoRa 的全称为 Long Range,其全称已体现出这种无线技术的特点——覆盖范围广(链路预算达到 168dB)。
LoRa 技术是由法国 Cycleo 公司(一家 IP 和设计方案提供商,成立于 2009 年)开发的一种扩频无线调制专利技术(EP2763321 from 2013 和 US7791415 from 2008),2012 年 Cycleo 公司被美国 Semtech 公司收购。收购之后,Semtech 公司对该技术进行了强有力的营销,包括成立 LoRa 联盟,以促进其他公司包括部分移动运营商参与到 LoRa 生态系统中。
LoRa 的主要特点: 远距离,低功耗,网络容量大,低成本,抗扰特性强,低速率,小数据传输。
目前,LoRa 主要运行在 ISM 频段,包括 433/470/868/915MHz 等。
什么是 ISM 频段?
ISM(Industrial Scientific Medical Band)频段,就是工业、科学及医疗频段。世界各国为了让一些工业、科学及医疗领域的公共设备不用专门申请频段,就设置了一些无需授权即可使用的频段,就是 ISM 频段,也就是我们常说的免费频段。像 Wi-Fi、蓝牙、LoRa、ZigBee 等用的都是 ISM 频段。
但由于不同地区的无线电法规不同,所以在不同地区 LoRa 使用的频段也会不同,中国地区有 2 个频段可用:CN779~CN787、CN470~CN510。
- CN779~CN787 该频段有一个硬伤:最大发射功率仅 10mW(10dBm),并没有实用价值
- CN470~CN510 这是中国无委会规定的民用抄表频段,属于 ISM 免费频段
LoRaWAN
LoRaWAN 定义了使用 LoRa 技术的端到端标准规范,包括物联网市场安全、能源效率、漫游和配置入网(on-boarding)等。LoRaWAN 起初叫 LoRaMAC,由 Semtech、Actility、IBM Research 共同制定,在 2015 年巴塞罗那移动世界通信大会上,被改名为 LoRaWAN,成为 LoRa 联盟成员的规范。LoRaWAN 规范可以从 LoRa 联盟网站 下载,LoRaWAN 和 LoRa 的区别在于,LoRa 是一种技术,而 LoRaWAN 是一套标准规范。
按照 LoRa 联盟官方白皮书《What is LoRaWAN》的介绍,LoRaWAN 是为 LoRa 远距离通信网络设计的一套通讯协议和系统架构,下图为 LoRaWAN 协议层次图:
LoRaWAN 在协议和网络架构的设计上,充分考虑了终端节点功耗、网络容量、QoS、安全性和网络应用多样性等几个因素。
LoRaWAN 网络架构
下图是 LoRa 联盟官方白皮书中的 LoRaWAN 网络架构图:
可以看到一个 LoRaWAN 网络架构中包含了 End Node(终端节点,也称设备)、Gateway(基站,也称网关)、Network Server(网络服务器)、Application Server(应用服务器)这四个部分。基站和终端节点之间采用星型网络拓扑,因为 LoRa 能长距离通信特性,基站和终端节点之间得以使用单跳传输。在终端节点部分,官方列了 6 个典型应用,有个细节,您会发现终端节点的数据可以同时发给多个基站。基站则对网络服务器和终端节点之间的 LoRaWAN 协议数据做转发处理,将 LoRaWAN 数据分别承载在 LoRa 射频传输和 TCP/IP 上。
LoRaWAN 终端节点
在前面的介绍中我们可以看到 LoRaWAN 规范定义了 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 更加耗电。 | 由于终端节点处于持续接收状态,可在任意时间对终端节点下发数据。 | 路灯控制等 |
LoRaWAN 相关术语
术语 | 含义 |
---|---|
DevEUI | 终端设备 ID,一个类似 IEEE EUI64 的全球唯一 ID,用于标识唯一的终端节点 |
JoinEUI | 应用唯一标识 ID,一个类似 IEEE EUI64 的全球唯一 ID,用于标识终端节点的应用提供者,JoinEUI 存储在终端节点中 |
AppKey | 应用密钥,由应用程序拥有者分配给终端节点,用来产生会话密钥 NwkSKey 和 AppSKey |
DevAddr | 32 位终端设备地址,OTAA 机制终端节点入网时由网络服务器分配地址,ABP 机制 DevAddr 存储在终端节点中 |
NwkSKey | 网络层会话密钥,用于加密和校验网络层数据,ABP 机制 NwkSKey 存储在终端节点中 |
AppSKey | 应用层会话密钥,用于加密和校验应用层数据,ABP 机制 AppSKey 存储在终端节点中 |
NetId | 24 位网络 ID,用于区分同一物理空间中的不同 LoRaWAN 网络,OTAA 机制才有意义 |
Spirit 1 对 LoRa 支持
Spirit 1 带有 LoRa 终端射频芯片 SX1276,SX1276 是 Semtech 公司在 2013 年推出的一款远距离、低功耗、高性能的物联网无线收发器,具备特殊的 LoRa 调制方式,在一定程度上增加了通信距离。
EdgerOS 对 LoRaWAN 支持
EdgerOS 将 LoRaWAN 网络架构中的基站(网关)、网络服务器、应用服务器三者的功能进行了深度融合,开发者使用 Spirit 1 和 LoRaWAN 终端节点组建 LoRaWAN 网络时,不需要使用额外的基站(网关)和去搭建网络服务器、应用服务器,极大降低了 LoRa 的使用门槛和成本。
目前 EdgerOS 支持 Class A/C 两类 LoRaWAN 终端节点(Class B 终端节点目前工作在 Class A 模式),支持 OTAA(Over-The-Air Activation,空中入网)和 ABP (Activation By Personalization,个性化激活)两种入网机制。
EdgerOS LoRa 服务配置流程
手机通过爱智 App 进入 EdgerOS 后,点击 LoRa App,进入 LoRa 设备管理界面:
点击右下方的设置图标进入设置界面:
打开启用开关,服务状态将切换为运行中:
点击网络设置进入网络设置界面:
网络设置界面如下所示:
点击网络 ID,进入网络 ID 设置界面:
在输入框设置网络 ID,最后点击保存按钮保存并退出网路 ID 设置:
点击通道配置进入通道设置界面:
点击通道 1,选择通道 1 的信道(如信道 0),点击确认完成信道选择,最后点击左上角的返回箭头返回:
点击应用按钮,在弹出来的提示框点击确认应用以上设置:
LoRaWAN 设备二维码生成
EdgerOS 支持扫码添加 LoRaWAN 设备,二维码信息是由设备的 DevEUI、JoinEUI、AppKey、classType 等入网信息组成的 JSON 字符串。
OTAA 入网机制的 LoRaWAN 设备的入网信息 JSON 字符串如下所示:
{"DevEUI": "4736549f00310005", "JoinEUI": "526973696e674846", "AppKey": "2b7e151628aed2a6abf7158809cf4f3c", "classType": "A"}
ABP 入网机制的 LoRaWAN 设备的入网信息 JSON 字符串如下所示:
{"DevEUI": "4736549f00310005", "JoinEUI": "526973696e674846", "AppKey": "2b7e151628aed2a6abf7158809cf4f3c", "NwkSKey": "2b7e151628aed2a6abf7158809cf4f3c", "AppSKey": "2b7e151628aed2a6abf7158809cf4f3c", "DevAddr": "126", "classType": "A"}
复制入网信息 JSON 字符串并粘贴到 草料二维码生成器 的文本输入框,生成二维码图片并保存。
LoRaWAN 设备添加流程
手机通过爱智 App 进入 EdgerOS 后,点击 LoRa App,进入 LoRa 设备管理界面:
点击下方的加号图标,打开设备添加方式选项:
点击扫码,扫描 LoRaWAN 设备的二维码:
扫描完成后如下所示:
点击添加设备按钮,即可把设备加入到 EdgerOS:
LoRaWAN 设备开发
我们将在《IoT Pi Pro LoRaWAN 设备开发》章节介绍如何开发一个能接入到 EdgerOS 的 LoRaWAN 终端节点。