经过前面章节的学习,已知道LoRa只是一种物理层的调制解调无线通信技术。是无线通信技术就需要组网,那么LoRa应用中的常见网络有哪些?这些组网方式各有什么特点,分别支持哪些应用呢?
LoRa应用中组网方式非常多,且很多供应商根据需求制定了相应的协议(网络层和应用层),根据是否支持LoRaWAN协议可以分为LoRaWAN协议网络和私有协议网络两大类。LoRaWAN是LoRa联盟推广的统一协议,也是唯一一个全球达成共识的且联盟成员一致推广的LoRa协议。


在中国的LoRa生态中有大量的用户使用私有协议,而在欧美等发达国家的LoRa市场上绝大多数是LoRaWAN协议,这与LoRa推广初期不同地区的国情相关。LoRa技术诞生在欧洲,当市场认识到LoRa技术的优势后,发现LPWAN会是一个非常大的市场,且LoRa技术推动LPWAN的应用是绝佳的机会。此时最激动的是欧洲的电信运营商们,这些运营商与Semtech一起建立LoRa联盟,并且朝着物联网运营商全覆盖的目标努力。所以在LoRa联盟建立初期,都是执行运营商先建网,应用和服务逐步增加的策略,这与国内的电信运营商大力投资先架设基站和蜂窝网络,再一步一步地增加手机客户是一个概念。所以LoRa联盟建立的标准是针对电信运营商的物联网架构,LoRaWAN最早的标准和定义就是在这个大环境下完成的。虽然当时也有少数的国内厂商加入联盟之中,但是影响力不足。当LoRaWAN技术来到中国后,发现中国的市场情况完全不同,中国只有三家大型的电信运营商,由于政策限制一直走3GPP路线,没有一家国内的运营商愿意按照4G、5G的模式布LoRaWAN网。虽然Semtech公司跟其中的一些有不少合作,都是项目和应用的合作,没有像欧洲的运营商那样的全国布网。欧洲的电信运营商LoRa策略在中国走不通,此时中国涌现出众多的行业公司对LoRa技术青睐有加,因为它们发现LoRa调制的诸多优势,可以解决原来无线技术无法实现的功能和应用。这些公司纷纷把LoRa技术整合到其系统中,它们纯粹把LoRa技术作为一种“更远一些”的无线通信技术,替代原来的FSK技术。尤其是过去的无线抄表行业,由于FSK技术灵敏度的局限性导致其项目抄表效率差,成功率低,维护成本高。这些无线抄表公司的开发人员充分发挥LoRa的技术优势,开发更佳更强的产品,形成了一波浪潮。笔者曾采访过业内的几个公司的创始人,都是当年看到LoRa是个好技术就辞职创业进入LoRa领域的。所以中国早期的LoRa市场就是一场无线技术升级替代的过程,而抄表需求是这波浪潮的浪尖,也是至今Semtech公司的LoRa芯片内还一直保留FSK调制的原因。而国内的这些表计、停车等应用的公司为了方便和快速上线LoRa产品,网络结构甚至系统架构都保持原样,只是使用LoRa替代原来的通信芯片,只做了物理层的升级。由于原有的这些应用没有统一的行业协议标准,所以至今国内多数的LoRa应用依然是私有协议。随后,大家逐渐发现使用统一协议的好处,越来越多的人加入LoRaWAN产品的开发中。随着LoRaWAN的推广和协议更新其市场影响力也不断扩大,市场占有率也在不断攀升。
LoRa私有协议对应的网络结构也不尽相同。大致可以分为如下几种:
- 点对点拓扑结构;
- 星状拓扑结构(运营商的蜂窝网和LoRaWAN也是属于星状拓扑结构);
- 树状拓扑结构;
- 网状拓扑结构;
- 混合拓扑结构。
其中,树状拓扑结构、网状拓扑结构、混合拓扑结构都属于Mesh拓扑结构。
1. 一、点对点的LoRa网络
点对点(P2P)的通信方式在无线通信中是最早出现也是最常见的技术之一,如图5-1所示,比如早期的无线门铃、无线开关、无线对讲机等。LoRa技术应用于点对点通信时,规定主机和从机即可,不需要分为网关和节点。一般会由主机主动发起命令和任务,从机响应;主机和从机是可以互换的,LoRa的节点芯片是支持半双工通信的,可以很好地支持这类应用。
图5-1 点对点网络拓扑结构
LoRa点对点通信的优点是架构简单,尤其对于初学者,最好的学习方式就是采用点对点通信的方式,调节扩频因子、带宽等参数观察灵敏度和信噪比的变化。在实际的LoRa应用中,点对点通信并不多,主要原因是市场应用都在升级,原有的按键门铃等应用随着智能家居的发展,都可以通过网关联网,变为星状网络结构;而许多对讲机原来的点对点网络也变成了广播式的网状网络结构,有的对讲机应用还增加了Mesh结构。当你仅有一对LoRa收发机的时候才是真正的P2P网络形式。
LoRa对讲机应用于P2P网络最主要利用了远距离、抗干扰、低功耗的优势。许多大尺寸如5W、10W输出功率的非标商用对讲机,现在都换成了小功率的LoRa对讲机。LoRa对讲机功耗只有原来的十分之一,且通信距离更远了,信号抗干扰也变强了。从整体成本分析,原有对讲机大电池和大功率发射机的成本大于LoRa的通信模组的成本。
除了对讲还有一类常用的LoRa点对点应用是测距,SX1280芯片的测距是在两点之间通信实现的。
点对点网络作为通信网络的基础拓扑结构,为复杂网络拓扑提供系统验证和维护检测支持。
2. 二、星状拓扑网络
星状拓扑网络是最常见的拓扑网络结构,比如Wi-Fi是最典型的星状结构。如图5-2所示星状结构的中心为网关,其他的连接都为节点(也叫作终端节点、终端设备或传感器),网关与每个节点通信。LoRa最常见的应用方式也是采用此种网络,这也是LoRa被称为“长Wi-Fi”的原因之一,其组网方式与Wi-Fi相似。

图5-2 星状网络拓扑结构
采用星状结构的LoRa私有协议网络一般不采用SX130X系列网关芯片,而是采用节点芯片作为网关。虽然SX130X网关芯片有很好的上行容量,但是其灵活性较差,需要配合网络服务器才能工作,且一般的小型应用中上行数据量比较小,节点芯片足够完成数据接收。虽然采用节点芯片开发的网关信道少(对比SX1301网关),扩频因子固定,但是对比原有FSK技术有大幅提升。在下行控制的应用中,SX1301网关和单信道网关功能完全相同,SX1301网关的整体成本远大于单信道网关。大量的小型物联网应用,从性价比考虑最终都选择SX127X或SX126X芯片为核心的网关。
针对不同的应用,星状网络的LoRa网关配置和使用方式不同。由于使用节点芯片,网关的接收只能是一种固定频率、扩频因子、带宽的参数组合,针对多路信道和下行控制,衍生出了多种不同的网关形式和网络应用形态。
1.普通模式
普通模式常见小型随机主动上报网络,这里用抄表应用作为案例(节点全部为低功耗设备)。网关和节点都是用相同的节点模块,全部设备工作在相同的工作频率、扩频因子、带宽参数。如图5-3所示,网关的工作状态是一直打开接收通道,等待节点的LoRa数据。节点内部有两种唤醒功能:一种是触发唤醒;另一种是定时唤醒。触发唤醒是当有事件发生时,中断唤醒MCU;定时唤醒是其内部有一个定时器,每 隔一段时间MCU自动唤醒。一个节点MCU唤醒后会读取传感器的数 据,然后将这个数据通过LoRa信号发射出,并打开接收窗口等待网关应答。网关收到数据后会下行应答一个确认信号,该节点收到下行确认信号后,继续进入休眠状态,若未收到下行确认信号,则会重发该数据包。网关收到上行信号后还可以在下行确认数据中加入一些控制命令。比如一个带有闸门功能的LoRa气表上报的数据显示当前气表在漏气,网关可以在下行命令中加入关闸的指令,该气表收到指令后会关闭闸门。但是这些下行命令不是任何时间发送都有效果的,必须在收到对应节点设备的上行数据后,节点打开接收窗口时间内才有效。对于普通模式的LoRa通信存在以下几点风险:
(1)只有一个信道通信,如果出现同频干扰,则整个系统瘫痪。
(2)信道容量太小,如果有更多节点接入,则信道会产生冲突和丢包。
(3)对于低功耗设备的下行控制的实时性差,只能被动等待。

图5-3 星状网络普通模式通信示意图
2.定时问询模式
定时问询模式跟普通模式很相似,主要是针对抄表类节点功能类型完全相同的应用。在该系统中,全部设备工作在相同的频率、扩频因子、带宽参数。网络建立时,网关给每个节点都分配一个序号以及当前的系统标准时间(节点时钟保证与网关相同)。入网后节点就会进入休眠状态,其内部计时器启动,计时的长短是由网关管理的。计时器唤醒MCU后打开接收窗口,等待网关的命令。定时问询模式下的网关不再像普通模式需要一直打开接收窗口,而是主动发送下行命令,根据其MCU内部的时间表,分别在准确的时间与每一个节点进行通信。其通信内容包括被叫节点编号、命令操作、时钟时间校准。当节点收到这些数据后会执行命令操作,并校准自己的时钟进入休眠状态,准备下一次唤醒,如图5-4星状网络定时问询模式通信示意图所示。

图5-4 星状网络定时问询模式通信示意图
每隔一次通信都需要校准一下节点的时钟,保证节点的时间和网关的时间同步。如果没有同步将会发生网关的下行命令与节点的接收窗口错开的问题,如图5-5星状网络定时问询模式时钟偏差示意图所示。这种现象是由网关和节点中的晶振误差引起的。无论网关还是节点的内部时钟都是由晶振提供的,晶振由于工艺和环境不同存在一定的误差。比如一个晶振的误差是20×10-6,意思是这个晶振的误差是0.002%,那么每小时误差为3600s×0.002%=72ms。一般节点接收窗口打开的时间与下行询问的时间间隔成反比。也就是说,如果经常下行询问,且经常校准时钟,节点与网关的时间误差很小,则接收窗口小也不会漏掉下行数据;反之,下行询问时间间隔长,系统的累计时间差很大,就需要更长的接收窗口。如果该系统不具备时间校准功能,即使使用精度再高的晶振,累计误差终究会导致接收发窗口错开。

图5-5 星状网络定时问询模式时钟偏差示意图
这种定时问询模式的优点是时间利用率非常高,由于做了规划,整个系统的通信占用率可以高达80%(考虑信道干扰导致的重传)。但这种模式有一定局限性,只适用于节点类型完全相同的场景。定时问询模式的信道容量有所提升,对于普通模式提出的问题(1)和(3),都无法解决和改善。
3.信道升级模式
针对普通模式的问题(1)和问题(2),信道容量和抗干扰的问题可以通过增加网关的信道来解决。实施方法为在网关中加入多个节点模组,每个模组工作在不同的接收频率。假定网关中有4个模组,分别工作在不同的四个频点(信道),相应的节点每次上行通信时,会随机选择4个信道中的一个进行发送,当网关对应信道的模组收到上行信号后,在该信道发送下行确认命令。图5-6所示为4信道的通信示意图。

图5-6 星状网络信道升级模式通信示意图
若一个模组上行发送后在接收窗口的时间内未能收到确认信号,则会更改一个信道再次发送。通过这样的方式信道容量变为原来的4倍,抗干扰能力也大幅提升。
4.同步下行主动模式
同步下行主动模式,针对普通模式中的问题(3)中低功耗的下行控制实时性问题提出解决方案。同步下行主动模式主要的应用场景是水表、气表闸门的开关和智慧酒店的智能门锁管理。智能门锁管理系统比较复杂且具有代表性。下文通过智能门锁管理的案例展开讨论。
酒店管理希望可以通过应用端远程打开指定的门锁,且不希望有较长的延迟。智能门锁是电池供电,因此需要提供一套低功耗、低延时的下行控制系统。可以利用定时问询模式的下行控制特点,要求所有节点每隔一段周期时间T打开接收窗口,且所有节点的接收窗口RX打开时间点都是完全相同的,且接收窗口的时间长度均为t,其他时间所有节点都进入休眠状态。这个周期间隔T就是应用中客户可以容忍的等待时间,比如在智慧酒店中设定T=1s。所有的LoRa门锁每1s同时唤醒,并同时打开接收窗口t的时间后进入休眠,下一秒再打开,如此往复。当网关通过应用层收到需要打开智能门锁的命令时,则在时间窗口t内发出一条下行指令,指令包括指定的智能门锁编号和操作命令。所有的智能门锁在其打开的接收窗口时间t内都收到了网关的命令,通过解析数据后,除了指定编号的智能门锁外其他的智能门锁会丢弃这条指令进入休眠状态,而被叫到编号的智能门锁执行开锁操作命令,如图5-7星状网络同步下行主动模式通信示意图所示。

图5-7 星状网络同步下行主动模式通信示意图
为了保证所有智能门锁与网关时钟同步,需要通过校准命令来实现。如果直接采用定时问询模式的时钟校准方式,会存在很大的问题。如果一个智能门锁很长一段时间没有被询问和操作,那么这个门锁的时钟会不断累积误差最终偏离正常的接收窗口,并再也无法唤醒(若干天后,累积误差积累到一定程度可能又会回到正常的窗口,但是不可控)。同步下行主动模式采用了定时系统校准的策略,每隔一个比较长的时间,比如100T的时间,进行一次专门的校准工作,所有的智能门锁都在这一时刻校准,称为校准时间窗口,如图5-7所示网关发送的timeTX为校准同步命令。
在一个区域内智能门锁数量非常多且开关频繁的应用中,可以在网关中增加多LoRa模组,并将所有的智能门锁平均分配到指定的通信频道中,网关中的每个模组管理一组智能门锁。为了防止偶然现象引起的智能门锁接收窗口偏离正常状态而无法恢复的状况,可以增加智能门锁的主动上行功能,申请校准时钟。当一个智能门锁在多次的校准时间窗口都未收到校准命令,则在专用频道上行发送申请时间命令戳,网关收到此条命令时下行发送时间戳,如图5-7中终端节点3所发TX为申请时间戳命令。这条专用频道是网关内开辟的专用信道,当网关没有应用层发来的下行发射工作和校准时间工作时会进入专用频道打开接收窗口等待上行需求。
5.异步下行主动模式
同步下行主动模式需要不断地进行校准来应对累计时间误差,这种系统对于网关和节点都比较复杂。所以异步下行主动模式被发明出来。同样用智能门锁为例子,终端继续按照同步下行主动模式的每秒唤醒监听,但是不做系统对时,只要网关的数据包前导长度大于T(1s),所有的终端设备都可以监听到网关的数据,如图5-8星状网络异步下行主动模式通信示意图所示。这就是异步下行主动模式,通过超长的异步下行前导唤醒所有网络中的节点,节点唤醒后,网关发下行指令,包括指定的智能门锁编号和操作命令,对应的智能门锁响应命令。

图5-8 星状网络异步下行主动模式通信示意图
这种方式操作简单,不需要对时,对于小型系统很有优势。其缺点也很明显,每次唤醒目标是操作特定的一个智能门锁,结果所有的智能门锁都醒过来打开接收窗口收完这1s的长包,由于每个智能门锁醒过来的时间不同,接收的时间平均为0.5s。如图5-8所示,当操作终端节点1时另外的两个设备也被唤醒,并打开RX窗口。当下行操作非常频繁时,智能门锁的电池寿命会变差,在下行操作不频繁时,其系统功耗小于同步下行主动模式,具体计算见8.2.2小节。
在实际应用中该模式也有很多的改进方法,比如长前导包切片可以将一个长前导切片为多个带有序号的前导,从而符合无线电规范并减少设备等待时间。
6.星状私有网络的问题
虽然上述的几种模式解决了一部分LoRa通信问题,但是仍有一些问题很难解决。
1)链路预算问题
上述的几种模式都是在小规模且通信链路预算非常充足的环境中使用,当遇到大场景或复杂场景时链路预算问题就会显现出来。由于扩频因子和带宽都是固定的,其链路预算也是固定的。链路预算决定了两个物体之间的通信距离或通信质量,链路预算与传输速率是反比关系,传输速率越慢其工作距离越远。在实际应用中就会出现多节点与网关距离不等的情况,如果在系统中选择较大的链路预算,那么通信速率会降低,信号在空中的飞行时间会增加,从而影响信道容量;如果选择较快的通信速率,系统的链路预算会降低,较远处的节点通信链路容易丢包。由于系统只能有一组传输链路选择,会出现传输速率和传输距离的矛盾,如果有一种不同节点根据其链路情况自主选择通信速率的方法就可以解决上面的问题。
2)多网关频道干扰问题
在小场景中使用时,不需要考虑频道互相干扰问题。当实际应用场景中LoRa网络覆盖无处不在,会出现频道干扰问题。此时的解决方案可以按照运营商蜂窝网络(5.2.1小节有详细介绍)的方式,将频率分组并分隔布局。如果存在一个网络,其内所有设备都使用同样的一组频带,且不互相干扰,也不影响覆盖,这样的网络一定很受欢迎。
3)多网关同步问题
在同步应用的系统里,如果有多个网关存在,该如何进行同步呢?只能在两个网关之间也开辟一条用于同步时钟的通信信道。如果网关数量很大,只从现有的网络架构上考虑,是找不到出路的。
针对上述问题,LoRa联盟推出了LoRaWAN协议,其LoRaWAN网 络(5.2.2小节中讲述)可以解决上述的三个问题。
3. 三、Mesh拓扑结构
Mesh网络即“无线网格网络”,是“多跳”(mult-ihop)网络,是由Ad-hoc网络发展而来的。无线Mesh网络凭借多跳互连和网状拓扑特性,已经演变为适用于宽带家庭网络、社区网络、企业网络和城域网络等多种无线接入网络的有效解决方案。使用Mesh技术的代表技术就是ZigBee技术。
提到LoRa也使用Mesh技术,大家会很好奇,因为在正常的应用中LoRa的覆盖半径是ZigBee的10倍,根本没有必要使用Mesh技术。但一些LoRa应用需要在较高通信速率下将数据传输到很远的地方,已知高速率下LoRa的灵敏度会降低,所以在这些远距离、高通信速率的LoRa应用中,就要使用到Mesh技术。
常见的LoRaMesh应用有野外数据传输和智能水表、智能电表。在森林和荒野的数据采集和传输中,由于几十千米甚至上百千米的区域内没有蜂窝网络和有线网络。要把森林和荒野深处的数据传输到有网络的地方,单靠LoRa单跳的传输距离是不够的,需要在传输路径上多级中继转发。表计的Mesh应用为一些覆盖较差的表计很难直接与网关通信,需要多跳模式通信。图5-9所示为表计的常见Mesh组网方式。

图5-9 表计Mesh组网示意图
图5-9中,三角形为路由器,也叫中继转发器;中间的大圆代表网关或集中器;周围的小圆形为终端节点。其内部路由表会在第一次入网时进行计算并保存。这种结构与用于智能水表和智能电表时的解决方案不同。电表由于自身带电,对省电要求不高,但是对于传输的数据量需求很大,需要把大量的数据高速传输出去,由于亚非拉地区的蜂窝网覆盖很差,且电表放置环境恶劣,因此需要LoRa把信号传得更远些,从而使用Mesh结构。而水表的应用主要是采用下行唤醒方式叫号问询指定水表的数据信息,也采用相对较快的速率,如SF=7、BW=125kHz配置下的5.5kb/s传输速率,以减小通信时间。整个系统都是采用电池供电的低功耗设备,通信时间的减少对于电池寿命非常关键。
对比ZigBee的Mesh,LoRaMesh具有一种特殊的低功耗用法,异步下行主动模式。在传统的ZigBee系统中,具有转发中继功能的节点都是供电充足的设备,LoRa的中继转发器可以是电池供电的。LoRa系统中可以利用异步长包唤醒的方式省电,牺牲了传输时间换功耗,6.2.1小节中LoRaWAN的Relay功能也是利用了此种方式,重复多次Relay就是多级LoRaMesh。
随着技术发展,智能抄表形式还可以使用网状Mesh结构。图5-10所示为表计网状Mesh结构示意图所示,增加网络的中继种类和通路。抄表数据采集的方式也可以实现多种,既可以用固定形式网关采集,也可以移动形式的手持设备采集。

图5-10 表计网状Mesh结构示意图