LoRaWAN介绍19 Server开源

转载只为收藏好文,感谢原博主的分享。原博文地址:https://blog.csdn.net/jiangjunjie_2005/article/details/54730252

LoRaWAN介绍19 Server开源

“UNIX很简单,但需要有一定天赋的人才能理解这种简单。”--Dennis Ritchie

 

LoRa Server是一个开源的LoRaWAN Server。它能完成Server最主要的任务:处理来自1个或多个GW的上行RF数据包,调度最优的GW回复下行RF数据包。

1 整体架构
很明显,LoRa Server基本遵循LoRaWAN对Server的4层架构,它们的对应关系如下。

loraserver <=> NS (Network Server)

lora-app-server <=> AS (Application Server)

lora-controller <=> NC (Network Controller)

application <=> CS (Customer Server)

LoRaWAN规定GW和NS的接口协议是JSON,而本项目使用的是MQTT格式,因此它设计了一个 lora-gateway-bridge 层,它负责JSON和MQTT的转换。

LoRaWAN介绍19 Server开源_第1张图片

2 实现LoRaWAN功能

2.1 支持类别

Class

支持

说明

A

完全支持Class-A,NS采用poll方式从AS获取下行RF数据包,这样可以支持最低速率下最大应用数据的发送。

B

-

不支持

C

-

不支持

2.2 确认报文
支持确认报文(ConfirmedFrame)。如果是下行确认报文,LoRaServer将在队列中缓存该数据包,直到End Node回复ACK为止。


2.3 节点入网
支持ABP(Activation By Personalization)和OTAA(Over The Air Activation)。

ABP:application server提供End Node的Addr和Key给LoRa Server;

OTAA:LoRa Server回复join-accept给End Node,并通知application server.


2.4  ADR
支持ADR(Adaptive Data Rate,速率自适应),这需要End Nodes设置ADR interval和margin。

ADR interval:设置End Nodes发送多少个上行RF数据包后,重新计算速率和发射功率。

margin:调整ADR的无线信号强度余地,默认推荐值为5dB。


2.5  NC接口
提供LoRa Server管理无线网络的能力,它通过MAC命令获取或设置End Nodes的网络参数和射频性能。


2.6  RX窗口
支持调整RX1和RX2窗口的空中速率和延时。


2.7 帧计数器
ABP入网模式的End Nodes有一个问题,一旦设备重启后,FCnt的值将归零;NS接收该报文后,会发现FCnt小于或等于上一个报文,将会拒绝接收该报文。LoRa Server解决了这个问题,它放宽了对FCnt的检测。


2.8 支持频段
目前支持的地区和频段包括:

LoRaWAN介绍19 Server开源_第2张图片

3 环境与配置
现代服务器的环境依赖较多,特别提出的是,因为免费和UNIX文化,绝大部分服务器都部署在UNIX / Linux机器上,而非我们常见的Window。

LoRa Server的环境如下:

语言=Go

系统=Linux,已经在 Debian / Ubuntu上测试和运行;

中间件=MQTT broker、Redis datastore;

软件=LoRa Server,需要编译和运营。

配置上述环境是一件“繁琐”的工作,为此,该项目强烈推荐使用Docker,打包上述应用和依赖包,生成在不同Linux平台上可移植的容器件。

 

另外,applicationserver需要用户自行实现,它与AS的API接口为“api/as/as.proto”。所有API都由基于Go语言的gRPC框架实现,包括:

api/ns/ns.proto: network-server interface

api/as/as.proto: application-server interface

api/nc/nc.proto: network-controller interface

 

用户可以在启动loraserver时,添加参数来取得不同的配置,这包括:

NetID、Band、Dwell Time、Repeater Compatibility、Redis Connection String。

下载经典的LoRaWAN资料,请链接:http://www.rimelink.com/nd.jsp?id=48&_np=107_316

欢迎加入“LoRaWAN论坛”http://lora.timeddd.com/forum.php

你可能感兴趣的:(lora)