通信方法、终端、服务器以及计算机存储介质与流程

文档序号:20885323发布日期:2020-05-26 17:28阅读:134来源:国知局
通信方法、终端、服务器以及计算机存储介质与流程

本发明涉及通信领域,尤其涉及一种通信方法、终端、服务器以及计算机存储介质。



背景技术:

lora是一种无线传输技术。在lora通信中,将设备划分成了终端、网关和服务器。终端和网关之间使用lora通信,网关和服务器之间使用以太网进行通信。

多个终端在同一时间同一信道上发送数据时会产生冲突,这样会导致服务器无法同时收到所有终端发送的数据。由于终端和网关是半双工通信,这意味着终端和网关在发送数据时不能接收数据,在接收数据时不能发送数据。而终端收发数据是时间随机的,当网关发送数据时,如果这个时候终端也在发送数据,网关就接收不到终端发送的数据。同理,终端也是如此。这样必然会造成数据丢失。

具体可参考图1,网关有8个上行(接收)信道,一个下行(发送)信道,发送数据时就不能接收数据,终端只有一个上行(发送)信道和一个下行(接收)信道,同样也是半双工通信。终端在入网后都是以随机时间和随机信道发数据给网关。网关虽然有8个上行(接收)信道,但还是无法有效避免多个终端同信道同时间发送数据造成的冲突。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述同一时间同一信道通信会造成冲突以及半双工通信的缺陷,提供一种通信方法、终端、服务器以及计算机存储介质。

本发明解决其技术问题所采用的技术方案是:

第一方面,本发明提供一种通信方法,所述方法包括:

终端发送入网请求给服务器;

接收服务器下发的信道参数和时间参数,其中,服务器预设有可供终端上传数据的多个信道,每个信道可以分配给多个终端,每个信道对应一个信道参数;

基于所述信道参数选择一个固定的信道用于发送数据,并基于所述时间参数所确定的数据发送时间发送数据以便于与已经分配到同一个信道的其他终端的数据发送时间错开。

优选的,所述时间参数包括时间t0和时间δt,时间t0表示距离服务器下一次发送广播心跳包的时间,时间δt表示在接收到广播心跳包后再过多久可以发送数据包给服务器,所述广播心跳包包含时间t0,分配到同一个信道的所有终端对应不同的时间δt;

所述方法还包括:终端在每一次获取到时间t0时等待时间t0之后,开窗准备接收服务器发送的广播心跳包,并在没有收到广播心跳包时判断离网并重新发送入网请求到服务器。

优选的,所述的基于所述时间参数所确定的数据发送时间发送数据,包括:终端在每一次获取到广播心跳包时对终端的数据发送时间进行一次校准,等待时间δt后周期性地发送数据包到服务器直至终端下一次获取到广播心跳包以对数据发送时间进行再一次校准。

第二方面,本发明提供一种终端,包括:

入网请求模块,用于发送入网请求给服务器;

参数获取模块,用于接收服务器下发的信道参数和时间参数,其中,服务器预设有可供终端上传数据的多个信道,每个信道可以分配给多个终端,每个信道对应一个信道参数;

数据发送模块,用于基于所述信道参数选择一个固定的信道用于发送数据,并基于所述时间参数所确定的数据发送时间发送数据以便于与已经分配到同一个信道的其他终端的数据发送时间错开。

优选的,所述时间参数包括时间t0和时间δt,时间t0表示距离服务器下一次发送广播心跳包的时间,时间δt表示在接收到广播心跳包后再过多久可以发送数据包给服务器,所述广播心跳包包含时间t0,分配到同一个信道的所有终端对应不同的时间δt;

其中,所述终端还包括在线校验模块,用于在每一次获取到时间t0时等待时间t0之后,开窗准备接收服务器发送的广播心跳包,并在没有收到广播心跳包时重新发送入网请求到服务器。

其中,所述数据发送模块包括:信道选择子模块,用于基于所述信道参数选择一个固定的信道用于发送数据;数据发送子模块,用于在每一次获取到广播心跳包时对终端的数据发送时间进行一次校准,等待时间δt后周期性地发送数据包到服务器直至终端下一次获取到广播心跳包以对数据发送时间进行再一次校准。

第三方面,本发明提供一种终端,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序可被所述处理器加载并执行如上所述的方法。

第四方面,本发明提供一种通信方法所述方法包括:

服务器接收终端发送的入网请求;

确定终端的信道参数,以便从预设的多个信道中选择一个固定的信道分配给所述终端,其中,服务器预设有可供终端上传数据的多个信道,每个信道可以分配给多个终端,每个信道对应一个信道参数;以及确定终端的时间参数,以便于将终端的数据发送时间与已经分配到同一个信道的其他终端的数据发送时间错开;

将所述信道参数和所述时间参数下发给所述终端,以使所述终端按照所述信道参数选择一个固定的信道用于发送数据以及按照所述时间参数所确定的数据发送时间发送数据。

优选的,所述时间参数包括时间t0和时间δt,时间t0表示距离服务器下一次发送广播心跳包的时间,时间δt表示在接收到广播心跳包后再过多久可以发送数据包给服务器,所述广播心跳包包含时间t0,分配到同一个信道的所有终端对应不同的时间δt;

所述方法还包括:服务器周期性地发送广播心跳包给所有终端,以便各个终端判断是否离网以及对数据发送时间进行校准。

第五方面,本发明提供一种服务器,包括:

入网接入模块,用于接收终端发送的入网请求;

参数确定模块,用于确定终端的信道参数,以便从预设的多个信道中选择一个固定的信道分配给所述终端,其中,服务器预设有可供终端上传数据的多个信道,每个信道可以分配给多个终端,每个信道对应一个信道参数;以及确定终端的时间参数,以便于将终端的数据发送时间与已经分配到同一个信道的其他终端的数据发送时间错开;

参数下发模块,用于将所述信道参数和所述时间参数下发给所述终端,以使所述终端按照所述信道参数选择一个固定的信道用于发送数据以及按照所述时间参数所确定的数据发送时间发送数据。

第六方面,本发明提供一种服务器,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序可被所述处理器加载并执行如上所述的方法。

第七方面,本发明提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被执行后,能够实现前述一个或多个技术方案提供的通信方法。

本发明的通信方法、终端、服务器以及计算机存储介质,具有以下有益效果:本发明能实现服务器对多个终端在通信时间以及信道上进行管理,服务器预设有可分配给不同终端的多个信道,在终端入网时下发的信道参数和时间参数,终端基于所述信道参数选择一个固定的信道用于发送数据,基于所述时间参数,终端的数据发送时间可以与已经分配到同一个信道的其他终端的数据发送时间错开,所以本发明从时间、信道两个维度对终端的数据发送进行管理,使得传输过程更为高效,保证终端在发送数据时在时间和信道上不会有冲突,降低丢包率;进一步地,服务器周期性的下发广播心跳包,一方面可以便于终端对判断是否离网,另一方面,可以对终端的数据发送时间进行周期性地校准。

附图说明

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

图1是现有的通信方法的原理图;

图2是本发明实施例提供的一种通信方法的原理图;

图3是本发明实施例提供的一种通信方法的流程图;

图4是本发明实施例提供的另一种通信方法的流程图;

图5是本发明实施例提供的终端的结构示意图;

图6是本发明实施例提供的服务器的结构示意图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的典型实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

发明总的思路是:参看图2,利用服务器将每个终端的数据发送所用的信道和数据发送时间规划好,终端只能在规定的信道和数据发送时间发送数据,将每个终端上行数据按照时间及信道两个维度错分开来,多个终端被分配到预设的多个信道,从信道上将多个终端错开,而分配到同一个信道的多个终端的数据发送时间错开。

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。

实施例一

参看图3,本发明实施例提供一种通信方法,方法的执行主体为终端,方法包括以下步骤:

s101、终端发送入网请求给服务器;

s102、接收服务器下发的信道参数和时间参数,其中,服务器预设有可供终端上传数据的多个信道,每个信道可以分配给多个终端,每个信道对应一个信道参数;

s103、基于所述信道参数选择一个固定的信道用于发送数据,并基于所述时间参数所确定的数据发送时间发送数据以便于与已经分配到同一个信道的其他终端的数据发送时间错开。

其中,信道参数规定了终端发送(上行)数据使用的信道,终端只能在此信道发送数据,如图2中,终端11-41分配到了信道1发送数据,终端12-42分配到了信道2发送数据等等,如此从信道上将多个终端发送的数据错开。需要说明的是,信道的数量并不限于图2中的信道1-7,此仅为举例说明。

为了避免分配到同一个信号的多个终端同时发送数据造成冲突,进一步地,将分配到同一个信道的终端的数据发送时间错开。为此,所述时间参数包括时间t0和时间δt。其中,时间t0表示距离服务器下一次发送广播心跳包的时间,时间δt表示在接收到广播心跳包后再过多久可以发送数据包给服务器。

其中,服务器发送广播心跳包的信道是事先配置的固定信道,相应的,终端的接收数据的信道也是事先配置的固定信道,所有的终端公用一个接收数据的信道,如此可以抱着所有的终端同步获取到广播心跳包。另外,服务器发送广播心跳包的信道可以从预设的多个信道中选择一个。例如假如网关有f0-f7这8个信道,则可以选择f0作为固定的发送广播心跳包的信道。而f0-f7这8个信道可以全部或者选择其中的部分几个信道,用于分配给多个终端发送数据。

本实施例中,每一次接收的广播心跳包都包含时间t0。因为终端入网时刻不固定,所以终端首次入网时所获取的时间t0是与终端入网的当前时间相关的,而之后通过广播心跳包获取的时间t0是固定的。

本实施例中广播心跳包的作用有两个,第一个作用是便于终端检验自身是否离网。为此,本实施例的所述方法还包括:终端在每一次获取到时间t0时(首次获取是通过发送入网请求后从服务器获取时间t0,之后是通过广播心跳包获取时间t0),等待时间t0之后(具体可以在每一次获取到时间t0时启用一个计时器进行计时,等计时时间到达t0),开窗准备接收服务器发送的广播心跳包,并在没有收到广播心跳包时判断离网并重新发送入网请求到服务器。

本实施例中广播心跳包的第二个作用是对终端的数据发送时间进行校准。理论上,终端一旦发送第一个数据包给服务器,后续的数据包可以根据设定好的时间间隔周期性地发送即可。但是为了避免长时间下来产生的终端、服务器时间不同步问题,所以本实施例中终端以接收广播心跳包为基准,也就是说以时间t0到达为基准,往后延时时间δt才可以发送数据包给服务器。

因此,本实施例中步骤s103中,所述的基于所述时间参数所确定的数据发送时间发送数据,包括:终端在每一次获取到广播心跳包时对终端的数据发送时间进行一次校准,等待时间δt后周期性地发送数据包到服务器直至终端下一次获取到广播心跳包以对数据发送时间进行再一次校准。就是说,终端入网获取到了时间t0就开始计时,计时时间δt才发送数据包给服务器,在下一次获取广播心跳包之前,都是按照设定好的时间间隔周期性地发送数据包给服务器,一旦终端获取到了新的广播心跳包,就开始计时,计时时间δt才发送数据包给服务器,然后继续按照设定好的时间间隔周期性地发送数据包给服务器,如此反复。

其中,分配到同一个信道的所有终端对应不同的时间δt,如此避免同一个信道的终端发送数据产生冲突。参看图2,以信道1为例,终端11-41的时间δt分别具体为时间δt1、δt2、δt3、δt4,也就是说终端11在时间t0到达接收到广播心跳包后开始计时,计时时间到达时间δt1才发送数据包给服务器,而终端21则是要计时时间到达时间δt2才发送数据包给服务器。

另外,需要说明的是,终端第一次发送数据包并非一定要等待时间时间t0到达再延时δt,也可以根据终端发送数据的时间间隔往前推出可以发送数据包的时间。比如,若广播心跳包是5分钟发送一次,终端的数据包发送间隔是10秒钟一次,如果终端入网时时间是9:48:00,下一次广播心跳包发包时间是9:50:00,则服务器下发的时间t0是2分钟,假如终端对应的δt是2秒,也就是说终端要在9:50:02发送数据包,如果一直等到9:50:02才发送那需要耗时2分钟2秒,所以可以往前推导,以10秒为间隔,则可以确定,终端在9:48:02秒就可以发送第一个数据包了。

另外,服务器对信道参数和时间参数的确定方法,并不做限制,理论上,只要能将多个终端分配到既有的多个信道中,然后保证同一个信道中的不同终端的数据发送时间错开即可。由于是服务器为终端确定的时间δt,所以服务器只需要在发送广播心跳包之后的时间δt打开网关接收数据包即可。例如,图2中终端11-17的时间δt均为时间δt1,终端21-27的时间δt均为时间δt2,等等,则服务器只需在发送数据包之后的时间δt1、δt2、δt3、δt4分别打开一次网关接收数据包即可。

需要说明的是,本发明不仅适用于lora通信,也适用于其他因为多个终端在同一时间同一信道通信会造成冲突的情形。本发明使用lora通信时,无论是否使用lorawan协议,采用此方法都可以达到减少通信过程中的冲突,降低丢包率的目的。另外,本发明不仅适用于终端与网是半双工通信的情形,也适用于全双工通信的情形。

实施例二

参考图4,本发明实施例还提供另一种通信方法,执行主体是服务器,所述方法包括:

s201、服务器接收终端发送的入网请求;

s202、确定终端的信道参数,以便从预设的多个信道中选择一个固定的信道分配给所述终端,其中,服务器预设有可供终端上传数据的多个信道,每个信道可以分配给多个终端,每个信道对应一个信道参数;以及确定终端的时间参数,以便于将终端的数据发送时间与已经分配到同一个信道的其他终端的数据发送时间错开;关于信道参数和时间参数,可以参考上述实施例一,此处不再赘述。

s203、将所述信道参数和所述时间参数下发给所述终端,以使所述终端按照所述信道参数选择一个固定的信道用于发送数据以及按照所述时间参数所确定的数据发送时间发送数据,具体可参看上述实施例一。

优选的,所述方法还包括:服务器周期性地发送广播心跳包给所有终端,以便各个终端判断是否离网以及对数据发送时间进行校准,具体可参看上述实施例一。

其中,步骤s202中,关于信道参数和时间参数的确定策略,并不做限制,理论上,只要能将多个终端分配到既有的多个信道中,然后保证同一个信道中的不同终端的数据发送时间错开即可。例如,可以将终端按照入网顺序,依次分配到预设的多个信道中,而对于同一个信道中的多个终端,按照入网顺序分配的时间δt依次递增,由于是服务器为终端确定的时间δt,所以服务器只需要在发送广播心跳包之后的时间δt打开网关接收数据包即可。

可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。

实施例三

本发明实施例还提供一种终端,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序可被所述处理器加载并执行实施例一的方法。

实施例四

本发明实施例还提供一种服务器,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序可被所述处理器加载并执行实施例二的方法。

实施例五

本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被执行后,能够实现实施例一提供的通信方法,或,实现实施例二提供的通信方法。

实施例六

本发明实施例还提供一种终端,包括:

入网请求模块301,用于发送入网请求给服务器;

参数获取模块302,用于接收服务器下发的信道参数和时间参数,其中,服务器预设有可供终端上传数据的多个信道,每个信道可以分配给多个终端,每个信道对应一个信道参数;

数据发送模块303,用于基于所述信道参数选择一个固定的信道用于发送数据,并基于所述时间参数所确定的数据发送时间发送数据以便于与已经分配到同一个信道的其他终端的数据发送时间错开。

其中,所述时间参数包括时间t0和时间δt,时间t0表示距离服务器下一次发送广播心跳包的时间,时间δt表示在接收到广播心跳包后再过多久可以发送数据包给服务器,所述广播心跳包包含时间t0,分配到同一个信道的所有终端对应不同的时间δt。

优选的,所述终端还包括在线校验模块304,用于在每一次获取到时间t0时等待时间t0之后,开窗准备接收服务器发送的广播心跳包,并在没有收到广播心跳包时重新发送入网请求到服务器。

其中,所述数据发送模块303包括:

信道选择子模块3031,用于基于所述信道参数选择一个固定的信道用于发送数据;

数据发送子模块3032,用于在每一次获取到广播心跳包时对终端的数据发送时间进行一次校准,等待时间δt后周期性地发送数据包到服务器直至终端下一次获取到广播心跳包以对数据发送时间进行再一次校准。

因该实施例的构思与实施例一相同,所以细节内容可具体参考实施例一,此处不再赘述。

实施例七

本发明实施例还提供一种服务器,包括:

入网接入模块401,用于接收终端发送的入网请求;

参数确定模块402,用于确定终端的信道参数,以便从预设的多个信道中选择一个固定的信道分配给所述终端,其中,服务器预设有可供终端上传数据的多个信道,每个信道可以分配给多个终端,每个信道对应一个信道参数;以及确定终端的时间参数,以便于将终端的数据发送时间与已经分配到同一个信道的其他终端的数据发送时间错开;

参数下发模块403,用于将所述信道参数和所述时间参数下发给所述终端,以使所述终端按照所述信道参数选择一个固定的信道用于发送数据以及按照所述时间参数所确定的数据发送时间发送数据。

其中,参数确定模块402关于信道参数和时间参数的确定策略,并不做限制,理论上,只要能将多个终端分配到既有的多个信道中,然后保证同一个信道中的不同终端的数据发送时间错开即可。由于是服务器为终端确定的时间δt,所以服务器只需要在发送广播心跳包之后的时间δt打开网关接收数据包即可。

优选的,所述服务器还包括校验模块404,用于周期性地发送广播心跳包给所有终端,以便各个终端判断是否离网以及对数据发送时间进行校准。

因该实施例的构思与实施例一相同,所以细节内容可具体参考实施例一,此处不再赘述。

上述描述涉及各种模块。这些模块通常包括硬件和/或硬件与软件的组合(例如固化软件)。这些模块还可以包括包含指令(例如,软件指令)的计算机可读介质(例如,永久性介质),当处理器执行这些指令时,就可以执行本发明的各种功能性特点。相应地,除非明确要求,本发明的范围不受实施例中明确提到的模块中的特定硬件和/或软件特性的限制。作为非限制性例子,本发明在实施例中可以由一种或多种处理器(例如微处理器、数字信号处理器、基带处理器、微控制器)执行软件指令(例如存储在非永久性存储器和/或永久性存储器)。另外,需要指出的是,上文对各种模块的描述中,分割成这些模块,是为了说明清楚。然而,在实际实施中,各种模块的界限可以是模糊的。例如,本文中的任意或所有功能性模块可以共享各种硬件和/或软件元件。又例如,本文中的任何和/或所有功能模块可以由共有的处理器执行软件指令来全部或部分实施。另外,由一个或多个处理器执行的各种软件子模块可以在各种软件模块间共享。相应地,除非明确要求,本发明的范围不受各种硬件和/或软件元件间强制性界限的限制。

本发明的通信方法、终端、服务器以及计算机存储介质,具有以下有益效果:本发明能实现服务器对多个终端在通信时间以及信道上进行管理,服务器在终端入网时下发的信道参数和时间参数,基于所述信道参数,终端从服务器预设的多个信道中选择一个信道用于发送数据,基于所述时间参数,终端的数据发送时间可以与已经分配到同一个信道的其他终端的数据发送时间错开,所以本发明从时间、信道两个维度对终端的数据发送进行管理,使得传输过程更为高效,保证终端在发送数据时在时间和信道上不会有冲突,降低丢包率;进一步地,服务器周期性的下发广播心跳包,一方面可以便于终端对判断是否离网,另一方面,可以对终端的数据发送时间进行周期性地校准。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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