第5章 LoRa的网络系统 第5章〓LoRa的网络系统 本章主要介绍LoRa的网络架构。市场上常见的LoRa应用中使用的网络架构包括私有协议网络和LoRaWAN网络。本章对LoRaWAN网络构成做了详尽的讲解,包括LoRaWAN网络的优、劣势以及不同应用的网络选择问题。在常见的LoRa私有协议网络中,星状网络结构是最常见的,同时也有一些其他形式的网络结构,如一些LoRa电表应用采用Mesh树状结构,一些LoRa水表应用采用网状结构。 LoRaWAN网络是市场上唯一的LoRa生态达成共识的协议,是LoRa联盟为了推动LoRa应用而开发的标准,虽然在国外有非常高的市场占有率,但在国内的市场占有率较低。这个问题跟中国的市场和国情相关,也与LoRaWAN网络架构的特性相关。虽然LoRaWAN网络对比运营商NBIoT网络是轻量级的网络,但是依然需要网络服务器(NS)和应用服务器(AS)的支持。对比最简单的小网络,结构复杂很多。通过学习本章,读者可以充分了解常用LoRa网络架构,包括它们的对比和特点,对于LoRa应用计算以及LoRaWAN网络协议理解都有很大的帮助。 好的物理层技术不一定可以实现好的应用,其网络架构和通信协议也是至关重要的。通过分析私有协议网络与LoRaWAN网络差别,读者可以理解国内外市场的差异和早期LoRa推广策略对今天市场格局的影响。本章还会介绍传统运营商的蜂窝网络系统,通过LoRaWAN网络与运营商蜂窝网络技术对比,可以充分了解LoRaWAN网络的物联网特性。 视频讲解 5.1常用的LoRa网络结构 经过前面章节的学习,已知道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拓扑结构。 5.1.1点对点的LoRa网络 点对点(P2P)的通信方式在无线通信中是最早出现也是最常见的技术之一,如图51所示,比如早期的无线门铃、无线开关、无线对讲机等。LoRa技术应用于点对点通信时,规定主机和从机即可,不需要分为网关和节点。 图51点对点网络拓扑结构 一般会由主机主动发起命令和任务,从机响应; 主机和从机是可以互换的,LoRa的节点芯片是支持半双工通信的,可以很好地支持这类应用。 LoRa点对点通信的优点是架构简单,尤其对于初学者,最好的学习方式就是采用点对点通信的方式,调节扩频因子、带宽等参数观察灵敏度和信噪比的变化。在实际的LoRa应用中,点对点通信并不多,主要原因是市场应用都在升级,原有的按键门铃等应用随着智能家居的发展,都可以通过网关联网,变为星状网络结构; 而许多对讲机原来的点对点网络也变成了广播式的网状网络结构,有的对讲机应用还增加了Mesh结构。当你仅有一对LoRa收发机的时候才是真正的P2P网络形式。 LoRa对讲机应用于P2P网络最主要利用了远距离、抗干扰、低功耗的优势。许多大尺寸如5W、10W输出功率的非标商用对讲机,现在都换成了小功率的LoRa对讲机。LoRa对讲机功耗只有原来的十分之一,且通信距离更远了,信号抗干扰也变强了。从整体成本分析,原有对讲机大电池和大功率发射机的成本大于LoRa的通信模组的成本。 除了对讲还有一类常用的LoRa点对点应用是测距,SX1280芯片的测距是在两点之间通信实现的。 点对点网络作为通信网络的基础拓扑结构,为复杂网络拓扑提供系统验证和维护检测支持。 视频讲解 5.1.2星状拓扑网络 星状拓扑网络是最常见的拓扑网络结构,比如WiFi是最典型的星状结构。如图52所示星状结构的中心为网关,其他的连接都为节点(也叫作终端节点、终端设备或传感器),网关与每个节点通信。 图52星状网络拓扑结构 LoRa最常见的应用方式也是采用此种网络,这也是LoRa被称为“长WiFi”的原因之一,其组网方式与WiFi相似。 采用星状结构的LoRa私有协议网络一般不采用SX130X系列网关芯片,而是采用节点芯片作为网关。虽然SX130X网关芯片有很好的上行容量,但是其灵活性较差,需要配合网络服务器才能工作,且一般的小型应用中上行数据量比较小,节点芯片足够完成数据接收。虽然采用节点芯片开发的网关信道少(对比SX1301网关),扩频因子固定,但是对比原有FSK技术有大幅提升。在下行控制的应用中,SX1301网关和单信道网关功能完全相同,SX1301网关的整体成本远大于单信道网关。大量的小型物联网应用,从性价比考虑最终都选择SX127X或SX126X芯片为核心的网关。 针对不同的应用,星状网络的LoRa网关配置和使用方式不同。由于使用节点芯片,网关的接收只能是一种固定频率、扩频因子、带宽的参数组合,针对多路信道和下行控制,衍生出了多种不同的网关形式和网络应用形态。 1. 普通模式 普通模式常见小型随机主动上报网络,这里用抄表应用作为案例(节点全部为低功耗设备)。网关和节点都是用相同的节点模块,全部设备工作在相同的工作频率、扩频因子、带宽参数。如图53所示,网关的工作状态是一直打开接收通道,等待节点的LoRa数据。节点内部有两种唤醒功能: 一种是触发唤醒; 另一种是定时唤醒。触发唤醒是当有事件发生时,中断唤醒MCU; 定时唤醒是其内部有一个定时器,每隔一段时间MCU自动唤醒。一个节点MCU唤醒后会读取传感器的数据,然后将这个数据通过LoRa信号发射出,并打开接收窗口等待网关应答。网关收到数据后会下行应答一个确认信号,该节点收到下行确认信号后,继续进入休眠状态,若未收到下行确认信号,则会重发该数据包。网关收到上行信号后还可以在下行确认数据中加入一些控制命令。比如一个带有闸门功能的LoRa气表上报的数据显示当前气表在漏气,网关可以在下行命令中加入关闸的指令,该气表收到指令后会关闭闸门。但是这些下行命令不是任何时间发送都有效果的,必须在收到对应节点设备的上行数据后,节点打开接收窗口时间内才有效。对于普通模式的LoRa通信存在以下几点风险: (1) 只有一个信道通信,如果出现同频干扰,则整个系统瘫痪。 (2) 信道容量太小,如果有更多节点接入,则信道会产生冲突和丢包。 (3) 对于低功耗设备的下行控制的实时性差,只能被动等待。 图53星状网络普通模式通信示意图 2. 定时问询模式 定时问询模式跟普通模式很相似,主要是针对抄表类节点功能类型完全相同的应用。在该系统中,全部设备工作在相同的频率、扩频因子、带宽参数。网络建立时,网关给每个节点都分配一个序号以及当前的系统标准时间(节点时钟保证与网关相同)。入网后节点就会进入休眠状态,其内部计时器启动,计时的长短是由网关管理的。计时器唤醒MCU后打开接收窗口,等待网关的命令。定时问询模式下的网关不再像普通模式需要一直打开接收窗口,而是主动发送下行命令,根据其MCU内部的时间表,分别在准确的时间与每一个节点进行通信。其通信内容包括被叫节点编号、命令操作、时钟时间校准。当节点收到这些数据后会执行命令操作,并校准自己的时钟进入休眠状态,准备下一次唤醒,如图54星状网络定时问询模式通信示意图所示。 图54星状网络定时问询模式通信示意图 每隔一次通信都需要校准一下节点的时钟,保证节点的时间和网关的时间同步。如果没有同步将会发生网关的下行命令与节点的接收窗口错开的问题,如图55星状网络定时问询模式时钟偏差示意图所示。这种现象是由网关和节点中的晶振误差引起的。无论网关还是节点的内部时钟都是由晶振提供的,晶振由于工艺和环境不同存在一定的误差。比如一个晶振的误差是20×10-6,意思是这个晶振的误差是0.002%,那么每小时误差为3600s×0.002%=72ms。一般节点接收窗口打开的时间与下行询问的时间间隔成反比。也就是说,如果经常下行询问,且经常校准时钟,节点与网关的时间误差很小,则接收窗口小也不会漏掉下行数据; 反之,下行询问时间间隔长,系统的累计时间差很大,就需要更长的接收窗口。如果该系统不具备时间校准功能,即使使用精度再高的晶振,累计误差终究会导致接收发窗口错开。 图55星状网络定时问询模式时钟偏差示意图 这种定时问询模式的优点是时间利用率非常高,由于做了规划,整个系统的通信占用率可以高达80%(考虑信道干扰导致的重传)。但这种模式有一定局限性,只适用于节点类型完全相同的场景。定时问询模式的信道容量有所提升,对于普通模式提出的问题(1)和(3),都无法解决和改善。 3. 信道升级模式 针对普通模式的问题(1)和问题(2),信道容量和抗干扰的问题可以通过增加网关的信道来解决。实施方法为在网关中加入多个节点模组,每个模组工作在不同的接收频率。假定网关中有4个模组,分别工作在不同的四个频点(信道),相应的节点每次上行通信时,会随机选择4个信道中的一个进行发送,当网关对应信道的模组收到上行信号后,在该信道发送下行确认命令。图56所示为4信道的通信示意图。 图56星状网络信道升级模式通信示意图 若一个模组上行发送后在接收窗口的时间内未能收到确认信号,则会更改一个信道再次发送。通过这样的方式信道容量变为原来的4倍,抗干扰能力也大幅提升。 4. 同步下行主动模式 同步下行主动模式,针对普通模式中的问题(3)中低功耗的下行控制实时性问题提出解决方案。同步下行主动模式主要的应用场景是水表、气表闸门的开关和智慧酒店的智能门锁管理。智能门锁管理系统比较复杂且具有代表性。下文通过智能门锁管理的案例展开讨论。 酒店管理希望可以通过应用端远程打开指定的门锁,且不希望有较长的延迟。智能门锁是电池供电,因此需要提供一套低功耗、低延时的下行控制系统。可以利用定时问询模式的下行控制特点,要求所有节点每隔一段周期时间T打开接收窗口,且所有节点的接收窗口RX打开时间点都是完全相同的,且接收窗口的时间长度均为t,其他时间所有节点都进入休眠状态。这个周期间隔T就是应用中客户可以容忍的等待时间,比如在智慧酒店中设定T=1s。所有的LoRa门锁每1s同时唤醒,并同时打开接收窗口t的时间后进入休眠,下一秒再打开,如此往复。当网关通过应用层收到需要打开智能门锁的命令时,则在时间窗口t内发出一条下行指令,指令包括指定的智能门锁编号和操作命令。所有的智能门锁在其打开的接收窗口时间t内都收到了网关的命令,通过解析数据后,除了指定编号的智能门锁外其他的智能门锁会丢弃这条指令进入休眠状态,而被叫到编号的智能门锁执行开锁操作命令,如图57星状网络同步下行主动模式通信示意图所示。 图57星状网络同步下行主动模式通信示意图 为了保证所有智能门锁与网关时钟同步,需要通过校准命令来实现。如果直接采用定时问询模式的时钟校准方式,会存在很大的问题。如果一个智能门锁很长一段时间没有被询问和操作,那么这个门锁的时钟会不断累积误差最终偏离正常的接收窗口,并再也无法唤醒(若干天后,累积误差积累到一定程度可能又会回到正常的窗口,但是不可控)。同步下行主动模式采用了定时系统校准的策略,每隔一个比较长的时间,比如100T的时间,进行一次专门的校准工作,所有的智能门锁都在这一时刻校准,称为校准时间窗口,如图57所示网关发送的time TX为校准同步命令。 在一个区域内智能门锁数量非常多且开关频繁的应用中,可以在网关中增加多LoRa模组,并将所有的智能门锁平均分配到指定的通信频道中,网关中的每个模组管理一组智能门锁。为了防止偶然现象引起的智能门锁接收窗口偏离正常状态而无法恢复的状况,可以增加智能门锁的主动上行功能,申请校准时钟。当一个智能门锁在多次的校准时间窗口都未收到校准命令,则在专用频道上行发送申请时间命令戳,网关收到此条命令时下行发送时间戳,如图57中终端节点 3所发TX为申请时间戳命令。这条专用频道是网关内开辟的专用信道,当网关没有应用层发来的下行发射工作和校准时间工作时会进入专用频道打开接收窗口等待上行需求。 5. 异步下行主动模式 同步下行主动模式需要不断地进行校准来应对累计时间误差,这种系统对于网关和节点都比较复杂。所以异步下行主动模式被发明出来。同样用智能门锁为例子,终端继续按照同步下行主动模式的每秒唤醒监听,但是不做系统对时,只要网关的数据包前导长度大于T(1s),所有的终端设备都可以监听到网关的数据,如图58星状网络异步下行主动模式通信示意图所示。这就是异步下行主动模式,通过超长的异步下行前导唤醒所有网络中的节点,节点唤醒后,网关发下行指令,包括指定的智能门锁编号和操作命令,对应的智能门锁响应命令。 图58星状网络异步下行主动模式通信示意图 这种方式操作简单,不需要对时,对于小型系统很有优势。其缺点也很明显,每次唤醒目标是操作特定的一个智能门锁,结果所有的智能门锁都醒过来打开接收窗口收完这1s的长包,由于每个智能门锁醒过来的时间不同,接收的时间平均为0.5s。如图58所示,当操作终端节点 1时另外的两个设备也被唤醒,并打开RX窗口。当下行操作非常频繁时,智能门锁的电池寿命会变差,在下行操作不频繁时,其系统功耗小于同步下行主动模式,具体计算见8.2.2小节。 在实际应用中该模式也有很多的改进方法,比如长前导包切片可以将一个长前导切片为多个带有序号的前导,从而符合无线电规范并减少设备等待时间。 6. 星状私有网络的问题 虽然上述的几种模式解决了一部分LoRa通信问题,但是仍有一些问题很难解决。 1) 链路预算问题 上述的几种模式都是在小规模且通信链路预算非常充足的环境中使用,当遇到大场景或复杂场景时链路预算问题就会显现出来。由于扩频因子和带宽都是固定的,其链路预算也是固定的。链路预算决定了两个物体之间的通信距离或通信质量,链路预算与传输速率是反比关系,传输速率越慢其工作距离越远。在实际应用中就会出现多节点与网关距离不等的情况,如果在系统中选择较大的链路预算,那么通信速率会降低,信号在空中的飞行时间会增加,从而影响信道容量; 如果选择较快的通信速率,系统的链路预算会降低,较远处的节点通信链路容易丢包。由于系统只能有一组传输链路选择,会出现传输速率和传输距离的矛盾,如果有一种不同节点根据其链路情况自主选择通信速率的方法就可以解决上面的问题。 2) 多网关频道干扰问题 在小场景中使用时,不需要考虑频道互相干扰问题。当实际应用场景中LoRa网络覆盖无处不在,会出现频道干扰问题。此时的解决方案可以按照运营商蜂窝网络(5.2.1小节有详细介绍)的方式,将频率分组并分隔布局。如果存在一个网络,其内所有设备都使用同样的一组频带,且不互相干扰,也不影响覆盖,这样的网络一定很受欢迎。 3) 多网关同步问题 在同步应用的系统里,如果有多个网关存在,该如何进行同步呢?只能在两个网关之间也开辟一条用于同步时钟的通信信道。如果网关数量很大,只从现有的网络架构上考虑,是找不到出路的。 针对上述问题,LoRa联盟推出了LoRaWAN协议,其LoRaWAN网络(5.2.2小节中讲述)可以解决上述的三个问题。 5.1.3Mesh拓扑结构 Mesh网络即“无线网格网络”,是“多跳”(multihop)网络,是由Adhoc网络发展而来的。无线 Mesh 网络凭借多跳互连和网状拓扑特性,已经演变为适用于宽带家庭网络、社区网络、企业网络和城域网络等多种无线接入网络的有效解决方案。使用Mesh技术的代表技术就是ZigBee技术。 提到LoRa也使用Mesh技术,大家会很好奇,因为在正常的应用中LoRa的覆盖半径是ZigBee的10倍,根本没有必要使用Mesh技术。但一些LoRa应用需要在较高通信速率下将数据传输到很远的地方,已知高速率下LoRa的灵敏度会降低,所以在这些远距离、高通信速率的LoRa应用中,就要使用到Mesh技术。 常见的LoRa Mesh应用有野外数据传输和智能水表、智能电表。在森林和荒野的数据采集和传输中,由于几十千米甚至上百千米的 图59表计Mesh组网示意图 区域内没有蜂窝网络和有线网络。要把森林和荒野深处的数据传输到有网络的地方,单靠LoRa单跳的传输距离是不够的,需要在传输路径上多级中继转发。表计的Mesh应用为一些覆盖较差的表计很难直接与网关通信,需要多跳模式通信。图59所示为表计的常见Mesh组网方式。 图59中,三角形为路由器,也叫中继转发器; 中间的大圆代表网关或集中器; 周围的小圆形为终端节点。其内部路由表会在第一次入网时进行计算并保存。这种结构与用于智能水表和智能电表时的解决方案不同。电表由于自身带电,对省电要求不高,但是对于传输的数据量需求很大,需要把大量的数据高速传输出去,由于亚非拉地区的蜂窝网覆盖很差,且电表放置环境恶劣,因此需要LoRa把信号传得更远些,从而使用Mesh结构。而水表的应用主要是采用下行唤醒方式叫号问询指定水表的数据信息,也采用相对较快的速率,如SF=7、BW=125kHz配置下的5.5kb/s传输速率,以减小通信时间。整个系统都是采用电池供电的低功耗设备,通信时间的减少对于电池寿命非常关键。 对比ZigBee的Mesh,LoRa Mesh具有一种特殊的低功耗用法,异步下行主动模式。在传统的ZigBee系统中,具有转发中继功能的节点都是供电充足的设备,LoRa的中继转发器可以是电池供电的。LoRa系统中可以利用异步长包唤醒的方式省电,牺牲了传输时间换功耗,6.2.1小节中LoRaWAN的Relay功能也是利用了此种方式,重复多次Relay就是多级LoRa Mesh。 随着技术发展,智能抄表形式还可以使用网状Mesh结构。图510所示为表计网状Mesh结构示意图所示,增加网络的中继种类和通路。抄表数据采集的方式也可以实现多种,既可以用固定形式网关采集,也可以移动形式的手持设备采集。 图510表计网状Mesh结构示意图 5.2LoRaWAN网络结构 5.1节讲述了常见的LoRa网络结构,在星状网络结构中提到了多个问题点,这些问题点在传统的单一拓扑网络结构中很难解决,而LoRaWAN技术可以解决这些问题。我们首先通过学习运营商蜂窝网络的技术特点,了解蜂窝网是如何解决传统网络问题的,再学习LoRaWAN的网络技术,通过对比可以更深刻地了解LoRaWAN的网络优势。本章对网络结构部分的讲解循序渐进,从简单的网络拓扑开始,到实际应用的简单网络,再到复杂的运营商蜂窝网络,最后到本章要讲解的核心LoRaWAN网络。LoRaWAN网络技术出现最晚,吸取了前面技术的优势并引入大量物联网创新。 视频讲解 5.2.1蜂窝移动通信系统 蜂窝移动通信(Cellular Mobile Communication)采用蜂窝无线组网方式,在终端和网络设备之间通过无线通道连接起来,进而实现用户在活动中相互通信。其主要特征是终端的移动性,并具有越区切换和跨本地网自动漫游功能。 1. 移动通信网的基本组成 移动通信无线服务区由许多正六边形蜂窝小区覆盖而成,通过接口与公众通信网(PSTN、PSDN)互连,图511所示。 图511典型蜂窝移动通信系统图 移动通信系统包括移动交换子系统(SS)、操作维护管理子系统(OMS)、基站子系统(BSS)、移动台(MS),是一个完整的信息传输实体。 BSS和SS共同建立呼叫。BSS提供并管理移动台和SS之间的无线传输通道,SS负责呼叫控制功能,所有呼叫都经由SS建立连接,OMS负责管理控制整个移动,MS由移动终端设备和用户数据两部分组成,用户识别卡(SIM)与移动终端设备分离,用于存放用户数据。 从图511中可以看出一个基站实现一个正六边形蜂窝小区覆盖,而几个BSS管理。当用户在同一个BSS内移动时,需要切换基站是由本地的移动交换中心(MSC)完成,当跨BSS时,需要两个MSC通过公众通信网(PSTN)连接协调。数字TDMA第二代系统是由MS辅助切换(MAHO)。 下面的内容,针对几个关键问题进行分析讨论: 容量及覆盖问题、频道分配问题、跨区问题(信道切换)、频道干扰问题、扩容问题。 2. 频率复用和蜂窝小区覆盖 无线通信最重要的问题是解决频率资源有限和用户容量问题。针对区域覆盖,有常见的两种方式: 1) 小容量的大区制 (1) 一个基站覆盖整个服务区,发射功率要大,利用分集接收等技术来保证上行链路的通信质量。 (2) 虽然覆盖范围大,但是只能适用于小容量的通信网。 2) 大容量的小区制 (1) 采用频率复用方式。 (2) 将覆盖区域划分为若干小区,每个小区设立一个基站服务于本小区,但各小区可重复使用频率。 (3) 由于频率的复用,带来同频干扰的问题。 由于移动互联网具有大容量的要求,所以在当时的技术条件下,选择了小区制覆盖方式。小区制的概念: 将所要覆盖的地区划分为若干小区,每个小区的半径可视用户的分布密度在1~10km,在每个小区设立一个基站为本小区范围内的用户服务。从而就出现了频率复用的需求。用有限的频率数就可以服务多个小区,每一个小区和其他小区可再重复使用这些频率,称为频率复用。这种组网方式可以构成大区域、大容量移动通信系统。 为了便于讨论覆盖和频率复用,先从简单的带状服务覆盖区展开讨论,一般应用在铁路、公路、沿海等。按横向排列覆盖整个服务区,基站(BS)使用定向天线,由许多细长的无线小区相连而成。 为了克服同频干扰,常采用双频组、三频组或四频组的频率配置方式。双频组和三频组频率配置如图512所示。从造价和频率利用率来看,选择双频组最好,但双频组的抗干扰能力最差。 图512多频组频率配置 系统的抗干扰能力是由同频基站之间的距离决定的,当使用三个或者三个以上的频率时,相同频率的基站之间的距离间隔是两个以上的小区空间,其同频干扰大幅下降。但是依然会存在一些位置由于环境影响或者建站的站点位置不理想,引起同频干扰。 而实际应用中的绝大多数的覆盖都是面状服务覆盖区,陆地移动通信大部分是在一个宽广的平面上实现的,由平面服务区内的无线小区组成的实际形状取决于电波传播条件和天线的方向性。如果服务区的地形相同,且基站采用全向天线,其覆盖范围大体是一个圆。为了不留空隙地覆盖整个服务区,无线小区之间会有大量的重叠。在考虑重叠之后,每个小区实际的有效覆盖区是一个圆的内接多边形,这些多边形有正三角形、正方形和正六边形。通过数学家多年来的计算和证明,正六边形小区形状最佳,相互邻接构成蜂窝状网络结构,故称为蜂窝网。 为了实现同频复用,防止同频干扰,要求每个区群中的小区,不得使用相同频率,只有在不同的无线区群中,才可使用相同的频率进行频率复用。这就需要我们对基站的位置以及实际的环境进行分析。如图513所示,基站发射机位置分为: 中心激励小区: 安置在小区的中心,如图513(a)所示为全向辐射天线基站。 顶点激励小区: 安置在六边形顶点之中的三个顶点上,如图513(b)所示为扇形辐射天线基站。 图513基站发射机位置示意图 应用中激励方式一般为中心激励。 由于地形地貌、传播环境、衰落形式的多样性,小区的实际无线覆盖是一个不规则的形状,如图514所示。一个小区实际的无线覆盖是不规则的,所以一定要保证同频的区域覆盖之间的间隔足够大。 图514小区无线覆盖形状 蜂窝网络每个区域有相邻的6个区域,且考虑频率复用的问题,所以至少有多种不同的频率组才可以满足干扰问题,这个数学家和拓扑学家已经给出了答案,典型值为4、7或12种。采用4组频率的区群方案,同频小区只间隔一个区域,容易引起同频干扰,实际场景一般选择7组频率的方案。图515中共有A、B、C、D、E、F、G七组频率组,可以看到同频之间间隔为2个区域,其同频干扰问题得到了一定的解决。 图515七小区频率复用的图解 3. 信道切换 1) 信道切换概念 当移动用户处于通话状态时,如果用户从一个小区移动到另一个小区,为保证通话的连续,系统要对该移动台的连接控制也从一个小区转移到另一小区。将处于正在通话的移动台转移到新的业务信道(新小区)的过程称为切换。 2) 信道切换目的 实现蜂窝移动通信的“无缝隙”覆盖,即当移动台从一个小区进入另一个小区时,保证通信的连续性。切换的操作不仅包括识别新的小区,而且需要分配给移动台在新小区的语音信道和控制信道。 3) 引起切换的常见原因 (1) 信号的强度或质量下降到系统规定的一定参数以下,此时移动台被切换到信号强度较强的相邻小区。 (2) 由于某小区业务信道容量全被占用或几乎全被占用,这时移动台被切换到业务信道容量较空闲的相邻小区。 第一种原因引起的切换一般由移动台发起; 第二种原因引起的切换一般由上级实体发起。 4) 频率切换会带来一些问题 (1) 当移动速度变化范围较大时,系统设计将遇到许多问题。由于移动速度快,其信号强度变化大,因此检测后容易出现判断错误,或出现还未稳定切换到下一个频率,移动物体已经进入下一个区域的情况。 (2) 小区拖尾问题。由于用户以非常慢的速度离开基站,平均信号能量衰减不快,即使当用户远离了小区的预定范围,基站接收的信号仍然可能高于切换门限,因此若不做切换,就会产生潜在的干扰和话务量管理问题,因为用户那时已深入到了相邻小区中。 4. 扩容问题 小区分裂是一种将拥塞的小区分成更小小区的方法,分裂后的每个小区都有自己的基站并相应地降低天线高度和减小发射机功率。假设每个小区都按半径的一半来分裂,如图516所示。为了用这些更小的小区来覆盖整个服务区域,将需要大约为原来小区数目4倍的小区。最终整个服务区基站数目增加。 可以看出小区分裂的方法的确可以带来更多的容量,除了需要更多的基站数目外,还需要对新基站的站点位置有一定的要求,如图516(b)所示。且为了防止同频干扰,又要做新的频率规划和区域划分,如图516(a)所示。小区分裂在实际应用环境中,会遇到大量的工程问题,尤其是早期完成的网络覆盖区域,做小区分裂更加困难。 图516小区分裂的图例 视频讲解 5.2.2LoRaWAN网络 在5.2.1小节的移动通信蜂窝网络介绍中,虽然技术上有多种创新,仍然有一些问题无法解决,比如地形引起的同频干扰,跨基站的快速移动和小区拖尾问题,站点位置选择问题,扩容的网优和新基站选址问题。针对这些困扰蜂窝网多年的问题,LoRa联盟经过大量的研究和讨论,最终推出了LoRaWAN网络。LoRa联盟的早期成员中有不少是运营商,且LoRaWAN协议最初创立的目的也是为运营商蜂窝网所用,可以说LoRaWAN的网络架构是站在巨人的肩膀上设计出来的。 1. LoRaWAN网络系统组成 如图517所示,LoRaWAN网络的系统由4部分组成,分别是终端节点(End Nodes)、网关(Gateway)、网络服务器(Network Server)、应用服务器(Application Server)。其中,终端节点也叫终端设备(End Device)、传感器(Sensor)或者节点(Nodes); 网关也可以叫集中器(Concentrator)或者基站(Base Station)。由于LoRaWAN应用于物联网中,所以服务和连接的对象是终端节点,对应于移动通信网络中的用户(也叫移动台)。LoRaWAN网络中的网关对应于移动通信网络中的基站; LoRaWAN网络中的网络服务器对应于移动通信网络中的移动交换中心(MSC)或移动台辅助切换(MAHO); 而LoRaWAN网络中的网关与网络服务器之间的连接方式采用3G/4G等移动通信网络或以太网网线连接的方式,对应于移动通信网络中的公众通信网(PSTN、PSDN)。根据应用和服务不同,LoRaWAN网络系统需要应用服务器的支持,它是LoRaWAN系统组成的必要部分,而移动通信网络中并非必要组成项。这是因为LoRaWAN的节点一定是为了满足某种业务而存在,几乎不存在没有服务业务而挂在网上的情况。这个情况与移动通信网络不同,移动通信服务的目的是让用户一直连接在网络上,对于运行什么业务并不关心。这也是物联网的网络系统与移动通信网系统的重要差别之一。 图517LoRaWAN网络的系统组成 在LoRaWAN网络中,终端节点通过LoRa无线通信与网关连接,网关通过现有的有线/无线网络(以太网/蜂窝网)与网络服务器连接,网络服务器再通过以太网与应用服务器连接。一次通信过程可以是终端节点发起或由应用服务器发起,网关和网络服务器只是实现透传和网络管理的工作,与业务没有直接关系。LoRaWAN网关只是不断接收节点发来的数据并传给网络服务器,而网络服务器会整理数据发往应用服务器; 应用服务器收到节点的业务数据后,响应应答指令发往网络服务器,网络服务器管理网关下发命令到达原业务节点。 从LoRaWAN网络的系统与移动通信网系统的类比中,可以发现两个系统的构造非常相似,不过在网络连接上有几点不同: (1) 终端节点与网关的连接方式不同。从图517中可以看出,有的终端节点(图中宠物追踪)与一个LoRaWAN网关的连接,有的终端节点(图中水表)同时连接两个网关,而有的终端节点(图中的垃圾桶)同时连接三个网关。这与移动通信网系统中一个用户连接一个网关的方式完全不同。 (2) 网关与网关间的连接不同。在移动通信网中,每个区域的MSC管理BSS中的多个基站,而LoRaWAN网络系统中所有的网关之间是独立的,没有任何关系,不需要做频率分配,也不需要做跨网管理。 (3) 网关与网络服务器的连接不同。移动通信网中由于系统对于网络的稳定性要求很高,对于上下行通信延迟要求非常高,一般通过光纤交换进行快速数据交互,其延迟在几毫秒; 而LoRaWAN网络采用传统的网线或3/4G网络作为连接数据交互手段,这样的网络延迟和稳定性很差,数据交互经常需要上百毫秒。 LoRaWAN的这些不同特点是由于其物联网属性决定的,通过轻量级的管理和实施方式实现更多的节点稳定接入。LoRaWAN采用自适应速度、多信道、同频网络规划的方案实现其物联网属性。 2. 自适应数据速率 LoRaWAN网络标准是根据物联网的需求制定的,LoRa芯片的定义也是遵循这一最终目标。针对5.1.2小节提出的链路预算问题,LoRaWAN网络协议开发了自适应数据速率(Adaptive Data Rate,ADR)的功能。 在传统的星状结构网络中,由于采用节点芯片作为网关通信部分,该网络系统只能支持一组特定的链路选择(固定的扩频因子SF、频率f和带宽BW),而当采用SX130X系列的网关芯片作为网关通信核心后,网关可以同时解调不同的链路设置。星状结构网络中无法解决的不同终端传输速率和传输距离需求不同的问题可以通过更换网关和采用LoRaWAN协议来实现。 在LoRaWAN协议中规定了通信信道带宽为125kHz,扩频因子从SF=7~SF=12可选。终端节点的通信速率可以从SF=12的290b/s到SF=7的5.5kb/s中选择(LoRaWAN V1.1之前只有SF=7~12这6种速率,相信之后会扩展到SF=5和SF=6)。 自适应数据速率ADR的实现: (1) LoRaWAN网关收到终端节点的数据后,可以获得该数据的信噪比和信号强度,通过这两个参数可以估算出节点与网关之间的链路余量是多少,这个链路余量可以理解为网关和节点之间还可以增加多少通信距离。 (2) 当发现链路余量比较大时,网关可以发送命令让终端节点以更高的速率和更小的发射功率工作,依然可以保证系统稳定工作。提高通信速率既可以减少终端节点发射时间从而减小功耗,又可以减少其信道的占用增加信道容量。减小发射功率有两点好处: 一是减小终端节点的功耗; 二是减小该信号的传输距离,从而减小其对整个服务区的其他网关信道占用。 (3) 当终端节点上行命令未得到应答时,可以自动调节其发射功率和扩频因子,增加其信号传输距离实现与网关通信。在实际应用中自适应数据速率选择是一个可选配置,用户可以根据终端设备的应用不同配置该功能,从而实现信道容量提升,网络干扰降低,设备功耗降低。 图518为一个LoRaWAN系统中距离与扩频因子、功率的仿真图,图的中间是一个LoRaWAN网关,通信椭圆长轴表示终端与基站的距离。终端节点距离网关近时,由于链路损耗很小,可以选择很低的功率和SF=7的扩频因子,用最快的通信速率。当终端节点与网关的距离变大后,需要提高功率或使用更大的扩频因子。从仿真图中可以看出,不同的距离使用不同的扩频因子和功率。扩频因子比较大时速率较低,信号的空中飞行时间长,对信道的占用较大。一个SF=12的通信时长大于10个SF=7的通信时长。所以,在LoRaWAN覆盖时,信道容量主要由距离基站较远的终端节点决定。 图518LoRaWAN 距离与ADR仿真图 3. LoRaWAN覆盖及频率规划 1) LoRaWAN频率使用 LoRaWAN网络系统中并没有规定其信道数量,应当遵守本地区的无线电管理规范。在星状网络的讨论中已经知道,信道越多其容量会越大,如图519所示LoRaWAN使用4信道时的ADR覆盖情况。这两幅图为城市中以网关为中心的等距同心圆,同圆环区域内的传输速率是相同的。图519(a)中只有1个信道,而图519(b)中有4个信道,那么整个网关的信道容量直接变为原来的4倍。 图519LoRaWAN ADR与城市覆盖 LoRaWAN的网关设计和频率规划中,一般采用8信道模式,这是因为Semtech的SX130X为8信道设计。大容量场景的网络规划可以采用16或64信道的网关,只要所用的频率符合当地规范。 2) LoRaWAN的覆盖 吸取了大区制和小区制的优点,采用小区制的覆盖方法,每个小区又使用了相同的频率,反而没有同频干扰的问题。整个网络采用同频信道,这是LoRaWAN网络的一大特点,可以理解为基站协作接收,具体内容见1.2.5节。当移动通信网络被同频干扰困扰而采用七小区频率复用的方案时,LoRaWAN网络中网关和节点工作在同样一组信道上(常用为8个信道,也可为多个)。通过这种网络规划,跨区、跨基站引起的切换频率问题都可以迎刃而解。那么节点到底是与哪个基站进行通信的呢?在LoRaWAN网络的系统组成图中,一个终端节点可以与多个网关通信。如图520所示,在实际的应用中,一个终端节点发射的上行数据会被一个或多个网关接收,网关只做数据透传,把解调的数据一起传输到网络服务器。假设一个LoRaWAN智能设备的数据通过三个网关传到了网络服务器处。网络服务器可以收到三条来自同一个智能设备的上行数据,这三条数据的通信网关不同,其在各个网关处的信噪比和信号强度不同。此时网络服务器会选择信号最好的那组数据对应的网关与该智能设备进行下行通信。如果链路余量充足,网络服务器还可以命令该智能设备进行ADR操作。LoRaWAN上行通道是多路网关共同接收上传,下行通道为指定一个网关下行,这些操作和网络策略都是由LoRaWAN网络服务器处理的。刚刚的智能设备经过ADR后,也许只有两个网关可以接收到该智能设备的上行LoRa数据,第三个网关的接收通道就空余出来,信道容量也就增加了。 图520终端设备上下行通信示意图 LoRaWAN网关在网络规划时相对比较容易,不需要把覆盖区域进行明确尺寸分区,也不需要规划频率和寻找中心的站址。如果可以按照蜂窝移动通信网络的方式分区、分配中心站址,LoRaWAN网络的效率会更高,即使没有这样的“福利”,其网络通信效率变化不大,稳定性依然很高。 和移动通信网络一样,物联网也面临着网络容量不够用的情况,就需要网络扩容。LoRaWAN网络扩容有两种方案,分别是增加网关和增加信道数量。 1) 增加网关 当一个区域内节点数量或通信频次增加时,尤其是距离周边网关都较远的节点增多时,带来的信道压力会更大。原因是距离所有网关都较远的节点(叫作远节点)只能使用较低的速率上行传输,占用信道时间长。此时如果在这些远节点比较聚集的区域放置新网关,这些远节点ADR后变为高速率、低功率的输出模式,信道的容量大幅提升。当使用增加网关的方式进行扩容时,尽量要把扩容网关放置在原有网关连接区域的几何中心。如果知道覆盖区域内的所有节点以及节点对应的数据速率,可以更好地规划网关放置的位置。 2) 增加信道数量 增加信道数量可以直接使信道容量增加,但是由于原来的网关早已安装,需要进行网关硬件升级。如果要将原来8信道的网关升级到16信道,就需要整个服务范围内的所有网关全部更换硬件,然后再通过命令的方式下行设置所有的节点从8信道跳频升级为16信道跳频。虽然节点升级只是一个简单的命令,但是网关升级必须将所有的已经部署好的网关拆下来更换,成本非常高。 在实际应用中,一般会选用增加网关的方法实现扩容。 4. LoRaWAN实例分析 物联网应用中最关心的三个因素是网络容量、覆盖范围、节点功耗,它们对应的系统参数分别为数据率、距离和功耗。下文通过多个终端节点的这三个参数在LoRaWAN网络中的实例进行分析。 图521为一个简单的LoRaWAN网络,由一个LoRa终端设备和一个网关组成。这个终端设备根据其自身传输数据率频次、距离基站距离range、功耗power等不同,ADR会选择合适的通信速率。为了方便介绍,定义通信速率从最慢到快有6挡,分别是Speed 1~Speed 6,如图中的圆形码表为挡位表示。由于这个LoRa设备的位置在深度室内环境,ADR会选择Speed 1(最低速率)与网关进行通信。 图521单节点LoRaWAN网络实例图 图522为多终端、单网关的LoRaWAN覆盖通信图。图中有多个终端节点,距离网关的距离不同,放置位置分为室内、室外和深度室内。通过ADR后,这些节点优化了自身的通信速率: 深度室内的终端节点采用最低的速率Speed 1(深度室内环境衰减是最严重的,一般定义为Speed 1和Speed 2); 室内的终端节点根据其距离网关的不同,速率为Speed 3和Speed 4; 室外的终端节点根据其距离网关的不同,速率为Speed 5和Speed 6。 图522多节点LoRaWAN网络实例图 如图522可知,LoRaWAN环境中所有的终端节点都自动地选择合适的扩频因子,从而增加信道容量,降低功耗,减小干扰。此时如果信道容量不够用,需要扩容,可以采用如图523增加网关的方式进行扩容。 图523多节点LoRaWAN网络实例图 在原有的基础上增加了一个新的网关G2,放置在有原有的网关G1右侧。原有终端节点的通信速率进行了新的ADR后发生了变化,图中最右侧的三个终端节点由于更靠近G2,则其链路连接改变为与G2的通信,此时其自身的扩频因子会发生变化,其通信速率都增大了,从而减小了G1的信道压力。除了图中右侧的三个终端节点外,其他的终端节点保持原有的通信速率不变。由于右侧的三个终端节点速率增加,其通信包飞行时间减少且传输距离变近,G1收到的信号容量增加,G1附近可以容纳更多的新节点。G2增加后,其周围也可以增加更多终端节点,扩充网络容量。 在上述场景中如果有一个移动的物体,从靠近G1移动到靠近G2,网络服务器会自动为其选址合适的网关下行通信,G1到G2的切换非常方便。LoRaWAN网络是物联网的架构,对于信号的稳定性和延时性要求不高,一个信号发送丢包后可以重发,且延迟几秒对系统的影响不大。一般情况下,对于移动LoRa终端节点,建议ADR采用较高的功率和较低的速率,移动终端节点的数据可以传到更多基站,这样就不会存在高速运动的终端节点在切换区域时丢包的问题。LoRaWAN基站定位的方法就是利用多个基站同时接收到一个终端节点的信号,根据到达时间差(TDOA)的方法可以计算终端节点的位置。具体的定位方法会在8.3.2小节详细讲解。 5. LoRaWAN下行同步网络 LoRaWAN网络的应用中绝大多数都是采用异步上行通信的方式,不过有一些应用需要下行低功耗控制功能。在5.1.2小节中的星状网络分析中已提到多个网关无法实现同步下行校准时钟的功能。主要是有两个原因: 一是因为每个网关自身的时间精度有差异; 另一个是多个网关的覆盖区域有很多重合,节点同时收到两个授时信号会出现相互干扰的问题。 (1) 针对时间精度的解决方案,是通过GPS授时实现的,在SX130X芯片的网关设计中室外网关都加入GPS模块的,这个GPS模块作为网关时钟精度校准器,这样所有的网关的时钟都可以精确到纳秒级。GPS提供的高精度时钟对于LoRa基站定位TDOA提供关键时间戳。对于一些室内网关只能通过有线的方式将GPS天线引到室外来实现GPS授时。在没有办法GPS授时的室内下行同步LoRaWAN网络中可以通过网关间LoRa/GFSK信道广播传输时钟的方法实现所有网关时钟同步。 (2) 针对一个终端节点收到多个网关的下行相互干扰的问题可以从两个思路来解决。第一个思路是LoRa芯片的接收电路具有同信道信号抑制功能,如果LoRa芯片(节点或网关芯片)在同一信道中收到带宽和扩频因子完全相同的两个信号时,且两个信号强度相差超过6dB,会解调信号强度大的那一个。信号强度差小于6dB时,则无法解调。第二个思路就是将网关分区域分频率下行管理,相当于将终端节点根据区域分配指定的网关管理。一般应用情况下较少出现需要分频下行同步的场景。 6. LoRaWAN总结 1) LoRaWAN的优点 对比蜂窝移动通信系统,LoRaWAN网络具有以下优点: (1) 快速移动物体的问题和小区拖尾问题都可以解决。LoRaWAN网络不需要切换小区和频率,相比之下,GSM系统小区重选与切换所需的最小时间为5s,WCDMA系统应考虑在切换带起呼状态,所需时间一般不超过3s。LoRaWAN支持快速移动物体的应用,即使高铁350km/h的速度在郊外的环境中依然可以保证通信及切换网关时的稳定性,而运营商网络则需要网关有非常大的重叠区域(一般要求100m以上)才可以保证切换区域的操作,具体讨论见8.5.1小节。 (2) 对抗多普勒。LoRaWAN协议中,对终端设备的工作频率偏移要求为小于50×10-6,当工作主频为490MHz时,协议允许的最大频率偏移为24.5kHz。对比常用的蜂窝网技术,如GSM制式标准允许的中心频率偏差为±300Hz; WCDMA制式标准允许的中心频率偏差为±800Hz,LoRaWAN协议对频偏的要求要低得多。关于对抗多普勒的具体讨论见8.5.1小节。 (3) LoRaWAN网关站点选择布置简单,不需要一定按照六角蜂窝中心布设。 (4) LoRaWAN网优问题几乎不存在。 (5) LoRaWAN扩容非常简单,只需要增加网关即可,不需要面临复杂频率与站点问题。 (6) LoRaWAN建网成本非常低,网关也只需要供电和连接公共网络。安装架设简单,不需要专业人士。 (7) 具有TDOA定位技术,比蜂窝网通过信号强度方法的精度大幅提高,具体讨论见8.3.2小节。 2) LoRaWAN的缺点 在具有上述优点的同时,LoRaWAN的缺点也非常明显: (1) 无法支持高速率的通信,现在的LoRaWAN协议只支持5.5kb/s的通信速率,而Sub 1G LoRa芯片最高只支持50kb/s的速率。 (2) 实时性差,LoRa终端节点与网关的通信时间一般需要几百毫秒,再加上网关与网络服务器的通信采用普通的公共网络,上下行通信时间最快也要超过1s(LoRaWAN Class A协议,节点发射命令后需要等待1s打开接收窗口)。无法应对许多低延时的智能家居等需求。 视频讲解 5.2.3LoRaWAN Server 在5.2.2小节的讨论中,已经知道LoRaWAN的网络架构是由终端节点、网关、网络服务器和应用服务器组成的。其中对终端节点和网关已经非常熟悉了,下面针对NS和AS展开分析讲解。 LoRaWAN服务器(LoRaWAN Sever)端框架如图524所示,LoRaWAN Server程序可以分为网关服务器(Gateway Server)、网络服务器(Network Server)、应用服务器(Application Server)、接入服务器(Join Server)和认证服务器(Identity Server)五部分。 图524LoRaWAN Server 端框架图 各个部分的功能如下: 1) 认证服务器 认证服务器提供了存储实体(如应用程序及其最终设备、网关、用户、组织和OAuth客户端)的注册表。它还通过成员身份和API密钥管理访问控制。 2) 网关服务器 网关服务器的主要作用是保持与各个网关的连接,它支持基站LNS协议、UDP协议、MQTT协议和GRPC协议。同时,它将上行数据包直接或者间接地转发到网络服务器,同时将网络服务器或应用服务器端的下行数据转发到各个网关端。 3) 网络服务器 网络服务器处理LoRaWAN网络层,包括MAC命令、区域参数和自适应数据速率(ADR)。它主要包括以下几部分: (1) 设备管理: 网络服务器为终端设备管理公开NsEndDeviceRegistry服务。此服务的典型客户端是操作台和CLI,网络服务器存储设备MAC配置、MAC状态和网络会话密钥。设备MAC配置的改变可能触发下行链路消息。 (2) 应用下行链路队列管理与连接: 网络服务器允许应用服务器通过gRPC API推送、替换和列出应用程序下行链路以及链接应用程序。应用下行链路队列的改变可能触发下行链路消息。一旦建立了链接,网络服务器将通过该链接向客户端发送特定于应用程序的上行链路消息。每个应用程序最多只能有一个活动链接。如果链路未处于活动状态,但网络服务器要发送特定于应用程序的上行消息,则这些消息将在建立链路后排队并发送。 (3) 下行调度: 网络服务器维护内部下行链路任务队列。每个下行链路任务都有一个与其相关联的执行时间,这些任务按升序排序。每当下行链路任务准备好执行时,它就会尽快执行。 (4) 加入接受: 如果存在挂起的会话,并且设备的加入接受排队,则会安排该会话。 (5) 数据下行链路: 如果挂起的会话不存在或已发送了加入接受,则网络服务器将尝试在活动会话中生成和调度数据下行链路。 (6) 上行链路处理: 网络服务器通过gRPC从网关服务器接收上行链路。网络服务器对接收到的上行链路进行相应的处理。第一步是将上行链路与设备匹配。如果上行链路无法与存储在网络服务器中的设备匹配,则将其丢弃。 (7) 设备加入请求: 如果收到加入请求,则设备使用连接请求中的DevEUI和JoinEUI对进行匹配,后者唯一标识设备。为设备分配新的DevAddr,并为设备派生新的MAC状态。如果群集中存在连接服务器,则网络服务器会向群集本地连接服务器发送连接请求消息。如果群集中不存在连接服务器,或者群集本地连接服务器中未配置设备,则网络服务器将向通过互操作性配置发现的连接服务器发送连接请求消息。如果加入服务器接受了加入请求,则可以将加入接受消息排队等待设备,并将带有加入接受相关信息的特定于应用程序的上行链路消息发送到链接的应用程序服务器。 (8) 数据上行链路: 如果接收到数据上行链路,则设备使用数据上行链路中的DevAddr进行匹配。通过比较会话上下文和MAC状态以及执行MIC检查来执行匹配。由于多个设备可能具有相同的DevAddr,因此网络服务器在匹配设备之前可能需要遍历多个存储设备。如果MAC命令存在于帧中,则网络服务器处理MAC命令,并相应地更新MAC状态。如果在数据上行链路中设置了ADR位,则网络服务器运行ADR算法并相应地更新MAC状态。如果成功地处理了数据上行链路,则下行链路可以排队等待该设备,并且向链接的应用服务器发送一个或多个带有加入接受的相关信息的特定于应用程序的上行链路消息。 4) 应用服务器 应用服务器处理LoRaWAN应用层,包括上行数据解密解码、下行排队和下行数据编码加密。它托管用于流式应用程序数据的MQTT服务器,支持HTTP webhook以及pub/sub集成。它主要完成以下职责: (1) 连接到网络服务器: 应用服务器链接到网络服务器以接收上游流量并写入下游流量。大多数事物堆栈集群包含一个应用服务器,但也可以将外部应用服务器连接到网络服务器。这将确保应用程序会话密钥(AppSKey)不可用于网络层以实现端到端的安全性。一次只能将一个应用程序服务器实例连接到网络服务器。 (2) 互连性: 应用程序可以通过多个协议和机制连接到应用服务器。 (3) MQTT协议: 应用程序可以通过MQTT交换JSON消息来连接到应用程序服务器。MQTT通过TLS提供,为应用程序和应用服务器之间交换的消息提供机密性。上行消息不仅包含数据上行消息,还包含连接接受和下行事件,主题不同。 (4) HTTP网络挂钩: 应用程序可以通过HTTP webhook获取流式JSON消息,并通过向应用服务器发出HTTP请求来调度下行消息。与MQTT一样,可以配置所有上游消息,包括上行链路消息、连接接收和下行链路事件,每一个都是独立的URL路径。 (5) 公共/子集成: 应用程序还可以使用PUB/SUB集成来处理流数据,包括连接到外部MQTT服务器和NATS服务器。 (6) 消息处理: 应用服务器可以对终端设备发送和接收的二进制数据中的有效载荷进行解码和编码。这允许使用结构化流数据,例如使用MQTT和HTTP webhook的JSON对象,但使用通过空中传输的压缩二进制数据。消息处理器可以是众所周知的格式或自定义脚本,并且可以在设备级别或整个应用程序中进行设置。 5) 接入服务器 接入服务器处理LoRaWAN连接流,包括网络和应用服务器身份验证和会话密钥生成。 LoRaWAN服务器是LoRaWAN协议运行的必要组成部分,承载着大量的数据、网络、安全、管理的工作。LoRaWAN的应用中高效、合理的NS和AS是保证节点与应用的关键。尤其是在大型智慧城市、智慧社区的应用中,有海量的LoRa终端接入网络,需要面对百万级的高并发场景,需要超强能力的NS。 小结 本章的重点是LoRa的网络结构,针对LoRa技术的特点详细介绍了多种网络结构的优缺点和适用场景。许多私有协议网络利用这些简单高效的网络拓扑结构,因此读者需要详细理解每一种网络的特点。LoRaWAN网络吸收了移动通信蜂窝网的优点,具有大量的创新,尤其是面对物联网的复杂场景时展现出的兼容性和扩展性,是一个低成本、简单高效的网络架构,读者一定要认真掌握,为第6章和第8章的学习打下基础。