具体实施方式
下面将结合附图对本发明实施例进行描述。
根据本发明的一个实施例,提供了无线传感器网络中的同步跳频方法。如图1、2所示,该方法包括以下步骤:
步骤S101:在无线传感器网络的小区中,包括主节点和多个从节点。首先,由主节点预先生成长度为M的原始跳频序列集合C,其中M的取值可任意设定或参照最大可用频点数Nmax进行获取。考虑到实际的公共频段宽度会产生波动,从而WSN中的最大可用频点数Nmax将会产生波动,因此可根据节点空口信号带宽BW、公共频段的带宽B,及公式1.1确定动态的最大可用频点数Nmax:
之后,由主节点在所在小区内向从节点广播原始跳频序列集合C。主节点根据可用频点数N(N≤Nmax)、主节点标识信息ID1、各从节点标识信息ID2、ID3……IDm(假设为m个从节点,其中,主节点标识信息ID1、及各从节点标识信息ID2、ID3……IDm是辨识节点各自属性的唯一标识),及所述小区的节点参数K(K可根据小区的节点数取得,例如节点数为100,则K可选取与100最相近的2的整数7次方值128),通过以下公式1.2生成各从节点的伪随机相位值Index,
Index=(K*ID主+ID从)mod N (1.2),
从上述各从节点的伪随机相位值Index的生成过程可知,由于不同的从节点的ID号不同,从而在各节点收到主节点统一广播的跳频序列C后,可获得特定的伪随机相位值Index,保证了各从节点跳帧序列的特殊性和唯一性。
上述可用频点数N及可用频点集可通过主节点历史记录,或无线传感器网络中的记录获得。但上述确定可用频点数N及可用频点集的方式,由于***的参数变化会产生波动,从而使同步跳频存在稳定性问题。同时在确定过程中,还可采用以下动态确定可用频点数N及可用频点集的方法,由主节点收发器通过PLL(锁相环)对频段内的各频点进行均匀扫描,得到各频点的RSSI(Received Signal Strength Indication接收的信号强度指示)和LQI(linkquality indicator链路质量指示)。在上述通过PLL对各频点进行均匀扫描过程中,由于不同类型或厂家的收发器的PLL锁频时间存在差异,因此,若将锁频时间设定为固定值,将会使扫描结果出现差异。为解决这一问题,本发明中提出,由于大部分收发信机的锁频时间为20μs~200μs的范围值。因此,在进行公用频段无线传感网的空中功率谱的扫描过程中,当每个频点的锁频时间设定为10ms时就可满足不同类型的收发器的PLL的锁频时间要求,从而保证扫描结果不受到收发器类型的影响。
在得到各频点的RSSI和LQI后,可根据每个频点的RSSI和LQI参数,综合确定各频点的空口功率(空中接口功率)。从这些频点的空口功率得到频段内各频点的空口功率分布。在频段内对空口功率分布中的各频点空口功率从小到大依此进行排序。最后,根据设定的门限值,从空口功率分布中剔除功率大于门限值的频点,得到了动态的可用频点集,并通过此动态的可用频点集确定可用频点数N。
在以上步骤中,门限值的确定方法可采用固定确定或动态确定两种方法,在WSN状态受到干扰较少的情况下,可采用固定确定门限值的方法,如:预设固定初始绝对门限值(比如-60dBm)。在WSN状态受到干扰较多的情况下,可以采用动态确定的方法,根据反馈的链路干扰信息来决定是否剔除某个频点,从而可使上述门限值的设定更为准确。
在以上步骤中,为使得主节点与从节点的数据传输更为可靠,可使主节点采用Logistic混沌加密方法,对上述生成的可用频点数N、伪随机相位值Index进行加密。并将该伪随机相位值Index、所述原始跳频序列集合C和所述可用频点数N通过加密方式发送至各从节点。从而降低了主节点传输数据的易截获性。
步骤S102:各从节点根据随机相位值Index(0≤index<M),从原始跳频序列集合C中顺序循环提取可用频点数N个数,得到预跳频序列D。由于可用频点数N数值较小,因此,可通过对预跳频序列D模N的运算方式,使跳频序列符合频点集,即D′=DmodN,则D′[i]∈[0,N-1]。
从上述步骤S101及步骤S103可知,在本发明中,跳频序列D'是小区内从节点在本地进行运算产生的,而该小区内的主节点只进行计算参数的发送,从而大大减少了主节点的运算量。同时,在主节点发送的伪随机相位值Index是根据各从节点标识产生的,因此在各个从节点间保持了跳频序列较好的差别性,使节点间的跳频传输更为稳定。
步骤S103:在主节点获取的可用频点集与跳频序列D'之间建立一对一的顺序对应关系,即,使可用频点集中的每个可用频点与跳频系列D'中每个频点按顺序一一对应,获取同步跳频序列A[D′[i]],i∈[0,N-1],在主节点及从节点间,根据所述跳频序列D'及上述一一对应关系,从而实现同步跳频序列与传输可用频点集的相对应。
需要说明的是,在WSN中的传输节点(主节点与从节点)之间可以在允许量级的同步误差下建立同步。在WSN中同步误差的量级为100μs,从而在预留大量的保护时隙的同时,避免了时间资源的浪费。同步跳频图样示意如图3所示。图3中所示的“C虚线框”对应的时频栅格,这个C虚线框的时频栅格的左右移位表示同步误差。
作为以上步骤S103的进一步优化,当WSN中由于未知的问题或设计的不完善,导致跳频持续或间断的失败时,可通过下述方案实现跳频的容错处理。
在WSN的每个主节点中设置一个默认通信频点。为保证该频点的可靠,该频点可设定为不参与跳频(在网络状态稳定或干扰较小时该频点也可设定为参与跳频)。当主节点使用单一射频频点时,可以通过占用主节点的跳频通信时间来满足以上通信频点的要求,带默认频点的单射频频点主节点跳频配置如图10所示。当主节点使用两个以上的射频频点时,可以从中选择一个射频频点长期驻留,作为默认频点来发布广播信息。为保证传输质量,此主节点可采用全向天线。另一个用来实现跳频,带默认频点的双射频频点主节点跳频配置如图11所示。
以下将结合图4,通过数学模型的描述方式,对上述步骤S101~S103的实现过程给予说明:
Stp1:在WSN的各传输节点中,预先生成长度为M的原始跳频序列集合C,原始跳频序列集合C中频点为伪随机相位值Index的待索引系列,假设该原始跳频序列集合C中的可用频点数为N;在原始跳频序列集合C生成过程中,频点扫描参数为:每个频点驻留时间T;最大跳频周期数Jmax。
Stp2:根据index(0≤index<M),从C中顺序循环取出N个数作为跳频序列D。
Stp3:将D序列中的样值逐个模N计算得到D′,即D′=DmodN,则D′[i]∈[0,N-1]。
Stp4:周期的跳频序列对应的频点序列为A[D′[i]],i∈[0,N-1]。
通过上述步骤Stp1~Stp4得到了Jmax个跳频周期的跳频序列,持续时间为:N×T×Jmax。
作为以上步骤Stp4的进一步优化,为增强跳频序列的抗预测性,还可包括:Stp5,此步骤中,可定义D'j=(13·D+j)modN,j∈[1,Jmax-1],其中Jmax是最大跳频周期数。
当C的长度为32的随机排列序列,其他假定index=5,N=16,Jmax=11时,仿真分析结果如图5~9所示。
C={32 22 6 3 16 11 30 7 28 17 14 8 5 29 21 25 31 27 2619 15 1 23 2 4 18 24 13 9 20 10 12};
D={11 30 7 28 17 14 8 5 29 21 25 31 27 26 19 15};
D′={11 14 7 12 1 14 8 5 13 5 9 15 11 10 3 15};
由以上仿真结果可以看出,这种简单的跳频序列生成方法,生成的跳频序列虽然不具有绝对的均匀分布特性,但是有着良好的遍历性,特别是直方图中部出现的相邻频点序号出现的大概率和小概率间隔交叉的特性,反而有利于降低跳频组网的邻频干扰。
为了使上述在WSN中各传输节点间的数据传输更为安全,在一个实施例中,如图12所示主节点可采用Logistic混沌加密方法对上述生成的可用频点数N、伪随机相位值Index进行加密;即,在跳频组网中采用Logistic混沌加密方法。混沌加密主要是利用由混沌***迭代产生的序列,作为加密变换的一个因子序列。混沌加密的理论依据是混沌的自相似性,使得局部选取的混沌密钥集在分布形态上都与整体相似。混沌是在确定性***中出现的,Logistic方程的倍周期分岔会导致混沌。Logistic方程为:
X(n+1)=u*X(n)*(1–X(n));
上述X(n)取值范围为[0,1],u的取值范围为[3.6,4.0]。
混沌加密方案设计:假设{Pn}是明文信息序列,{Kn}是密钥信息序列,由Logistic混沌方程迭代产生序列后,进行二值化处理后所得整数混沌序列,{Cn}是密文信息序列。
加密算法设计为:{Cn}={Pn}⊕{Kn};
解密算法设计为:{Pn}={Cn}⊕{Kn};
基于Logistic混沌映射的加密原理图如图17所示,解密过程是加密的逆过程。初始值Xo和U是Logistic方程的参数,同时是加密***的密钥参数K={Xo,u}。因为混沌***对初始条件的敏感依赖性,对于仅有微小差别的初始值,混沌***在迭代了一定次数后便会产生截然不同的混沌序列。
为了使相近初始值的混沌序列互相间更加不相关,在进行实验仿真的时候可对混沌序列经过1000次以上迭代后取值,可以有效地放大误差,使得对初始条件的攻击无效,使加密效果更好,安全性更高。
由于加密值为数字量,所以必须使用一种方法将这个由实数构成的跳频序列{Xn}映射成由整数构成的伪随机序列,来充当加密密钥。本例中选用的方法是,在迭代1000次后连续取迭代后的序列8个一组,判断它们的大小,若是大于0.4则数字化为1,否则为0。
根据本发明的另一方面,还提供了无线传感器网络中的同步跳频***,如图13所示。该***包括:主节点处理单元201、从节点处理单元202及跳频单元203。
主节点处理单元201可包括:用于在无线传感器网络的小区中,预先生成长度为M的原始跳频序列集合C;根据可用频点数N、主节点标识信息及各从节点标识信息生成各从节点的伪随机相位值Index,并采用Logistic混沌加密方法对上述生成的可用频点数N、伪随机相位值Index进行加密,将该伪随机相位值Index、所述原始跳频序列集合C和所述可用频点数N发送至各从节点;
从节点处理单元202,用于各从节点采用Logistic混沌解密方法对上述生成的可用频点数N、伪随机相位值Index进行解密,根据所接收到的各自所述伪随机相位值Index、所述原始跳频序列集合C和所述可用频点数N生成跳频序列D';
跳频单元203,用于在所述主节点及从节点间,根据所述跳频序列D'参照可用频点集实现同步跳频传输。
其中,所述主节点处理单元还包括:
可用频点集获取单元2011,主节点对所述无线传感器网络中的各频点进行功率谱分布扫描,获取可用频点集,根据所述可用频点集获取可用频点数N。
伪随机相位值Index生成单元2012,主节点根据可用频点数N、主节点标识信息ID主、各从节点标识信息ID从及所述小区的节点参数K通过以下公式生成各从节点的伪随机相位值Index,Index=(K*ID主+ID从)mod N。
Logistic混沌加密单元2013,主节点根据采用Logistic混沌加密方法对发送的可用频点数N、伪随机相位值Index进行加密。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。