因此,设计一种时间同步算法,是解决物联网传输层时间同步问题的重要手段。在设计这种时间同步算法时,需要考虑多种问题,比如成本问题、自组织性、抗干扰性、及时性等。此外,还要结合传感网络的特点,系统地进行相关算法的设计。
(1)通用时间同步设计
时间同步可以从两个方面得以实现,一个是硬件方面,另一个是软件方面。要实现时间同步,就必须了解时间同步的组成部件,也就是重新同步事件检测部件、远程时钟估计以及时钟校准等部件。
通过重新同步事件检测部件来实现时间同步时,既可以借助初始化同步时钟数,又可以借助初始化同步消息。一般来说,一个感知节点在一些情况下会重新调整它们的时钟时间,使不一致的时间重新同步,因此就会用到重新同步事件检测。利用第一种方式进行时间同步,需要将初始化的同步时钟数作为调整时间的依据,在进行时间同步时,需要一个固定的速率kR,其中,k是一个实数,且大于1,而R则表示时间周期。利用这个公式,可以有效避免在两轮同步过程中出现时间重叠。第二种方式要求利用初始化消息进行时间同步,具体过程是,使一个较为特殊的网络节点向其他所有网络节点发送一个初始化消息,这样一来,其他所有节点都会根据这个消息进行时间同步校准。如果发送的消息延时过长,时间同步的精度就会越低,反之越高。
远程时钟估计部件可以通过调节一个远程节点的本地时钟来实现节点的时间同步,这里又可采用两种方式,第一种是将远程节点的本地时钟时间通过网络消息向其他节点传输,第二种是节点读取其他远程节点的时间。
时钟校准部件同步时间的原理是:当一个重新同步事件发生后,时钟校准部件就会根据这一事件估计出远程节点的时钟信息,然后进行本地时钟时间调整,最终实现时间同步。
(2)传感器网络时间同步设计
传统的时间同步机制有两种,一种是网络时间协议,另一种是GPS。但是传感器网络的时间同步设计并没有采用这两种相对成熟的机制,因为这两种同步时间机制的算法相对复杂,组建成本比较高。
在设计传感器网络时间方案时,不仅要考虑时间同步的精确性,还要考虑算法的复杂性,如果算法太过复杂,就会产生过多的电能损耗,这对于传感网络是一个致命的打击。因此,设计传感网络必须同时从精确性和复杂度两方面来考虑。简单来说就是,要在精确性和复杂度之间找到一个平衡点,以便既能保证时间同步的精度,又能降低时间算法的复杂度,从而确保传感网络的高效、持续工作。具体来说,需要从以下几个方面考虑:
①低能耗。传感器网络节点的供电电源无法经常更换,所以,为了节约用电,确保传感器网络能够长时间持续工作,时间同步算法的复杂度要低,这样可以降低能耗。
②精确度。不同的应用具有不同的时间同步精度,对时间同步精度要求不高的应用,只要确保它们正常工作便可,不需要过分要求精度;对于时间同步精度要求在毫秒级以上的应用,要着重进行优化设计,确保精度可行。
③可靠性。传感器网络属于自动化系统网络,很少需要人工干涉,这就要求在恶劣的自然环境下仍能继续工作,而相关网络节点的抗干扰能力足够强,才能保持时间协议的有效性。
④可扩充性。传感器网络中的节点会根据应用的需要进行增添,所以,设计出的时间同步协议要随时能够满足增添传感器节点的需要,同时还要满足高容量、高密度的需要。
⑤及时性。一些应用的时间同步需要在紧急情况下实现,这就要求时间同步协议具有高效执行性,也可以称为“工作及时性”。
⑥成本廉价性。一般来说,传感器节点具有结构简单、尺寸小、成本低廉的特点。而类似GPS等设备虽然能实现时间同步,但一方面其体积较大,无法安装在较小的传感器节点上,另一方面,这类设备的成本较高,无法大规范普及,因此,设计传感器网络时间同步算法要遵循成本低、设备尺寸小的原则。
(3)成对节点间的时间同步设计
如果说全网的时间同步是一个整体,那么成对节点间的时间同步就是组成这个整体的单元。例如,节点A和节点B要实现时间同步,只需要将两者之间的时间数据相互交换便能实现。具体过程如下:
首先节点A要在某一时间点T1向节点B发送一个同步脉冲分组,之后,节点B会接收这个脉冲中分组,并记录分组到达时的对应时间T2,而从节点A到节点B所用的传输时间用D表示,则T2=T1+D。但由于节点A和节点B的时钟可能出现时间偏差d,所以最终的T2=T1+D+d。其中,D未知,影响其时间长短的因素一般有两个,一个是节点间的传播距离,另一个是无线网络技术的传播特性。
然后,节点B也会反馈发射一个分组给节点A,假设节点B发送分组时的时间是T3,节点A接收分组的时间是T4,则T4=T3+D-d。
如图所示:
成对同步的分组交换
根据对应关系,可以计算出偏差d和传输时间D,公式为:
d=((T2-T1)-(T4-T3))/2
D=((T2-T1)+(T4-T3))/2
将计算出的时间差d传输以分组的形式传输给节点B,就可以实现时间同步。但是上述内容的成立必须基于节点A和节点B之间的传输时间一致,也就是必须保证D1=D2。然而实际上它们并不相同,仍然会存在同步误差,如果应用对时间同步精度的要求不高,这样的计算就省时省力,且能祈祷实际作用,否则,还需进一步进行计算。
(4)成对同步误差分析
传输时间由发送时间、传播时间、接收时间以及访问时间构成。
①发送时间。发送时间由两部分组成,一是处理时间,二是缓冲时间,总体来说就是装配消息的时间。发送时间与传输时间不存在交叉和干扰,这是因为两个时间是分开进行的,发送时间完成后,系统才会为分组加上时间戳。
②传播时间。传播时间受节点间距离的影响,是一个节点通过物理介质向另一个节点传播分组的时间。理论上,传播时间在两个节点间的双向传输时间是一样的。
③接收时间。接收时间符合高斯分布,是节点接收消息后的时间与节点告知计算机的处理时间之和。它的方差为8,均值为0,一般8等于11μS。
④访问时间。节点将分组传到MAC层,访问信道需要一定的等待时间,这个时间与载波监听的时间之和便是访问时间。其节点发送的分组会经过同一个信道,并在同一个MAC传输。因此,访问时间也符合高斯分布,其中的均值也为0。
通过以上分析可以看出,只有接收时间以及访问时间才是误差的来源。经实验测算,它们的方差最大相差4倍,两者同步的概率是99%,精确度公式为:
X=2.3×4×8,
8=11μs,
则X=0.1ms。