网关、LoRa网络系统、网关运行方法及存储介质转让专利

申请号 : CN202011316775.1

文献号 : CN112118584B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶傲郝瑞林刘大伟刘森徐关平

申请人 : 翱捷科技(深圳)有限公司

摘要 :

本发明提供了一种网关、LoRa网络系统、网关运行方法及存储介质,属于物联网技术领域,具体包括网关单元,接收服务器发送的LoRaWAN通信数据,所述LoRaWAN通信数据携带有发送给终端节点的报文信息;数据处理单元,将所述LoRaWAN通信数据中的报文信息转换成通过pingslot发送给所述终端节点的LoRa报文;信息获取单元,从所述LoRaWAN通信数据中获取所述终端节点对应的节点地址,并从所述网关单元获取信标时间;时隙计算单元,根据所述信标时间和所述节点地址计算所述LoRa报文对应的pingslot时隙;报文发送单元,基于所述pingslot时隙建立发送给所述终端节点的LoRa报文队列。通过本公开的处理方案,减少了服务器的负荷,并提高了终端节点的接入数量。

权利要求 :

1.一种网关,其特征在于,包括:

网关单元,接收服务器发送的LoRaWAN通信数据,所述LoRaWAN通信数据携带有发送给终端节点的报文信息;

数据处理单元,将所述LoRaWAN通信数据中的报文信息转换成通过pingslot发送给所述终端节点的LoRa报文;

信息获取单元,从所述LoRaWAN通信数据中获取所述终端节点对应的节点地址,并从所述网关单元获取信标时间;

时隙计算单元,根据所述信标时间和所述节点地址计算所述LoRa报文对应的pingslot时隙;

报文发送单元,基于所述pingslot时隙建立发送给所述终端节点的LoRa报文队列。

2.根据权利要求1所述的网关,其特征在于,所述网关单元包括网关获取模块和处理连接模块,所述网关获取模块获取网关的CPU主频、内存和业务量;

所述处理连接模块根据所述CPU主频、内存和业务量接收服务器发送的LoRaWAN通信数据。

3.根据权利要求1所述的网关,其特征在于,所述数据处理单元将所述LoRaWAN通信数据和所述LoRa报文进行关联存储。

4.根据权利要求3所述的网关,其特征在于,所述网关单元获取所述服务器发来的已发送的LoRaWAN通信数据,所述数据处理单元搜索与所述已发送的LoRaWAN通信数据对应的待发送LoRa报文;

所述报文发送单元从所述LoRa报文队列删除对应的所述待发送LoRa报文。

5.根据权利要求1所述的网关,其特征在于,所述报文发送单元还接收所述终端节点反馈的报文状态信息;

所述网关单元将所述报文状态信息发送给所述服务器。

6.一种LoRa网络系统,其特征在于,包括终端节点和服务器,以及连接在所述终端节点和所述服务器之间的如权利要求1至5任意一项所述的网关。

7.一种网关运行方法,其特征在于,包括:

接收服务器发送的LoRaWAN通信数据,所述LoRaWAN通信数据携带有发送给终端节点的报文信息;

将所述LoRaWAN通信数据中的报文信息转换成通过pingslot发送给所述终端节点的LoRa报文;

从所述LoRaWAN通信数据中获取所述终端节点对应的节点地址,并从网关单元获取信标时间;

据所述信标时间和所述节点地址计算所述LoRa报文对应的pingslot时隙;

基于所述pingslot时隙建立发送给所述终端节点的LoRa报文队列。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7所述的方法的步骤。

说明书 :

网关、LoRa网络系统、网关运行方法及存储介质

技术领域

[0001] 本发明涉及物联网技术领域,特别是涉及一种网关、LoRa网络系统、网关运行方法及存储介质。

背景技术

[0002] 在物联网越来越深入发展,网络越来越庞大,应用越来越丰富,接入的终端节点也越来越多。LoRaWAN网络根据实际应用的不同,把终端设备划分为A/B/C三类,ClassA是双向通信终端设备,服务器的下行通信只能在终端设备的上行通信之后,且只有两个下行时间窗口,ClassB是有预设接收窗口的双向通信终端设备,当预设的接收窗口到了后,不需要终端设备上行通信,服务器也可以进行下行。ClassC是有最多接收窗口的双向通信终端设备,终端设备持续打开接收窗口,只是在发送时关闭。
[0003] 而LoRaWAN协议是一种低功耗广域物联网协议,可以进行城域级的网络部署,但是如果系统中某个点的资源或处理能力存在瓶颈,则会影响到整个网络系统的性能和稳定性。目前LORA系统CLASSB的PINGSLOT时隙都是通过服务器和终端节点进行计算的,此PINTSLOT时隙需要每个beaconTime计算一次,且所有终端节点上送数据都需要汇聚到服务器进行处理,当系统中的终端节点逐渐增多,那么服务器的CPU资源会被这种计算占用很多,增加服务器的负荷,不仅给服务器带来很大的处理压力,还导致服务器性能下降,接入的终端节点数目就会受到限制。

发明内容

[0004] 因此,为了克服上述现有技术的缺点,本发明提供一种减少了服务器的负荷,并提高了终端节点的接入数量的网关、LoRa网络系统、网关运行方法及存储介质。
[0005] 为了实现上述目的,本发明提供一种网关,包括:网关单元,接收服务器发送的LoRaWAN通信数据,所述LoRaWAN通信数据携带有发送给终端节点的报文信息;数据处理单元,将所述LoRaWAN通信数据中的报文信息转换成通过pingslot发送给所述终端节点的LoRa报文;信息获取单元,从所述LoRaWAN通信数据中获取所述终端节点对应的节点地址,并从所述网关单元获取信标时间;时隙计算单元,根据所述信标时间和所述节点地址计算所述LoRa报文对应的pingslot时隙;报文发送单元,基于所述pingslot时隙建立发送给所述终端节点的LoRa报文队列。
[0006] 在其中一个实施例中,所述网关单元包括网关获取模块和处理连接模块,所述网关获取模块获取网关的CPU主频、内存和业务量;所述处理连接模块根据所述CPU主频、内存和业务量接收服务器发送的LoRaWAN通信数据。
[0007] 在其中一个实施例中,所述数据处理单元将所述LoRaWAN通信数据和所述LoRa报文进行关联存储。
[0008] 在其中一个实施例中,所述网关单元获取所述服务器发来的已发送的LoRaWAN通信数据,所述数据处理单元搜索与所述已发送的LoRaWAN通信数据对应的待发送LoRa报文;所述报文发送单元从所述LoRa报文队列删除对应的所述待发送LoRa报文。
[0009] 在其中一个实施例中,所述报文发送单元还接收所述终端节点反馈的报文状态信息;所述网关单元将所述报文状态信息发送给所述服务器。
[0010] 另一方面,本发明还提供一种LoRa网络系统,包括终端节点和服务器,以及连接在所述终端节点和所述服务器之间的上述的网关。
[0011] 另一方面,本发明还提供一种网关运行方法,包括:接收服务器发送的LoRaWAN通信数据,所述LoRaWAN通信数据携带有发送给终端节点的报文信息;将所述LoRaWAN通信数据中的报文信息转换成通过pingslot发送给所述终端节点的LoRa报文;从所述LoRaWAN通信数据中获取所述终端节点对应的节点地址,并从所述网关单元获取信标时间;据所述信标时间和所述节点地址计算所述LoRa报文对应的pingslot时隙;基于所述pingslot时隙建立发送给所述终端节点的LoRa报文队列。
[0012] 另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的方法的步骤。
[0013] 与现有技术相比,本发明的优点在于:网关可以动态地进行PINGSLOT时隙计算,减轻了服务器的处理压力,充分利用了网关的处理资源,提高了LoRa网络的接入量,有利于LoRa网络的发展。

附图说明

[0014] 为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0015] 图1是本发明的实施例中LoRa网络系统的应用场景图;
[0016] 图2是本发明的实施例中LoRa网络系统的架构示意图;
[0017] 图3是本发明的实施例中网关的结构框图;
[0018] 图4是本发明的实施例中LoRa报文内容;
[0019] 图5是本发明的实施例中LoRa网络系统的流程图;
[0020] 图6是本发明的实施例中网关运行方法的流程示意图。

具体实施方式

[0021] 下面结合附图对本公开实施例进行详细描述。
[0022] 以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0023] 要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
[0024] 还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0025] 另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践方面。
[0026] 如图1所示,本公开实施例提供一种LoRa网络系统100,包括终端节点102、服务器104以及连接在终端节点102和服务器104之间的网关106。
[0027] 对于一个支持ClassB的LoRa网络,所有网关106必须发出同步广播一个信标,以给所有终端节点102提供一个参考时间。基于这个时间参考,终端可以周期性地打开接收窗口,下文称之为“pingslot”,这个“pingslot”被网络建设者用于发起下行通信。网络使用pingslots其中之一来发起下行通讯的行为,称之为“ping”。用来发起下行通讯的网关106,是服务器104根据终端最近一次上行包的信号传输质量来选择的。
[0028] 网关106接收服务器104发送的LoRaWAN通信数据,LoRaWAN通信数据携带有发送给终端节点102的报文信息;网关106将LoRaWAN通信数据中的报文信息转换成通过pingslot发送给终端节点的LoRa报文;网关106从LoRaWAN通信数据中获取终端节点对应的节点地址,并从网关单元获取信标时间;网关106根据信标时间和节点地址计算LoRa报文对应的pingslot时隙;网关106基于pingslot时隙建立发送给终端节点的LoRa报文队列,并通过pingslot发送LoRa报文给终端节点102。
[0029] 在本公开实施例的LoRa网络系统中,终端节点102与现有技术中的一致,故不进行另外的说明。如图2的架构示意图所示,服务器104与网关106之间增加PINGSLOT数据传输的接口。服务器104(LORA_SERVER)包括CS模块、AS模块、NC模块和NS模块。CS模块用于处理用户业务,AS模块用于对终端节点接入网络的鉴权和用户报文的加解密,NC模块用于对终端节点进行自适应调节LoRa数据速率,NS模块用于收发和处理LoRa协议报文和命令。
[0030] 网关106(LORA_GATEWAY)包括PACKET_UP模块、PACKET_DOWN模块、PINGSLOT_PROC模块、SX1301模块和GPS模块。PACKET_UP模块用于将网关106的各类数据上传给服务器104。PACKET_DOWN模块用于将从服务器104下载各类数据到网关106。PINGSLOT_PROC模块用于进行与pingslot相关的所有数据处理。SX1301模块收发LoRa报文。GPS模块用于获取信标时间。
[0031] 如图3所示,网关106可以包括网关单元302、数据处理单元304、信息获取单元306、时隙计算单元308和报文发送单元310。
[0032] 网关单元302接收服务器发送的LoRaWAN通信数据,LoRaWAN通信数据携带有发送给终端节点的报文信息。LoRaWAN通信数据可以包含报文头部和报文正文。服务器与网关之间通信的报文头部可以如下:
[0033] 。Identifier字段(标识符)表示网关与服务器之间通信的报文类型,除了现有技术中采用的PUSH_DATA、PUSH_ACK、PULL_DATA、PULL_ACK、PULL_RESP等外,本实施例新增了两种报文类型PING_SLOT_DATA和PING_SLOT_ACK。报文PING_SLOT_DATA表示服务器给网关发送需要通过PINGSLOT来发送的数据,报文PING_SLOT_ACK表示网关通过PINGSLOT发送数据成功或者失败的状态信息。当Identifier为PING_SLOT_DATA时,LoRaWAN通信数据的数据格式可以如下:
[0034]
[0035] 其中,Packetsequence表示数据Data的序列号,从1开始计数,依次按1递增;
[0036] Status表示数据是否需要网关发送,1表示需要,0表示不需要;
[0037] Datalength表示Data字段的长度,当Status字段为0时,则Datalength为0。
[0038] Data表示服务器需要网关通过一个PINGSLOT发送的数据,如果Status字段为0,则没有Data字段。
[0039] 当服务器与网关之间的通信报文的Identifier字段为PING_SLOT_DATA时,此报文可以携带多组Packetsequence、Status、Datalength、Data字段。当网关的PACKET_DOWN模块(网关单元302设置在PACKET_DOWN模块中)收到服务器的PING_SLOT_DATA报文时,则发送给PINGSLOT_PROC模块。
[0040] 数据处理单元304将LoRaWAN通信数据中的报文信息转换成通过pingslot发送给终端节点的LoRa报文。报文信息为服务器发送过来的报文中的Data字段,但是Data字段中的data部分需要从BASE64格式转换为二进制格式。服务器与网关之间Data字段的格式为标准LoRaWAN中两者之间通信的格式,可以为JSON格式,例如下所示:
[0041] {
[0042] "txpk":
[0043] {
[0044] "tmst":,
[0045] "freq":,
[0046] "rfch":,
[0047] "powe":,
[0048] "modu":,
[0049] "datr":,
[0050] "codr":,
[0051] "ipol":,
[0052] "size":,
[0053] "data":
[0054] }
[0055] }
[0056] data部分转换为二进制格式后,LoRa报文的报文格式可以包含:Packetsequence、Sendtime、Datalength和Data,其中的Sendtime即为PingSlot,Data为报文内容。标准LoRaWAN的LoRa报文内容可以如图4所示,从上到下:第一层为射频物理层数据结构,第二层为PHYPayload数据结构,第三层为MHDR数据结构,第四层为MACPayload数据结构,第五层为FHDR数据结构。
[0057] 信息获取单元306从LoRaWAN通信数据中获取终端节点对应的节点地址(DevAddr),并获取网关单元接收LoRaWAN通信数据的信标时间(beaconTime)。
[0058] 时隙计算单元308根据信标时间和节点地址计算LoRa报文对应的pingslot时隙。时隙计算单元308可以根据下式计算得到PingSlot,PingSlot为PingSlot时隙,即在CLASSB模式时,网关可以主动在此时间点下发报文给终端节点。
[0059] pingNb=2K,其中0≤K≤7
[0060] pingPeriod=4096 / pingNb
[0061] N为第几个PingSlot,0≤N≤pingNb-1
[0062] Key=16 ×0x00
[0063] Rand=aes128_encrypt(Key,beaconTime | DevAddr | pad16)
[0064] pingOffset=(Rand[0]+Rand[1] ×256)modulo pingPeriod
[0065] PingSlot=Beacon_reserved+(pingOffset+N ×pingPeriod) ×slotLen[0066] PingSlot为将LoRa报文发送给终端节点的时间。
[0067] 报文发送单元310基于pingslot时隙建立发送给终端节点的LoRa报文队列。对于每个终端节点,报文发送单元310只计算一个Data对应的PingSlot,其它的Data先不计算PingSlot,则其它Data对应的Sendtime为0,报文发送单元310定时检测每个终端节点已经计算出PingSlot的Data,判断PingSlot是否已到时,是的话则通过PingSlot时隙把此Data发送给终端节点,这样才会计算该终端节点的下一个Data的PingSlot。在本实施例中,数据处理单元304、信息获取单元306、时隙计算单元308和报文发送单元310均设置在PINGSLOT_PROC模块上。
[0068] 上述LoRa网络系统和网关中,网关进行PINGSLOT时隙计算,减轻了服务器的处理压力,充分利用了网关的处理资源,提高了LoRa网络的接入量,有利于LoRa网络的发展。
[0069] 在其中一个实施例中,网关单元包括网关获取模块和处理连接模块,网关获取模块获取网关的CPU主频、内存和业务量;处理连接模块根据CPU主频、内存和业务量接收服务器发送的LoRaWAN通信数据。网关可根据自己的CPU主频、内存和业务量由处理连接模块来决定是否进行PINGSLOT时隙计算。在网关启动后与服务器的通信链路建立后,网关的处理连接模块将是否进行PINGSLOT时隙计算和处理通知发送给服务器;如果网关没有能力进行PINGSLOT时隙计算或者网关没有通知此信息,则由服务器实现相关功能。
[0070] 如图5所示,当判定网关可以进行PINGSLOT时隙计算时,服务器才将需要通过PingSlot时隙发送的报文发送给网关;网关PACKET_DOWN收到PING_SLOT_DATA类型的报文,则回调PINGSLOT_PROC的接口进行数据解析和存储;PINGSLOT_PROC模块从报文的Data字段中获取DevAddr,并且从PACKET_DOWN获取beaconTime,然后计算PingSlot;PINGSLOT_PROC模块定时检测终端节点对应的PingSlot数据队列;当网关通过PINGSLOT时隙把数据向终端节点发送成功之后,网关能把发送成功的信息告诉服务器。
[0071] 上述LoRa网络系统和网关中,网关可以动态地进行PINGSLOT时隙计算,减轻了服务器的处理压力,充分利用了网关的处理资源,提高了LoRa网络的接入量,有利于LoRa网络的发展。
[0072] 在一个实施例中,数据处理单元将LoRaWAN通信数据和LoRa报文进行关联存储。
[0073] 网关与服务器之间的PingSlotData的交互需要通过Identifier字段为PING_SLOT_DATA和PING_SLOT_ACK类型的报文实现。当服务器向网关下发PingSlotData时,Identifier字段为PING_SLOT_DATA,当网关向服务器回复PingSlotData向终端发送成功失败状态时,Identifier字段为PING_SLOT_ACK,报文格式可以如下:
[0074]  Packetsequence字段与Identifier为PING_SLOT_DATA时的字段意义保持一致。
[0075] Status表示PingSlotData是否向终端发送成功。1表示成功,0表示失败。
[0076] 在其中一个实施例中,报文发送单元还接收终端节点反馈的报文状态信息;网关单元将报文状态信息发送给服务器。
[0077] 服务器收到网关关于发送PingSlotData失败的信息后,可以选择继续重发也可以放弃此数据发送并且告警通知给用户。
[0078] 网关可以将LoRaWAN通信数据、LoRa报文和PING_SLOT_ACK类型的报文进行关联存储。
[0079] 在其中一个实施例中,网关单元获取服务器发来的已发送的LoRaWAN通信数据,数据处理单元搜索与已发送的LoRaWAN通信数据对应的待发送LoRa报文;报文发送单元从LoRa报文队列删除对应的待发送LoRa报文。
[0080] 在CLASSB的时候,终端节点向服务器发送数据,服务器可以在RX1和RX2的时间窗口向终端节点下发数据,这样之前设定的需要通过PingSlot发送而还没有发送的数据中的一部分数据就可以通过RX1和RX2窗口发送。当这些数据被发送后,服务器通知网关已发送的LoRaWAN通信数据不再需要通过PingSlot发送。网关单元获取服务器发来的已发送的LoRaWAN通信数据,数据处理单元搜索与已发送的LoRaWAN通信数据对应的待发送LoRa报文;报文发送单元从LoRa报文队列删除对应的待发送LoRa报文。
[0081] 在一个实施例中,提供了一种如图6所示的网关运行方法,包括:
[0082] 步骤502,接收服务器发送的LoRaWAN通信数据,LoRaWAN通信数据携带有发送给终端节点的报文信息;
[0083] 步骤504,将LoRaWAN通信数据中的报文信息转换成通过pingslot发送给终端节点的LoRa报文;
[0084] 步骤506,从LoRaWAN通信数据中获取终端节点对应的节点地址,并从网关单元获取信标时间;
[0085] 步骤508,据信标时间和节点地址计算LoRa报文对应的pingslot时隙;
[0086] 步骤510,基于pingslot时隙建立发送给终端节点的LoRa报文队列。
[0087] 应该理解的是,虽然图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0088] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述网关运行方法的步骤。
[0089] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。