一种数据通信方法、装置和电子设备与流程

文档序号:20020657发布日期:2020-02-25 11:36阅读:232来源:国知局
一种数据通信方法、装置和电子设备与流程

本申请涉及数据通信技术领域,更具体地说,涉及一种数据通信方法、装置及电子设备。



背景技术:

lora是lpwan(low-powerwide-areanetwork,低功耗广域网)通信技术的一种,是基于扩频技术的超远距离无线传输方案,被广泛应用于物联网系统中。在物联网系统中,一个网关会部署大量lora节点,lora节点发送采集到的数据到网关。

当前,为了避免lora节点向网关发送数据时出现数据碰撞情况,lora节点在发送数据前,会生成一固定时间的检测窗,在该检测窗时间内,若检测到信道未被占用,则向网关发送数据。

上述方式中,一个网关通常会部署成百上千个lora节点,所以很可能出现多个节点同时发送数据的情况,该情况下,多个lora节点在同一个时刻生成固定时长的检测窗,从而多个lora节点会在相同时刻完成信道被占用与否的检测,并在相同时刻发送出数据,由此仍然出现了数据碰撞情况。可见,当lora节点数量较大时,上述方式的防数据碰撞能力较低,防碰撞效果较差。



技术实现要素:

有鉴于此,本申请提供一种数据通信方法、装置及电子设备,以提高数据防碰撞能力。

为了实现上述目的,现提出的方案如下:

一种数据通信方法,所述方法包括:

在接收到数据发送请求的情况下,生成检测窗,所述检测窗包括至少两个检测时间段和至少一个探测时间段,所述检测时间段的个数与探测时间段的个数的差值为1,所述检测时间段和所述探测时间段依次交叉排列,所述检测窗中至少两个时间段的时长为随机值;

在每相邻的一组所述检测时间段和所述探测时间段内执行:在所述检测时间段内检测信道是否被占用,若所述信道未被占用,则在所述探测时间段内向所述信道发送探测帧,所述探测帧用于占用信道;直到在某组所述检测时间段和所述探测时间段内检测到所述信道被占用,则停止在此次检测窗的操作;

当到达最后一个检测时间段时,若在该检测时间段内检测到所述信道未被占用,则向所述信道发送所述数据。

一种数据通信装置,该装置包括:

检测窗生成单元,用于在接收到数据发送请求的情况下,生成检测窗,所述检测窗包括至少两个检测时间段和至少一个探测时间段,所述检测时间段的个数与探测时间段的个数的差值为1,所述检测时间段和所述探测时间段依次交叉排列,所述检测窗中至少两个时间段的时长为随机值;

检测窗执行单元,用于在每相邻的一组所述检测时间段和所述探测时间段内执行:在所述检测时间段内检测信道是否被占用,若所述信道未被占用,则在所述探测时间段内向所述信道发送探测帧,所述探测帧用于占用信道;直到在某组检测时间段和所述探测时间段内检测到所述信道被占用,则停止在此次检测窗的操作;

发送单元,用于当到达最后一个检测时间段时,若在该检测时间段内检测到所述信道未被占用,则向所述信道发送所述数据。

一种电子设备,所述电子设备包括:通讯接口、处理器和存储器;

所处存储器中存储有程序代码;

所述处理器调用所述存储器中的程序代码时执行如下操作:

在接收到数据发送请求的情况下,生成检测窗,所述检测窗包括至少两个检测时间段和至少一个探测时间段,所述检测时间段的个数与探测时间段的个数的差值为1,所述检测时间段和所述探测时间段依次交叉排列,所述检测窗中至少两个时间段的时长为随机值;在每相邻的一组所述检测时间段和所述探测时间段内执行:在所述检测时间段内检测信道是否被占用,若所述信道未被占用,则在所述探测时间段内向所述信道发送探测帧,所述探测帧用于占用信道;直到在某组检测时间段和所述探测时间段内检测到所述信道被占用,则停止在此次检测窗的操作;当到达最后一个检测时间段时,若在该检测时间段内检测到所述信道未被占用,则向所述信道发送所述数据。

从上述的技术方案可以看出,本申请在数据发送前,生成检测窗,该检测窗包括至少两个检测时间段和至少一个探测时间段,所述检测时间段的个数与探测时间段的个数的差值为1,所述检测时间段和所述探测时间段依次交叉排列,所述检测窗中至少两个时间段的时长为随机值;进而在每相邻的一组所述检测时间段和所述探测时间段内执行在检测时间段内,检测信道是否被占用,若所述信道被占用,则停止此次检测窗的操作;若所述信道未被占用,则在探测时间段内,向所述信道发射探测帧,所述探测帧用于占用信道,直到在某组所述检测时间段和所述探测时间段内检测到所述信道被占用,则停止在此次检测窗的操作,当到达最后一个检测时间段,并在该时间段内时检测到所述信道未被占用,则向所述信道发送所述数据,可见,在进行信道占用检测时,检测时间段和/或探测时间段的时长存在随机情况,即使多个节点在同一时刻生成检测窗,但具体的检测信道占用和发射探测帧的时间都不相同,大大降低了各个节点在同一个时刻发送数据的概率,即提高了数据防碰撞能力。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种数据通信方法的流程图;

图2为本申请另一实施例公开的检测窗的结构图;

图3为本申请另一实施例公开的一种检测信道被占用方法的流程图;

图4为本申请一实施例公开的一种发射探测帧方法的流程图;

图5为本申请实施例公开的一种数据通信装置的组成框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种数据通信方法,如图1所示,该方法包括:

s100、在接收到数据发送请求的情况下,生成检测窗,该检测窗包括至少两个检测时间段和至少一个探测时间段,检测时间段的个数与探测时间段的个数的差值为1,检测时间段和探测时间段依次交叉排列,检测窗中,至少两个时间段的时长为随机值;

具体的,当处于通信网络中的节点接收到数据发送请求时,该节点生成检测窗,该节点即为处于通信网络中的各终端电子设备。以应用lora通信技术的物联网为例,物联网中的节点为lora节点,loar节点为保持低功耗,在不工作时处于休眠模式,并进行周期性唤醒,在唤醒时,若接收到数据发送请求,则生成检测窗。该检测窗的结构如图2所示,包括n个检测时间段a和n-1个探测时间段b,n大于等于2,检测窗中时间段的排列为第一检测时间段a1、第一探测时间段b1、第二检测时间段a2、第二探测时间段b2、...第n-1检测时间段an-1、第n-1探测时间段bn-1、第n检测时间段an。

其中,检测时间段用于,在检测时间段执行信道是否被占用的操作;探测时间段用于,在探测时间段执行向信道发射探测帧的操作,该探测帧用于占用信道,即某一节点在探测时间段内向信道发射探测帧,只要其他节点检测到该探测帧,则表明信道当前被占用,从而不会发送数据,当某一节点不发射探测帧时,则其他节点无法检测到探测帧。可以理解,随着应用网络环境的不同,探测帧的结构也不相同,以应用lora通信网络为例,探测帧是由loar前导码和探测数据构成的。

其中,检测时间段的时长与探测时间段的时长均为一个符号时间的整数倍。所述检测窗中至少两个时间段的时长为随机值,该两个时间段可为检测窗中的任意两个时间段。具体的,可在一取值范围内获得两个随机值,并将所述两个随机值作为预先指定的两个时间段的时长;然后获取其他时间段预先存储的对应的时长值。

s101、在每相邻的一组所述检测时间段和所述探测时间段内执行:在所述检测时间段内检测信道是否被占用,若所述信道未被占用,则在所述探测时间段内向所述信道发送探测帧,所述探测帧用于占用信道;直到在某组所述检测时间段和所述探测时间段内检测到所述信道被占用,则停止在此次检测窗的操作;

其中,由图2所示,相邻的一组所述检测时间段和所述探测时间段即为一组a1和b1,一组a2和b2…一组an-1和bn-1,从第一组的第一检测时间段a1开始执行检测信道是否被占用,若所述信道未被占用,则在该组的第一探测时间段b1内向所述信道发送探测帧,然后在第二组的第二检测时间段a2执行检测信道是否被占用,以及在确定未被占用时,在第二探测时间段b2内发送探测帧,直到在某组的检测时间段内检测到信道被占用,则停止在此次检测窗的操作,进行随机避让,并在避让时间到达后生成一个新的所述检测窗,进而在该新的检测窗中执行步骤s101。

s102、当到达最后一个检测时间段时,若在该检测时间段内检测到所述信道未被占用,则向所述信道发送所述目标数据。

具体的,执行到在最后一组的第n-1探测时间段bn-1内向所述信道发送探测帧完毕后,在最后一个检测时间段an内检测信道是否被占用,若未被占用,则发送目标数据。

上述实施例中,在数据发送前,生成检测窗,该检测窗,该检测窗包括至少两个检测时间段和至少一个探测时间段,所述检测时间段的个数与探测时间段的个数的差值为1,所述检测时间段和所述探测时间段依次交叉排列,所述检测窗中至少两个时间段的时长为随机值;进而在每相邻的一组所述检测时间段和所述探测时间段内执行在检测时间段内,检测信道是否被占用,若被占用则停止此次检测窗的操作;若所述信道未被占用,则在位于该检测时间段后的探测时间段内,向所述信道发射探测帧,所述探测帧用于占用信道,直到在某组所述检测时间段和所述探测时间段内检测到所述信道被占用,则停止在此次检测窗的操作,当到达最后一个检测时间段时,并在该时间段内检测到所述信道未被占用时,向所述信道发送所述数据,可见,在进行信道占用检测时,检测时间段和/或探测时间段的时长存在随机情况,即使多个节点在同一时刻生成检测窗,但具体的检测信道占用和发射探测帧的时间都不相同,大大降低了各个节点在同一个时刻发送数据的概率,即提高了数据防碰撞能力。具体的,在物联网中使用lora节点时,当lora节点需登记、业务数据上报或回复网关应答时,都可采用上述实施例的数据通信方法进行数据的发送。

在本申请另一实施例中,优选地,生成的检测窗中的每个时间段的时长均为随机值,如此,只有在多个节点生成的检测窗中每个时间段的时长完全相同的情况下,多个节点发送的数据才会发生碰撞,但多个节点生成的检测窗中每个时间段的时长完全相同的情况出现的概率非常低,所以该方式能够大大降低数据碰撞的概率。

优选地,针对任一个检测窗来说,检测窗中从第一个检测时间段至最后一个检测时间段,检测时间段的时长越来越小,如图2所示的检测窗,第一个检测时间段即第一检测时间段a1的时长最长,越往后检测时间段的时长越小,an的时长是最短的。如此,对于不同节点生成的检测窗来说,任一个节点生成的检测窗中位置靠后的检测时间段的时长不仅小于该检测窗中位置靠前的检测时间段的时长,基本也会小于其他节点生成的检测窗中位置靠前的检测时间段的时长。以下面的一个例子对设置时长的防碰撞效果进行说明:

节点1和节点2生成的检测窗包括2个检测时间段,节点1生成的检测窗中检测时间段的时长是遵循从第一个检测时间段至最后一个检测时间段,检测时间段的时长越来越小的规则,如第一检测时间段的时长为80ms。节点2生成的检测窗中检测时间段的时长并不遵循上述规则,如其第一检测时间段的时长为20ms,第二检测时间段的时长为90ms。

节点2先生成检测窗,并执行检测,当节点2生成的检测窗执行到第二检测时间段的第10ms,即剩余80ms的检测时长时,节点1生成的检测窗刚开始执行第一检测时间段,即其也剩余80ms的检测时长,如此节点1生成的检测窗在执行完第一检测时间段的80ms后,确定信道未被占用,向信道发送探测帧,而节点2生成的检测窗在执行完第二检测时间段的剩余80ms后,确定信道未被占用,发送目标数据,此时信道中则发生探测帧和目标数据的碰撞。但,若节点2生成的检测窗的检测时间段的时长也遵循越来越小的规则,就不会发生节点2生成的检测窗的第二检测时间段的剩余执行时长与节点1生成的检测窗的第一检测时间段的剩余执行时长相同的情况,也即完全避免了探测帧和目标数据发生碰撞的情况。

优选地,所述检测窗的时长为预先设置的定值,该方式能够进一步降低数据的碰撞概率。以下面一个例子对设置定值的防碰撞效果进行说明:

如节点1生成包括3个时间段的检测窗的总时长为110ms,其中,第一检测时间段为60ms,探测时间段为10ms,第二检测时间段为40ms;节点2生成的包括3个时间段的检测窗的总时长为100ms,其中,第一检测时间段为50ms,探测时间段为10ms,第二检测时间段为40ms。

若节点2生成的检测检测窗的时间是在节点1生成检测窗的10ms后,此时,节点1生成的检测窗中的第一检测时间段的执行时长剩余为50ms,相当于与节点2生成的检测窗中的第一检测时间段的时长相同,而且两个节点生成的检测窗的探测时间段和第二检测时间段的时长是完全相同的,如此,两个检测窗的各时间段的时长,在节点1生成检测窗10ms后是完全相同的,由此则造成了数据的碰撞。但若检测窗的时间为一个定值,则完全避免了上述数据发生碰撞的情况。

具体的,在所述检测窗的时长为预先设置的定值时,生成包括n个时间段的检测窗的过程为:

对n-1个时间段中的任一时间段:从与该时间段对应的取值范围内获取随机值,并将获取的随机值作为该时间段的时长;

将所述定值与所述n-1个时间段时长总和的差值作为第n个时间段的时长,其中,所述n-1个时间段时长总和小于所述定值。

其中,根据上述对检测窗中检测时间段和探测时间段的设定即检测窗的时长为一设置的定值,检测时间段的个数与探测时间段的个数的差值为1,所述检测时间段和所述探测时间段依次交叉排列,检测窗中从第一个检测时间段至最后一个检测时间段,检测时间段的时长越来越小,检测时间段的时长与探测时间段的时长均为一个符号时间的整数倍等,推算出的检测时间段和探测时间段组合最多的一种检测窗结构,为最优选地一种检测窗结构,以便所有节点根据该最优选的检测窗结构生成检测窗进行信道占用检测。

本申请提供的另一实施例中,数据通信方法具体应用在利用loar通信技术组网的物联网中的loar节点中,则检测信道是否被占用,如图3所示,包括:

s300、判断是否从所述信道中接收到数据;

其中,loar节点处于信道活动检测模式(channelactivitydetection,cad),在该cad模式下,loar节点实时判断是否从信道中接收到数据。

s301、若接收到数据,基于预设解调方式对所述接收到的数据进行解调,获得解调数据;

其中,基于预设的对应于loar通信的解调方式对接收到的数据进行解调。

s302、判断解调数据是否与预先存储的loar前导码匹配;

s303、若匹配,则确定所述信道被占用。

上述方式通过利用cad模式检测信道是否被占用,能够准确高效的实现信道被占用的判断。

基于上述实施例,向所述信道发射探测帧的方法,如图4所示,包括:

s400、获取所述loar前导码和探测数据;

具体的,获取预先存储的loar前导码和探测数据,探测数据可以是任何数据,其不具有实质的意义。

s401、基于预设调制方式,对所述loar前导码和探测数据进行调制获得探测帧,所述前导码时间和所述探测数据时间的和值为所述探测时间段的时长;

其中,基于与loar通信技术对应的调制方式,对前导码和探测数据进行调制,所述探测数据的时间大于等于1个符号的时长。

s402、向所述信道发射所述探测帧,在达到探测时间段的时长后,停止发射该探测帧。

上述实施例,通过预设调制方式实现了探测帧的生成,并发送该探测帧至信道中以令其他loar节点检测该探测帧确定信道被占用。

本申请实施例还公开一种数据通信装置,如图5所示,该装置包括:

检测窗生成单元500,用于在接收到数据发送请求的情况下,生成检测窗,所述检测窗包括至少两个检测时间段和至少一个探测时间段,所述检测时间段的个数与探测时间段的个数的差值为1,所述检测时间段和所述探测时间段依次交叉排列,所述检测窗中至少两个时间段的时长为随机值;

检测窗执行单元501,用于在每相邻的一组所述检测时间段和所述探测时间段内执行:在所述检测时间段内检测信道是否被占用,若所述信道未被占用,则在所述探测时间段内向所述信道发送探测帧,所述探测帧用于占用信道;直到在某组检测时间段和所述探测时间段内检测到所述信道被占用,则停止在此次检测窗的操作;

发送单元502,用于当到达最后一个检测时间段时,若在该检测时间段内检测到所述信道未被占用,则向所述信道发送所述数据

优选地,检测窗中的每个时间段的时长均为随机值;

优选地,从所述第一个检测时间段至最后一个检测时间段,所述检测时间段的时长越来越小;

优选地,所述检测窗的时长为预先设置的定值。

优选地,所述装置避让单元,用于在停止在此次检测窗的操作后进行避让,并在避让时间到达后执行检测窗生成单元。

本申请实施例还公开一种电子设备,其特征在于,所述电子设备包括:通讯接口、处理器和存储器;

所处存储器中存储有程序代码;

所述处理器调用所述存储器中的程序代码时执行如下操作:

在接收到数据发送请求的情况下,生成检测窗,所述检测窗包括至少两个检测时间段和至少一个探测时间段,所述检测时间段的个数与探测时间段的个数的差值为1,所述检测时间段和所述探测时间段依次交叉排列,所述检测窗中至少两个时间段的时长为随机值;在每相邻的一组所述检测时间段和所述探测时间段内执行:在所述检测时间段内检测信道是否被占用,若所述信道未被占用,则在所述探测时间段内向所述信道发送探测帧,所述探测帧用于占用信道;直到在某组检测时间段和所述探测时间段内检测到所述信道被占用,则停止在此次检测窗的操作;当到达最后一个检测时间段时,若在该检测时间段内检测到所述信道未被占用,则向所述信道发送所述数据。

最后,还需要说明的是,在本文中术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1