LoRa 自组网络设计
深入了解 LoRaWAN
LoRaWAN 是什么?
按照 LoRa 联盟官方白皮书《what is LoRaWAN》的介绍,LoRaWAN 是为 LoRa 远距离通信网络设计的一套通讯协议和系统架构。
可以看到一个 LoRaWAN 网络架构中包含了终端、基站、NS(网络服务器)、应用服务器这四个部分。基站和终端之间采用星型网络拓扑,由于 LoRa 的长距离特性,它们之间得以使用单跳传输。在终端部分官方列了 6 个典型应用,有个细节,你会发现终端节点可以同时发给多个基站。基站则对 NS 和终端之间的 LoRaWAN 协议数据做转发处理,将 LoRaWAN 数据分别承载在了 LoRa 射频传输和 TCP/IP 上。
LoRaWAN 通信机制
首先是传感器端,传感器收集到的数据会存储在 LoRaWAN 的从机,LoRaWAN 底层部分应当有用 HAL 库配置好的 SPI 接口来传输这些数据,数据传输给服务器物理层。然后通过 LoRa 的 FSK 无线传输技术将数据传输到网关的物理层进行数据处理,通过 Ethernet、3G 或者 WIFI 加密传输到网络终端上面。但在用户看来,传感器端是直接跟网络服务器通信的。
LoRaWAN 与其他组网协议对比
LoRaWAN 通信协议
LoRaWAN 在协议和网络架构的设计上,充分考虑了节点功耗,网络容量,QoS,安全性和网络应用多样性等几个因素。
协议中有规定 Class A/B/C 三类终端设备,这三类设备基本覆盖了物联网所有的应用场景。
这是 Class A 上下行的时序图,目前接收窗口 RX1 一般是在上行后 1 秒开始,接收窗口 RX2 是在上行后 2 秒开始。(功耗低,但是实时性较差)
Class B 的时隙则复杂一些,它有一个同步时隙 beacon,还有一个固定周期的接收窗口 ping 时隙。(实时性高)
Class C 和 A 基本是相同的,只是在 Class A 休眠的期间,它都打开了接收窗口 RX2。(保证了实时性,但是功耗比 Class A 高)
LoRaWAN 服务器框架
下面 LoRaWAN 的架构,它是基于 Internet 建设物联网,Gateway 是 IP 设备(运行 IP 协议栈),而 End Node 运行的是 LoRaMac-node(没有运行 IP 协议栈)。
LoRaWAN Server 共有 4 种角色,包括:NS(Network Server,网络服务器)、AS(Application Server,应用服务器)、NC(Network Controller,网络控制服务器)和 CS(Customer Server,客户服务器)。
LoRaWAN 服务器通信接口
LoRaWAN 服务器通信协议
它们之间的通信协议规律如下:
NS 和 Gateways 通过 JSON / GWMP / UDP / IP;
Command console 和 4 种服务器通过 JSON / UDP / IP;
4 种服务器之间通过 JSON / TCP / IP。
UDP 通信的优势:实时性
TCP 通信的优势:可靠性
LoRa 自组网架构设计
MAC 协议重要性
MAC 协议全称是 medium access control(介质访问控制)。介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。它主要用于解决信号冲突的问题、尽可能地节省电能、保证通信的健壮和稳定性。
在 LoRa 自组网络设计中,会有多个节点同时收发数据,所以我们需要 MAC 协议帮助我们确定什么时间接收什么节点的数据,使得多个终端设备共享信道资源,提高信道利用率。
MAC 协议的种类
(1)信道划分的 MAC 协议
- 时分(TDMA)、频分(FDMA)、码分(CDMA)划分
(2)随机访问 MAC 协议
- ALOHA,S-ALOHA,CSMA,CSMA/CD
- CSMA/CD 应用于以太网
- CSMA/CA 应用于 802.11 无线局域网
(3)轮讯访问 MAC 协议
- 主节点轮询
- 工业Modbus通信协议
常见的几种协议的优缺点分析
(1)时分复用
优点:
节省电能、最大化使用带宽;
缺点:
所有节点需要精确的时钟源,并且需要周期性校时、向网络中添加和删除节点都要有时隙分配和回收算法。
(2)频分复用
优点:
增加通信容量、提高通信可靠性;
缺点:
物理通道增加,成本增加。
(3)轮询访问
优点:
协议简单,易开发;
缺点:
通讯效率低、网络规模小。
基于时分复用 LoRa 自组网设计
由于能力和条件的限制,我们这里的 LoRa 自组网络就采用比较简单但是效率较高的时分复用 MAC 协议来完成。根据上述时分复用的原理,我们制定如下图所示的入网机制。
时分复用的基本原理是这样的,不同的节点随机等待一段时间进行数据的发送,假如当前的节点 i 等待时间到,且检测无其他节点正在与主机进行数据交换,则发送数据给主机,主机进行数据的接收。此时如果恰好节点 j 的等到时间也到了,则需继续等待一段随机时间,因为节点 i 正在传输数据,等到下一个时间片到达,且无其他节点发送数据,则节点 j 才可与主机通信。
LoRa 自组网协调器设计
LoRa自组网节点设计
LoRa 自组网集中器程序开发
通讯协议
以下是 LoRa 规定的节点数据帧格式,贯穿于整个自组网的开发过程。
从机->入网请求 |
|||
名称 |