发明内容
为了解决上述背景技术提到的技术问题或者至少部分地解决上述技术问题,本申请提供一种自组网的电力无线LoRa通信方法、装置、系统及存储介质,组网成本较低且易于扩展。
第一方面,本申请提供了一种自组网的电力无线LoRa通信方法,包括:
接收LoRa网络中的消息,根据所述消息携带的目标地址信息、转发标识信息和内容信息决定对所述消息进行存储、存储并转发或丢弃;
所述存储具体包括:确定所述目标地址信息与自身地址信息一致,且所述内容信息为新信息,则存储所述消息;
所述存储并转发具体包括:确定所述目标地址信息与自身地址信息不一致且所述内容信息为新信息,则存储所述消息并改变所述转发标识信息,生成转发消息;
广播所述转发消息;
所述丢弃具体包括:确定所述内容信息为已存储信息,且所述转发标识信息与所述已存储信息对应的转发标识信息不同,则丢弃所述消息。
在此方案中,在网络中传输的消息的类型能够包括两种,一种是LoRa通信装置(即终端节点设备)向LoRa网关发送的上行消息,另一种是LoRa网关向LoRa通信装置发送的下行消息。各个消息均携带有指向目标网关或者目标节点的目标地址信息、用于表征消息能被转发的剩余次数的转发标识信息以及向目标节点传输的具体数据(即内容信息)。
优选的,所述存储还包括:
确定所述目标地址信息与自身地址信息一致,所述内容信息为已存储信息,所述转发标识信息与所述已存储信息对应的转发标识信息相同,则存储所述消息。
在此方案中,将发出消息的一端记为源节点,源节点在第一时刻第一次向目标节点传输一条消息,为了便于描述,将该消息记为第一测试消息,首先源节点在第一时刻向网络中广播该第一测试消息,收到该广播的目标节点判断出第一测试消息携带的目标地址信息与自身的地址一致,且内容信息为新信息,则将该第一测试消息存储至本地缓存区中;源节点在第二时刻(第二时刻在第一时刻之后)向同一目标节点发出与第一测试消息的内容信息一致的第二测试消息,收到该广播的目标节点虽然判断出第二测试消息与缓存的第一测试消息的地址、内容和转发标识均一致,但两者为源节点在不同的两个时刻向同一节点传输的不同的消息,因此不能丢弃第二测试消息,通过此方案,能够防止网络传输中数据的丢包,提高数据传输的可靠性。
优选的,所述存储并转发还包括:
确定所述目标地址信息与自身地址信息不一致,所述内容信息为已存储信息,所述转发标识信息与所述已存储信息对应的转发标识信息相同,则存储所述消息并改变所述转发标识信息,生成转发消息;
广播所述转发消息。
和上述第一测试消息和第二测试消息的原理相同,通过此技术方案能够提高数据传输的可靠性,在此不再赘述。
优选的,确定所述内容信息为新信息,具体包括:在本地缓存区中查找不到所述内容信息,则确定所述内容信息为新信息。
优选的,确定所述内容信息为已存储信息,具体包括:在本地缓存区中查找到所述内容信息,则确定所述内容信息为已存储信息。
优选的,所述转发标识信息用于确定消息可被转发的剩余次数。
在此方案中,转发标识信息能够是生存时间值(Time To Live,以下简称TTL),消息中的TTL字节能够用于记录LoRa消息被转发的次数,TTL能够是由源节点预先设置的,防止消息在网络上永不终止地循环,作为一个示例,消息每经过一次转发,将其TTL值至少减小1。
第二方面,本申请还提供了一种自组网的电力无线LoRa通信装置,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的所述程序指令以实现如第一方面中任一技术方案所述的自组网的电力无线LoRa通信方法。
优选的,所述存储器还用于存储消息。
第三方面,本申请还提供了一种自组网的电力无线LoRa通信系统,包括:LoRa网关以及多个如第二方面技术方案中所述的自组网的电力无线LoRa通信装置;
每一个所述LoRa通信装置单体作为一个网络节点,各个所述网络节点均连接至其他至少两个所述网络节点,且位于所述LoRa网关信号覆盖范围内的若干所述网络节点均连接至所述LoRa网关。
在此方案中,各个LoRa通信装置均能作为一个网络节点,每个网络节点都至少连接其它的两个网络节点,且位于LoRa网关信号覆盖范围内的若干网络节点还能直接连接至LoRa网关,各个网络节点和LoRa网关共同形成一个整体的网络,记为LoRa-Mesh网络;LoRa-Mesh网络中的各个LoRa通信装置执行上述第一方面任一技术方案中所述的自组网的电力无线LoRa通信方法的方法,既能真正处理应用层数据,又具有中继功能,既提高了覆盖范围,又降低了网络扩展难度和成本,且不容易丢失数据,可靠性较高,配合转发标识变更机制,对LoRa信息的收发进行有效控制,减小网络冗余数据量和通信压力。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序代码,所述程序代码用于实现如第一方面中任一技术方案所述的自组网的电力无线LoRa通信方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:一方面,本申请提供的通信方法通过识别消息携带的目标地址信息,存储与自身节点地址一致的消息,向网络重新转发广播与自身节点不一致的消息,实现消息的中继,并进一步通过识别内容信息和建立转发标识信息变更机制,防止消息在网络中无休止转发造成的网络灾难,成功实现消息的多级中继转发,无需额外增加网关设备(或中继设备),不受物理距离限制,基于LoRa设备(即终端节点设备)自身的信号覆盖能力进行网络的拓展,实现远距离的消息传输,简单易实施,成本较低,特别适合于长距离网络低速无线物联网的通信场景,利于巷道、竖井等场景下的网络建设。
另一方面,本申请提供的自组网的电力无线LoRa通信系统,多个LoRa通信装置互连构成Mesh网络,各个LoRa通信装置执行上述通信方法,既有终端节点设备功能,又具有中继功能,从而实现非常广阔的消息传输。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,下面对本申请实施例提供的一种自组网的电力无线LoRa通信方法、装置、系统及存储介质进行详细介绍,参见图1,一种自组网的电力无线LoRa通信方法,包括以下步骤:
接收LoRa网络中的消息,根据消息携带的目标地址信息、转发标识信息和内容信息决定对消息进行存储、存储并转发或丢弃;
存储具体包括:确定目标地址信息与自身地址信息一致,且内容信息为新信息,则存储消息;
存储并转发具体包括:确定目标地址信息与自身地址信息不一致且内容信息为新信息,则存储消息并改变转发标识信息,生成转发消息;
广播转发消息;
丢弃具体包括:确定内容信息为已存储信息,且转发标识信息与已存储信息对应的转发标识信息不同,则丢弃消息。
在本申请的一些具体实施例中,在网络中传输的消息的类型包括两种,一种是LoRa通信装置(即终端节点设备)向LoRa网关发送的上行消息,另一种是LoRa网关向LoRa通信装置发送的下行消息。各个消息均携带有指向目标网关或者目标节点的目标地址信息、用于表征消息能被转发的剩余次数的转发标识信息以及向目标节点传输的具体数据(即内容信息)。
在本申请的一些具体实施例中,通过识别消息携带的目标地址信息,存储与自身节点地址一致的消息,转发与自身节点不一致的消息,实现中继功能,并进一步通过识别内容信息和建立转发标识信息变更机制,减少消息冗余,防止消息在网络中无休止转发造成的网络灾难,成功实现消息的多级中继转发,无需额外增加硬件设备,不受物理距离限制,基于LoRa通信装置自身的信号覆盖能力进行网络的拓展,从而实现远距离的消息传输,简单易实施,成本较低,特别适合于长距离网络低速无线物联网的通信场景,利于巷道、竖井等场景下的网络建设。
在本申请的一些具体实施例中,存储还包括:
确定目标地址信息与自身地址信息一致,内容信息为已存储信息,转发标识信息与已存储信息对应的转发标识信息相同,则存储消息。
在本申请的一些具体实施例中,将发出消息的一端记为源节点,源节点在第一时刻第一次向目标节点传输一条消息,为了便于描述,将该消息记为第一测试消息,首先源节点在第一时刻向网络中广播该第一测试消息,收到该广播的目标节点判断出第一测试消息携带的目标地址信息与自身的地址一致,且内容信息为新信息,则将该第一测试消息存储至本地缓存区中;源节点在第二时刻(第二时刻在第一时刻之后)向同一目标节点发出与第一测试消息的内容信息一致的第二测试消息,收到该广播的目标节点判断出第二测试消息与缓存的第一测试消息的地址、内容和转发标识均一致,通过此方案,能够防止第二测试消息的在网络传输中的丢失,提高数据传输的可靠性。
在本申请的一些具体实施例中,存储并转发还包括:
确定目标地址信息与自身地址信息不一致,内容信息为已存储信息,转发标识信息与已存储信息对应的转发标识信息相同,则存储消息并改变转发标识信息,生成转发消息;
广播转发消息。
和上述第一测试消息和第二测试消息的原理相同,通过此技术方案能够提高数据传输的可靠性,在此不再赘述。
在本申请的一些具体实施例中,确定内容信息为新信息,具体包括:在本地缓存区中查找不到内容信息,则确定内容信息为新信息。
在本申请的一些具体实施例中,确定内容信息为已存储信息,具体包括:在本地缓存区中查找到内容信息,则确定内容信息为已存储信息。
在本申请的一些具体实施例中,转发标识信息用于确定消息可被转发的剩余次数。
在本申请的一些具体实施例中,转发标识信息能够是生存时间值(Time To Live,以下简称TTL),消息中的TTL字节能够用于记录LoRa消息被转发的次数,TTL能够是由源节点预先设置的,防止消息在网络上永不终止地循环,作为一个示例,消息每经过一次转发,将其TTL值至少减小1。
在本申请的又一些实施例中,还提供了一种自组网的电力无线LoRa通信装置100,参见图2,包括:
存储器200,用于存储程序指令;
处理器300,用于调用存储器中存储的程序指令以实现如上述实施例中任一项的自组网的电力无线LoRa通信方法。
在本申请的一些实施例中,存储器还用于存储消息。
在本申请的又一些实施例中,还提供了一种自组网的电力无线LoRa通信系统,包括:LoRa网关以及多个如上述实施例中任一项的自组网的电力无线LoRa通信装置;
每一个所述LoRa通信装置单体作为一个网络节点,各个所述网络节点均连接至其他至少两个所述网络节点,且位于所述LoRa网关信号覆盖范围内的若干所述网络节点均连接至所述LoRa网关。
在本申请的一些具体实施例中,所有的LoRa通信装置(包括LoRa网关信号覆盖范围内及信号覆盖范围外的全部LoRa通信装置)中任意一个LoRa通信装置均能作为一个网络节点,每个网络节点都至少连接其它的两个网络节点,且位于LoRa网关信号覆盖范围内的若干网络节点还能直接连接至LoRa网关,各个网络节点和LoRa网关共同形成一个整体的网络,记为LoRa-Mesh网络;LoRa-Mesh网络中的各个LoRa通信装置执行上述具体实施例中所述的自组网的电力无线LoRa通信方法,既能真正处理应用层数据,又具有中继功能,既提高了覆盖范围,又降低了网络扩展难度和成本,且不容易丢失数据,可靠性较高,配合转发标识变更机制,对LoRa信息的收发进行有效控制,减小网络冗余数据量和通信压力。
在本申请的又一些实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质存储有程序代码,程序代码用于实现如上述实施例中任一项的自组网的电力无线LoRa通信方法。
为了便于理解,以1个LoRa网关和3个LoRa子设备(相当于上述任一实施例中所述的LoRa通信装置)的组网通信为例,对本申请实施例提供的自组网的电力无线LoRa通信系统的工作过程和原理进行详细介绍,参见图3,系统包括1个LoRa网关和3个LoRa子设备(分别记为子设备A、子设备B和子设备C),其中,由于物理距离的限制,子设备A和子设备B位于LoRa网关的信号覆盖范围内,LoRa网关能与子设备A、子设备B直接通信,子设备C位于LoRa网关的信号覆盖范围外,子设备A、子设备B、子设备C之间两两相互直接通信构成Mesh网络。
比如,LoRa网关需要发送message1(下行消息)到子设备A,message1中携带有指向子设备A的地址参数(相当于目标地址信息)、用于表征该message1是否被转发的TTL值(相当于转发标识信息)以及发往子设备A的数据内容(相当于内容信息)。
步骤101,LoRa网关向系统网络(LoRa网关、子设备A、子设备B和子设备C组成该系统网络)中广播携带子设备A地址的message1。子设备A收到message1,判断message1携带的地址参数与自身的设备地址一致后,存储到RMC(Receive Message Catch, LoRa通信装置接收到消息后将其缓存的区域,简称为RMC)中,子设备A预接收message1完毕。
步骤102,LoRa网关信号覆盖范围内的子设备B也收到了message1,子设备B判断message1携带的地址参数与自身的设备地址不一致,则启动转发功能。子设备B将message1存储到RMC中,之后将message1信息帧的TTL字节减1(比如TTL的初始值为24,这时为23),变为message2,再次将message2广播至系统网络中。
步骤103,子设备A接收到message2后,判断出message2携带的数据内容和地址参数等信息和message1一致,但是message2的TTL比message1的TTL小,则说明message2是一条转发信息,且之前收到过了,则丢弃该message2。
步骤104,与步骤103几乎同时发生的是子设备C也收到了message2,子设备C判断出message2携带的地址参数自身的地址不匹配,且自身的RMC中没有与message2携带的地址参数和数据内容等信息均相同的message,则确定message2是一条非发往自身的新消息,子设备C需要先将message2存储至自身的RMC中,同样的转发前将message2的TTL字节减1,变为message3(这时message3的TTL为22)后重新转发广播至系统网络中。
步骤105,message3被子设备A和子设备B接收,二者都发现与RMC中的message1内容相同,但是message3的TTL值变小了,则丢弃message3。至此没有节点(系统网络中的每一个子设备称为节点)对该消息进行转发了,子设备A接收message1完毕。
比如,LoRa网关需要发送message1到子设备B,其过程与步骤101~步骤105原理类似,不再赘述。
比如,LoRa网关需要发送message1到子设备C,其通信过程为:
步骤106,LoRa网关向系统网络中广播发送携带子设备C地址的message1。系统网络中与子设备C连接的子设备A和子设备B均接收到message1,分别判断message1携带的地址参数与自身的设备地址不一致后,存储到自身的RMC中,之后,同样的将message1的TTL字节减1后变为message2重新广播转发至系统网络中。(比如message1的TTL为24,那么message2的TTL为23)。
步骤107,子设备A、子设备B和子设备C具有LBT机制,假如子设备C先后依次收到了来自子设备A和子设备B的message2。先收到子设备A转发来的message2,C经判断message2携带的地址参数和自身的设备地址一致,则进行message2处理并将message2存储到RMC中。
步骤108,子设备C又收到了来自子设备B转发的message2,经判断该message2和存储到RMC中的内容来自子设备A的message2一模一样(两个message2的地址参数、TTL和数据内容均相同),则丢弃到该message2。至此,没有节点再转发该message2了,子设备C接收该message1完毕。
同样的,从子设备发送到LoRa网关的message(上行消息),与前面下行消息的发过程类似,只不过相应的message中携带的地址参数指向的是LoRa网关的地址,这里不在赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。