发明内容
本发明所要解决的技术问题是提供一种收发密集型窄带无线远距离通信的防冲突方法,可以有效解决上述背景技术中提出的问题。
为解决上述问题,本发明所采取的技术方案是:一种收发密集型窄带无线远距离通信的防冲突方法,包括以下步骤:
步骤一、先设置一个节点设备的周期性时钟;
步骤二、所述周期性时钟到时,所述节点设备执行开启信道激活检测;
步骤三、判断信道状态:
3-1:若检测出信道未激活,则判断是否有数据要发送,若是,则所述节点设备开始发送数据,流程结束;
3-2:若检测出信道已激活,则所述节点设备开始接收数据,进行步骤四;
步骤四、判断是否为同步指令:
4-1:若不是同步指令,则所述节点设备开始处理接收到的数据,数据处理完成流程结束;
4-2:若是同步指令,则调整时间基准,进行步骤五;
步骤五、产生一个随机数作为本轮发送序号;
步骤六、计算节点设备的信道激活检测时间;
步骤七、更新周期定时器,返回步骤一。
优选的,所述周期性时钟Tsyn=N×Tint,所述N为节点设备产生的随机数,所述Tint为两节点设备的时间间隔。
优选的,所述Tint> Tcad+2×Tdev,所述Tcad为信道激活检测时间,所述Tdev为节点设备在周期性时钟内的最大误差。
优选的,所述Tcad=1.85×(SF+32)/BW,所述BW为带宽,所述SF为二的N次方。
优选的,所述同步指令为网关定期下发的同步信号,节点收到同步信号后以此作为时间基准并产生随机数N。
优选的,所述调整时间基准为调整两节点设备的时间间隔Tint。
优选的,所述周期定时器为两个节点设备之间所允许延长的信道激活检测的时间。
另外,还涉及一种收发通信设备,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如上述所述的一种收发密集型窄带无线远距离通信的防冲突方法。
还涉及一种可读存储介质,优选的,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述所述的一种收发密集型窄带无线远距离通信的防冲突方法。
与现有技术相比,本发明提供了一种收发密集型窄带无线远距离通信的防冲突方法,具备以下有益效果:
本发明通过设置周期性时钟,分时进行信道激活检测,并对信道状态进行判断再发送数据,能够使无线远距离通信系统中,多节点密集型设备有序发送数据,提高信道利用率,避免冲突丢包,在少数节点需要发送时仍能有较高的时效性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
参照图1,本发明提供一种收发密集型窄带无线远距离通信的防冲突方法,包括以下步骤:
当节点设备需要发送数据的时候,将先进行以下步骤;
步骤一、先设置一个节点设备的周期性时钟;
设置周期性时钟,是为了避免当多个节点设备同时开启信道激活检测,同时检测到多条信道为未激活状态,随即同时开启数据发送,产生冲突;
步骤二、所述周期性时钟到时,所述节点设备执行开启信道激活检测;
各节点设备在周期性时钟到时,再开启信道激活检测,可使各节点设备根据时间的先后有序执行开启信道激活检测;
步骤三、判断信道状态:
3-1:若检测出信道未激活,则判断是否有数据要发送,若是,则所述节点设备开始发送数据,数据发送完后流程结束;
3-2:若检测出信道已激活,则延后本次数据的发送,转入接收模式,所述节点设备开始接收数据,进行步骤四;
步骤四、判断接收到的数据是否为同步指令:
4-1:若不是同步指令,则所述节点设备开始处理接收到的数据,数据处理完成后流程结束;
4-2:若是同步指令,则调整时间基准,进行步骤五;
步骤五、产生一个随机数作为本轮发送序号;
步骤六、计算节点设备的信道激活检测时间;
步骤七、更新周期定时器,返回步骤一。
优选的,所述周期性时钟Tsyn=N×Tint,所述N为节点设备产生的随机数,所述Tint为两节点设备的时间间隔。
优选的,所述Tint> Tcad+2×Tdev,所述Tcad为信道激活检测时间,所述Tdev为节点设备在周期性时钟内的最大误差。
优选的,所述Tcad=1.85×(SF+32)/BW,所述BW为带宽(BandWidth),所述SF为二的N次方,所述SF表示扩频因子(Spreading Factor)。
优选的,所述同步指令为网关定期下发的同步信号,节点收到同步信号后以此作为时间基准并产生随机数N。
优选的,所述调整时间基准为调整两节点设备的时间间隔Tint。
优选的,所述周期定时器为两个节点设备之间所允许延长的信道激活检测的时间。
其中,数据的传输时间Tpayload= Ts×N(payloadSymbNb):
所述Ts为一个符号的传输时间,Ts=1/Rs=SF/BW,
所述Rs为符号传输速率,Rs=Rc/SF=BW/SF,
所述Rc为码片的传输速率,Rc=BW=|BW|chips/s,
一个完整的扫频信号(sweep signal)可以被称为一个符号,将一个符号分成二的N次方个单元,这个单元即为码片(chips),来表示N个数据位,SF即为扩频因子;
数据传输速率DR或Rb:DR = Rb = SF×Rs×CR = SF×(BW/SF)×CR;
,公式中各符号的具体含义如下:
PL表示有效负载的字节数;
SF表示扩频因子;
使用报头时,H=0;没有报头时,H=1;
当LowDataRateOptimize位设置为1时,DE=1;否则DE=0;
CR表示编码率,取值范围为1-4。
另外,还涉及一种收发通信设备,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如上述所述的一种收发密集型窄带无线远距离通信的防冲突方法。
还涉及一种可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述所述的一种收发密集型窄带无线远距离通信的防冲突方法。
作为本发明的一个具体实施例:
以SF=10,BW=125K的通信系统为例,根据公式Tcad=1.85× (SF+32)/BW,可得出Tcad=15.63ms。如果同步周期为1分钟,通信系统时钟误差为10/1000000,则Tdev=0.6ms;由Tint> Tcad+2×Tdev,Tcad+2×Tdev=16.8,此处间隔时间取Tint=20ms。通信容量设计为100个节点设备,则周期定时器设置为2S,节点设备收到同步指令后立即同步时间基准Tint,生成各自的发送序号,根据周期性时钟Tsyn=N×Tint,序号为1的设备在时间基准Tint后的第20ms开始信道检测,序号为2的设备在时间基准Tint后的第40ms开启信道激活检测,序号为3的设备在时间基准Tint后的第60ms开始信道检测,……以此类推;
周期定时器是用来控制发送时机的,取决于并发量是多少,例如每个节点信道检测时间设置为20ms,并发量为100个,则2s可以将每个节点设备的20ms排列开来;
此时如果节点设备同时需要发送数据,1号设备在信道检测后信道未激活,并开始发送数据。2号设备信道激活检测时信道必然处于激活状态,此时2号设备延后2S再次开启信道激活检测,循环检测直到信道状态为未激活时,开始发送数据,其他节点同样如此,可以有效避免冲突;
信道激活检测是用来检测信道是否被占用的,没有设备在发送数据时,信道为未激活状态,有设备处理发送状态时,信道为激活状态;例如,1号节点在时间基准后的20ms开始了发送,发送持续一定时间,持续时间长短取决于发送的数据长度,一般时间至少要几百毫秒,若持续时间为500ms,则时间基准后的20~520ms信道为激活状态,2号节点设备在时间基准后的第40ms检测信道状态时,必然为激活状态。
如果只有1个节点设备要发送数据,例如100号设备。100号设备在时间基准Tint后的第2000ms开启信道激活检测,此时信道处于未激活状态,并开始发送数据,节点设备最长延时为2S,相比传统分时发送提高系统时效。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。