LoRaWAN架构简介

LoRaWAN 协议层次

LoRaWAN 是定义在 LoRa 无线调制技术上的一整套通信协议,类似 TCP/IP 协议。LoRaWAN 整个协议的架构图分为几层:

LoRaWAN协议架构

  • 绿色的 Application 层是给用户提供数据使用的,主要由用户自己根据需求来进行开发就好。
  • 蓝色的 MAC 层是 LoRa 的链接层协议,更详细的内容在 LoRaWAN 标准中可以查看。
  • 棕色的 LoRa Modulation 对应 OSI 的物理层协议,在具体的应用中,其实就是指 sx127x 或 sx126x 芯片内部实现的无线调制技术。
  • 灰色部分的存在是因为 LoRa 是一种无线调制技术,信号的传输是依靠无线电波。但无线电波其实是一种公共资源,理论上说只要拥有无线电收发器,就能通过收发器发送无线电信号。如果大家都毫无规则向外界发送无线电信号不形成统一的标准的话,无线电的使用就非常混乱。所以,根据不同地区的不同要求,国际电信联盟(ITU)就根据各个地区自己的特点将无线电不同的频段规划来做不同的事情,让无线电的利用得以规范。比如:中国的无线电管理部门就酱 144-148MHz 和 430-440MHz 的频段规划给了业余无线电业务,让业余无线电爱好者做技术交流使用。

LoRaWAN 网络架构

LoRaWAN网络架构

我把 LoRaWAN 的网络架构分层 3 部分。

  • 设备终端。
  • 接入网关。
  • 服务器。

这三个部分的划分主要是根据开发时所使用的技术栈来区分的。设备节点的开发主要是以嵌入式开发为主,涉及到嵌入式软硬件的开发;接入网关需要使用 Sx130x 系列的基带芯片,官方提供了在嵌入式 Linux 环境下的开发组件,因此更多的是需要做嵌入式 Linux 的软硬件开发;针对服务器部分的研发,更需要的就是后端技术栈了。下面是我对整个网络架构简单粗暴的划分了。

LoRaWAN网络架构_划分

LoRaWAN 网络架构的各部分

上面讲了自己对 LoRaWAN 网络架构简单粗暴的分类,接下来就需要说明一下这个架构图中各部分到底都是什么意思了。

LoRaWAN网络架构

  • End Nodes: 就是通俗意义上理解的终端设备,在 LoRaWAN 水表应用中,指的就是 LoRaWAN 水表。
  • Concentrator/Gateway:End Nodes 接入广域网的网关,类似 NB-IoT 应用中运营商的基站。
  • Network Server:LoRaWAN 应用中的服务器,具体的实例可以部署在云厂商的服务器上,也可以根据自己的需求部署在自己的私有服务器上。
  • Application Server:是 LoRaWAN 的应用服务器,就需要结合实际的业务场景来自己设计了。例如:LoRaWAN 水表应用中,就是水表数据展示或者应用的业务系统了。
  • LoRa RF(LoRaWAN):LoRaWAN 的链接层标准,主要指的是终端设备使用 LoRa 无线调制技术遵循LoRaWAN的标准把终端采集到的数据上传到Concetrator/Gateway
  • TCP/IP SSL(LoRaWAN):Concetrator/Gateway使用TCP/IPSSL协议将接收到的终端数据上传给Network Server.
  • TCP/SSL(Sevure Payload):Network Server采用TCP/IPSSL协议传递给Application Server

LoRaWAN 学习路线

理清楚了 LoRaWAN 网络架构的大概情况,并且根据实际开发时涉及到的技术栈,将 LoRaWAN 开发粗暴的分为三部分:

  • 设备终端;
  • 接入网关;
  • 服务器;

之后,自己对 LoRaWAN 与 LoRa 的区别就算是分清楚了。后面的学习过程只需要根据开发时的具体需求,针对不同的部分看各部分的资料应该就好了。

基本的学习思路有了,后面的 LoRaWAN 学习就有方向了。

设备终端

LoRaWAN 的设备终端实现,主流的实现有2个:

  1. I-CUBE-LRWAN
  2. LoRaMac-node

I-CUBE-LRWAN 是 ST 官方推出的 Cube 实现里面的一个扩展包。针对 STM32L0、STM32L1 和 STM32L4 系列微控制器提供了库和示例应用程序,并且该扩展包支持 Semtech LoRa 无线电扩展板,开发的时候,可以直接参考 ST 提供的官方例程,缩短开发的周期。

LoRaMac-node 是 Semtech 官方在 Github 上提供的一个 LoRaWAN 终端技术栈的实现,支持 LoRaWAN 终端的 A/B/C 三种类型通信。同时,由于 LoRaWAN 的协议在不断的完善和更新,LoRaMac-node 的代码也会针对不同版本的 LoRaWAN 协议栈提供版本支持。

刚上手学习 LoRaWAN 终端开发的话,个人觉得自己先以 I-CUBE-LRWAN 为框架进行学习更好。因为,I-CUBE-LRWAN 是 ST 官方提供的 Cube 软件扩展包,可以在使用 STM32 系列芯片时,直接复用代码来实现自己的功能,方便研发。

等到上手熟悉 I-CUBE-LRWAN 的使用后,可以再深入理解 LoRaWAN 技术栈的细节内容。

由于,I-CUBE-LRWAN 的 LoRaWAN 终端实现也是参考 LoRaMac-node 的实现进行移植的。在了解 I-CUBE-LRWAN 的 LoRaWAN 代码实现之后,再去参考 LoRaMac-node 的代码,能够更细致的了解 LoRaWAN 终端的技术实现细节。

接入网关

LoRaWAN 的 Gateway 是 LoRaWAN 协议栈中比较复杂的一部分内容,在通信架构中,起到承上启下的作用。既要与终端节点通信,还要与服务端进行通信,实现管理信道、转发数据、设备管理等等功能。根据 LoRaWAN 基带芯片的不同,网关的代码实现也有很多不同。

Semtech 在 Github 的公共仓库中,提供了基于 SX1301多通道调制解调器和SX1257/SX1255射频收发器构建 gateway 程序,以及基于 SX1302/SX1303 的硬件抽象层软件代码。

在设备研发应用是,可以直接使用 Semtech 提供的源代码,构建符合自己功能的 LoRaWAN 接入网关。

服务器

LoRaWAN 的服务器实现,比较流行的主要有3个:

ChirpStack 是一款开源的 LoRaWAN 网络服务器,可用于设置 LoRaWAN 的网络。ChirpStack 为网关、设备和租户的管理提供了一个 web 界面,并与主要的云提供商、数据库和通常用于处理设备数据的服务进行数据集成。ChirpStack 提供了一个基于 gRPC 的 API,可用于集成或扩展 ChirpStacck 。

The Things Stack 是一款强大而灵活的 LoRaWAN 网络服务器,可满足要求苛刻的 LoRa 广域网部署的需求,从涵盖基本内容到高级安全配置和设备生命周期管理。

LORIOT 致力于提供最佳的 LoRaWAN 体验,通过提供业界领先、功能丰富且可即时访问的社区网络服务器来实现这一点,这些服务器托管在世界各地。LoRaWAN 网络服务器的地理分布基础设施为在世界任何地方的服务提供低延迟访问。

这 3 个服务器的解决方案,各有各的特点。其中 Chripstack 给我的使用体验感觉更好,后续会以 Chripstack 为例子来说明怎么使用 LoRaWAN 服务器的搭建和使用。

参考文档

服务器的解决方案,各有各的特点。其中 Chripstack 给我的使用体验感觉更好,后续会以 Chripstack 为例子来说明怎么使用 LoRaWAN 服务器的搭建和使用。

参考文档

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值