发明名称 一种基于电压感知的无线传感器网络时间同步方法
摘要 本发明公开了一种基于电压感知的无线传感器网络时间同步方法,该方法包括的步骤有:电压-频偏关系表格建立、本地时间更新、时钟再同步。本算法在频偏估计时考虑到了节点当前工作电压变化对节点频偏造成的影响,提高了频偏估计的精度。同时,由于该算法在时间同步的过程中主要依赖本地信息,大大减少了信息传输次数,从而很大程度上降低了能耗,并且减少了由信息逐层传输带来的误差累积。最后,由于该算法对信息传输的依赖较低,从而解决了野外环境下由于恶劣天气以及节点位置动态变化等造成的通信不稳定的问题。
申请公布号 CN103945522A 申请公布日期 2014.07.23
申请号 CN201410140300.X 申请日期 2014.04.09
申请人 西北大学 发明人 金梦;房鼎益;陈晓江;刘晨;聂卫科;王薇;邢天璋;尹小燕
分类号 H04W56/00(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W56/00(2009.01)I
代理机构 西安恒泰知识产权代理事务所 61216 代理人 李婷
主权项 一种基于电压感知的无线传感器网络时间同步方法,其特征在于,包括以下步骤:步骤一,建立电压‑频偏关系表在无线传感器节点实际部署前,对每个传感器节点进行如下操作:步骤S10,将一个无线传感器节点A<sub>i</sub>与计算机连接,并在该传感器节点A<sub>i</sub>旁边放置一个可与计算机通信的温度传感器节点B;节点A<sub>i</sub>的供电电压初始值为U<sub>0</sub>,节点B的供电电压VCC满足U<sub>0</sub><VCC<U;其中i是需要部署的无线传感器的编号,1≤i≤N,N是需要部署的无线传感器的个数,U<sub>0</sub>和U为常数;步骤S11,设定节点A<sub>i</sub>的数据包发送周期为T,设定节点B的温度采样周期为τ,且节点B采样到的温度数据即时发送给计算机;步骤S12,节点A<sub>i</sub>和节点B同时向计算机发送数据:记节点A<sub>i</sub>发送的一组数据包P<sub>i,j</sub>到达计算机的时间序列为ARR<sub>i,j</sub>,在节点A<sub>i</sub>发送该组数据包的时间段内,节点B采集到的温度序列为TMP<sub>i,k</sub>,这组温度数据到达计算机的时间序列为ARRT<sub>i,k</sub>;其中1≤j≤n<sub>i</sub>,1≤k≤nt<sub>i</sub>,n<sub>i</sub>为P<sub>i,j</sub>中数据包的个数,nt<sub>i</sub>为TMP<sub>i,k</sub>中温度数据的总个数;步骤S13,每间隔至少2小时,将节点A<sub>i</sub>的供电电压值V<sub>m</sub>升高<img file="FDA0000488658040000011.GIF" wi="199" he="129" />M常数,1≤m≤M;当节点A<sub>i</sub>的供电电压达到U时,结束节点A<sub>i</sub>和节点B向计算机发送数据过程;步骤S14,按照公式1计算节点A<sub>i</sub>的偏频序列SKEW<sub>i,j</sub>:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>SKEW</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msub><mi>ARR</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>-</mo><msub><mi>ARR</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>-</mo><mi>T</mi></mrow><mi>T</mi></mfrac></mrow>]]></math><img file="FDA0000488658040000012.GIF" wi="713" he="136" /></maths>   (公式1)步骤S15,对偏频序列进行滤躁:在温度序列TMP<sub>i,k</sub>中,筛选出温度异常的时间段,并将该时间段对应的偏频序列值删除;步骤S16,将滤躁后的偏频序列SKEW<sub>i,j</sub>根据节点A<sub>i</sub>的供电电压值进行分段,并对每一个电压值V<sub>m</sub>对应的偏频序列求平均值,使节点A<sub>i</sub>的每一个电压值V<sub>m</sub>对应一个偏频平均值SKEW<sub>m</sub>;步骤S17,将V<sub>m</sub>和SKEW<sub>m</sub>的对应关系建立电压‑偏频关系表并保存在节点A<sub>i</sub>中;步骤二,本地时间更新将存储有电压‑偏频关系表的传感器节点A<sub>i</sub>进行实际部署后,按照下面步骤进行本地时间的更新:步骤S20,节点A<sub>i</sub>获取自身当前电压值V,并在自身的电压‑偏频关系表中查找与当前电压值V相同的电压值,若查找成功,执行步骤S21,否则执行步骤S22;步骤S21,将电压‑偏频关系表中与当前电压值V对应的偏频值SKEW<sub>m</sub>设定为节点A<sub>i</sub>当前偏频值SKEW,跳至步骤S23;步骤S22,节点A<sub>i</sub>在电压‑偏频关系表中查找与当前电压值V最接近的两个电压值V<sub>H</sub>和V<sub>L</sub>,以及V<sub>H</sub>和V<sub>L</sub>对应的偏频值SKEW<sub>H</sub>和SKEW<sub>L</sub>,其中V<sub>L</sub><V<V<sub>H</sub>;则节点当前的偏频值SKEW被设定为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>SKEW</mi><mo>=</mo><mfrac><mrow><mi>V</mi><mo>-</mo><msub><mi>V</mi><mi>L</mi></msub></mrow><mrow><msub><mi>V</mi><mi>H</mi></msub><mo>-</mo><msub><mi>V</mi><mi>L</mi></msub></mrow></mfrac><mrow><mo>(</mo><msub><mi>SKEW</mi><mi>H</mi></msub><mo>-</mo><msub><mi>SKEW</mi><mi>L</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>SKEW</mi><mi>L</mi></msub></mrow>]]></math><img file="FDA0000488658040000021.GIF" wi="984" he="145" /></maths>   (公式2)步骤S23,在经过Δt时间后,节点A<sub>i</sub>根据以下公式更新自身当前的相偏:OFFSET<sub>0</sub>=SKEW·Δt+OFFSET   (公式3)公式3中,OFFSET<sub>0</sub>为节点A<sub>i</sub>更新后的相偏,100s<Δt<10000s;步骤S24,若节点A<sub>i</sub>更新后的相偏OFFSET<sub>0</sub>满足:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>OFFSET</mi><mn>0</mn></msub><mo>&GreaterEqual;</mo><mfrac><mi>&epsiv;</mi><mn>2</mn></mfrac></mrow>]]></math><img file="FDA0000488658040000022.GIF" wi="303" he="116" /></maths>   (公式4)则节点A<sub>i</sub>对自身本地时间进行更新,更新后的本地时间CLOCK<sub>0</sub>为:CLOCK<sub>0</sub>=CLOCK+OFFSET<sub>0</sub>   (公式5)在公式4和公式5中,ε为本地时钟周期,CLOCK为更新前的本地时间;更新完毕后,节点A<sub>i</sub>将OFFSET<sub>0</sub>清零;步骤三,时钟再同步节点A<sub>i</sub>对自身本地时间更新后,按照下面的步骤进行时钟再同步:步骤S30,节点A<sub>i</sub>查看计时器,若无需启动再同步过程,则转至步骤二,否则执行步骤S31;步骤S31,节点A<sub>i</sub>启动再同步过程,节点A<sub>i</sub>向参考节点R发送同步请求,参考节点R收到请求后,向节点A<sub>i</sub>连续发送两个时间戳T<sub>a</sub>和T<sub>b</sub>,T<sub>a</sub>和T<sub>b</sub>分别代表两个时间戳被发出时节点R的本地时间;节点A<sub>i</sub>在收到时间戳后立即记录自身本地时间T<sub>a</sub>′和T<sub>b</sub>′,则节点A<sub>i</sub>当前频偏值SKEW被修正为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>SKEW</mi><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msub><mi>T</mi><mi>a</mi></msub><mo>-</mo><msub><mi>T</mi><mi>b</mi></msub><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msup><msub><mi>T</mi><mi>a</mi></msub><mo>&prime;</mo></msup><mo>-</mo><msup><msub><mi>T</mi><mi>b</mi></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></mrow><mrow><mo>(</mo><msub><mi>T</mi><mi>a</mi></msub><mo>-</mo><msub><mi>t</mi><mi>b</mi></msub><mo>)</mo></mrow></mfrac></mrow>]]></math><img file="FDA0000488658040000031.GIF" wi="634" he="156" /></maths>   (公式6)步骤S32,节点A<sub>i</sub>按照下面公式确定再同步过程的时间间隔Δd:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>&Delta;d</mi><mo>=</mo><mi>d</mi><mo>&CenterDot;</mo><mfrac><mi>&mu;</mi><mrow><mo>|</mo><mi>drift</mi><mo>|</mo></mrow></mfrac></mrow>]]></math><img file="FDA0000488658040000032.GIF" wi="370" he="136" /></maths>   (公式7)公式7中,d为上次启动再同步周期与当前时间之间的间隔,μ为精度控制参数,drift表示时间的漂移,即:drift=(T<sub>a</sub>‑T<sub>b</sub>)‑(T<sub>a</sub>′‑T<sub>b</sub>′)   (公式8)节点A<sub>i</sub>对计时器设定时钟再同步后,返回步骤S23。
地址 710069 陕西省西安市太白北路229号