1. 引言
电力无线传感网络各层网络协议的实现都会显著影响整个网络的能量消耗、端到端延时以及系统效率,时间同步是无线传感网络一项关键的技术,传感器网络中典型的服务功能节点定位、数据融合、休眠和时隙调度都以时间同步技术作为基础 [1]。因此为使电力传感网络中的各个节点能够长期稳定运行,设计功耗低且满足精度要求的同步算法至关重要 [2]。
影响网络内各个节点本地时钟不一致的因素主要有两个,一个是时钟相偏,另一个是时钟频偏。由于电力系统设备常常布设在环境较为恶劣的室外环境中,导致监测数据的无线传感器节点受工作环境各项参数(温度、湿度、电压等)不稳定变化,晶体振荡器构造初始偏差及后续老化等多种因素的影响,节点晶振的实际震荡频率与其标称频率逐渐发生偏移,这种频率的偏移被称为时间频偏(timeskew)。经过一段时间后频率偏移导致网络内各个节点的本地时间也逐渐产生偏差,这种偏差被称为时间相偏(timeoffset) [3]。时间相偏产生的根本原因来自频率偏移长时间的积累,而频率偏移产生的最主要原因来自外部温度的变化,尤其是部署在野外的电力无线传感网络,两个待同步节点可能会处于完全不同的环境温度下,此时及时补偿频率偏移是非常必要的。文献 [4] [5] [6] [7] 都是利用线性回归、最大似然估计等数学、统计学方法对频偏进行估计校正,但此类方法不可避免存在估计误差,没有考虑到影响频率偏移的本质原因;文献 [1] [3] [8] [9] 从不同角度阐述并验证了温度变化对于晶振具有较大影响,是导致传感器节点自身频率偏移、网络内节点时间不同步的重要原因。
因此,本文结合供能受限下的电力无线网络的具体实际应用环境,首先运用文献 [10] 中的TPSN (Timing-Sync Protocol for Sensor Network)协议内双向时间戳交换思想对网络内的节点进行时偏校正保证校正精度;与此同时,增加电力无线通信低功耗网络设计。双向时间戳交换算法虽具有良好的校正精度,但节点在同步过程中相互交换数据包会消耗大量能量 [9],因此在两个传感器节点进行时间戳交换时利用温度–频率关系公式对频率偏移及时修正,有效增加同步算法执行间隔,以减少频繁交换时间戳产生的通信能耗。结合具体工程实际实验表明,此方法在精确校正时间偏移的同时可有效降低传感网络各节点单纯依靠双向时间戳频繁通信的功耗损失。
2. 建立层次的拓扑结构
一个平衡的拓扑结构可以有效减少数据碰撞次数并延长网络生存周期。本文采用的是基于层次结构的网络拓扑,在网络部署的初期建立层次结构,层次建立过程如下方图1所示,GN节点表示无线传感网络中的网关节点;A-G节点表示网络中普通的传感器节点;N节点表示新加入的传感器节点。首先是网关节点被赋值为层级0,广播“层级建立”数据包,接收到数据包的传感器节点进行转发,逐级完成网络层级结构的建立。当有新的传感器节点加入网络时,通过侦听传输的数据包,即可获得网络的全局时间和自己的层级信息,不需要额外进行初始化,可以随意增加传感节点的数量,进而有效扩大网络规模。如图1所示,从(a)转变为(b)的过程,即为N节点加入进原有网络的过程。

Figure 1. Hierarchical topology of the network
图1. 网络的层次拓扑结构
3. 时间同步过程
本文所设计的无线传感网络中有两种节点,分别是网关节点(参考节点)和普通节点。参考节点本地时钟作为基准时钟,采用有源供电的方式,无线传感网络内的节点都参照参考节点的时间修正自身本地时钟。时间同步过程主要分为两个过程:1) 参考节点与普通节点、普通节点之间使用双向时间戳交换的同步算法校正时间相偏;2) 双向时间戳交换的同时结合温度–频偏关系公式进行频偏补偿。
3.1. 双向成对同步算法
首先使用双向成对同步算法校正时间相偏,以参考节点与普通节点的同步过程为例,如图2所示。
其中,Tx端相当于被同步节点,Rx端相当于待同步节点。Tx端在本地时刻
向Rx发送同步报文,Rx在本地时间
收到报文后记录该时刻并在
时刻向Tx发送一个响应数据包,此数据包中同时还包含节点当下测得的温度数据;Tx在本地时刻
收到响应数据包,利用公式(1)对数据包中数据进行计算,算出传播延时(
)、时间相偏(
);在
时刻再次向Rx发送本轮的同步校正报文,包含传播延时、时间相偏、频率比等数据,Rx在
时刻收到该报文,根据公式(2)计算出校正时间相偏的时间RT3。
(1)
(2)
3.2. 温度–频偏公式补偿时间频偏
电力无线传感网络中每个传感器节点周围温度的不断变化是其振荡器频率发生偏移的主要原因。网络中每个传感器节点维护自身的本地时钟,节点利用晶体振荡器驱动微处理器中的计数器,由晶体震荡频率进行计数。本文算法实现及结果验证全部基于Nordic Semiconductor nRF52840多协议片上系统,根据NRF52840芯片手册中提供的温度–频偏关系公式进行频率校正,如式(3)所示:
(3)
其中,
表示传感器节点当前温度,
表示标称频率。结合双向时间戳交换同步算法,在双向时间戳交换过程中传递补偿时间频偏的必要参数,在下一次同步前校正待同步节点的本地时钟频率偏移,校正过程如图3所示。

Figure 3. Diagram of correcting the local time
图3. 校正本地时间
图中(a)过程表示两个节点初次同步时,(b)过程表示间隔一段时间后两节点再次同步时。Tx在本地时刻
收到数据包,依据公式(3)在本地计算出两同步节点当前频率的比值
,如式(4)所示;随后在
时刻将
打包进数据帧中发给Rx,Rx在
时刻收到该报文,依据式(2)及式(4)可以计算出待同步节点下次时戳交换时校正后的本地时间RT、RT2的值,计算公式如式(5)所示。
(4)
其中,
表示被同步节点的频偏值、
表示待同步节点当前的频偏值、
表示标称频率。
(5)
式(5)中,PRT表示待同步节点在本地寄存器存储的时刻
时校正完时间相偏及时间频偏后的时间,RT表示待同步节点在本地寄存器存储的时刻
时校正完成相偏和频偏后的时间。
两个传感器节点初次进行双向时间戳交换同步算法时,默认初始状态下两个节点不存在频率偏移,仅需要修正时间相偏,即图3中所示的(a)过程。被同步节点和待同步节点都使用的是各自的本地寄存器中存储的计数值表示当下的本地时间;经过一段设定的间隔时间后,两个节点再次同步,待同步节点改用公式(5)计算得到的RT值与被同步节点进行时间戳交换同步,即图3中所示的(b)过程。由于自定义的修正时间变量RT无法实时更新,待同步节点在时戳交换时也需要实时记录当下寄存器内存储的计数值来通过公式(5)计算新一轮同步开始时Rx端的时间RT。例如,要计算图3中所示的(b)过程中RT的值,带入公式(5)可以得到:
,其中
、
就是即时记录的本地的寄存器值。
4. 实验分析与结果
4.1. 实验环境
不同于以往的论文采用软件仿真的验证方法,本文的实验验证基于真实的软硬件环境及应用场景,面向工程应用,具备较强的实用价值。实验选择采用Nordic公司的nRF52840无线射频芯片作为测试算法的硬件开发环境,此芯片是一款超低功耗、高度灵活的单芯片解决方案,其核心是ARM Cortex-m4处理器,允许更快更高效地计算复杂功能的DSP及需要浮点的数学公式;同时配合Keil C51作为软件开发环境完成节点通信、同步算法设计等软件程序的编写。
4.2. 对比实验
实验分析过程从时钟校正精度及传播功耗两个维度对设计算法进行考量,设计TPSN算法与本文算法进行对比实验验证本文算法的有效性。
4.2.1. 校正精度分析
依次设定不同的同步时间间隔(上一次同步过程完成与下一次同步过程开始触发之间的时间间隔,以下简称同步时间间隔),比较本文算法与TPSN算法的时钟误差。每次利用上一次同步时交换的校正参数计算下一次同步前的待同步节点的本地时间戳,此时间戳与被同步节点加上时间延迟和相位偏移后的差值,即为所要计算的时钟误差。当以某个确定同步间隔对两节点进行定时同步时,取20组时钟误差值取平均值作为此同步间隔下产生的时钟误差值。实验结果如图4所示,将双向时间戳交换算法同温度补偿过程结合确实一定程度降低了时钟误差,并且随着同步间隔的增加,这个优势更加显著。

Figure 4. Clock error comparison between TPSN and algorithm in this paper chart
图4. TPSN与本文算法时钟误差对比图
除此之外,实验发现两个待同步节点进行初次同步后,之后继续使用初次同步计算出的校正参数对两个待同步节点进行后续同步操作,并设定固定的时间间隔打印两节点同步后的时钟误差到串口观察,以140 s作为同步间隔进行实验,测试结果如图5所示,其中纵坐标表示寄存器计数值,30.517微秒计数一次;横坐标表示时间。未经过温度–频率公式补偿过的TPSN算法时钟误差更大,且变化波动较大不稳定;而本文算法由于及时校正频偏使得整体时钟误差下降且变化趋于平稳。而这说明新算法的设计在进行一次同步校正后的时钟误差明显低于TPSN算法的,校正精度明显提升。由此我们也可以将此情景假设为网络内某两个节点受某些因素影响无法再次交换同步信息、更新修正参数时,本文的同步算法修正效果能够维持更长的时间且有更好的表现。此结论对后续节点的能耗分析也有重要的理论支撑作用。

Figure 5. Clock error change plot of TPSN and algorithm in this paper after a correction
图5. 一次同步校正后TPSN与本文算法时钟误差变化图
4.2.2. 节点通信能耗分析
软件仿真环境中往往需要借助其他参考量(例如消息包数量等)对传感器节点通信消耗值做近似的替代评估,而本文的研究基于真实的软硬件环境及应用场景,可以根据通信过程中的测量值计算出同步过程产生的功耗值,更加直观的看到实际通信过程中节点的能量消耗。
依次设定不同同步时间间隔,比较本文算法与TPSN算法的一次同步过程完成后消耗的功耗值。依据下式(7)可计算出两节点一次同步结束后发送端与接收端各自消耗的实际能量。
(7)
其中,
是实际的能量消耗,
表示电压恒为3 V,
表示传输同步数据帧消耗的时间,
表示节点传输数据帧消耗的总电流。
总电流
包含发送过程消耗电流(
)和接收过程消耗电流(
),实际的电流消耗值需要参考nRF52840器件手册中的无线电电流消耗(发射机)及无线电电流消耗(接收机)表格。本文参照表格选择
,
。通信速率是1 Mbps。明确同步过程所要传输的数据帧长,并与通信速率相乘即可得到传输同步数据帧消耗的总时间t,最后带入公式(7)计算出实际的能量消耗E。
本文使用的同步数据包帧格式如下图6所示,无限电依据的顺序从左到右发送数据包中的不同字段,PREAMBLE字段将以最不重要的位先在广播中发送,占用一个字节;ADDRESS是接入地址,由BASE和PREFIX两部分组成,总共占据四个字节;CRC是硬件自动计算并加入的,可以配置其有无、位数、多项式。自定义中的内容就是两个传感器节点同步阶段实际要传输的数据,共占据39个字节。
网络协议必须做到在存在个别节点故障的情况下实现容错,同时最小化能源消耗,而通信协议对电力无线传感网络的整体能量消耗有重大影响,不同的无线电特性假设,包括发送和接收模式的能量消耗 [11]。由于本文设计的发送与接收节点通信过程无线电电流消耗值不同,导致发送的功耗大于接收的功耗。
与此同时,频偏修正过程需要在时间戳交换过程中传递温度(RCtemp)和频率比(fratio)的信息,致使两个待同步节点使用本文算法进行同步时交换的数据帧长度要比使用TPSN算法的数据帧长度略长,因此带入公式(7)计算所得的传播功耗相较于单纯使用TPSN算法也略微升高。由表1可以直观看出两种算法在一次同步完成后接收节点和发送节点各自消耗的传播总功耗E (单位:μJ)。

Table 1. Propagation power consumption after a single synchronization
表1. 一次同步完成传播功耗
但是由图4可以看出,与TPSN算法相比,新算法在相同同步时间间隔下利用温度补偿过程校正过频偏之后时钟误差更小。且由图5所反映出的结论可知一直利用初始校正参数执行同步,间隔一段时间后,在下一次同步过程开始前的时钟误差也是明显小于TPSN算法的。
由此可知,虽然两个待同步节点一次同步完成传播功耗高于TPSN算法,但由于本文算法频偏补偿过程对频偏的及时修正,算法可在保证给定精度的同时有效减少双向时间戳频繁交换进行同步的次数,同步次数的减少又进一步降低了无线传感网络节点同步过程产生的通信功耗。因此将同步范围延伸至整个电力无线传感网络中所有节点全部同步完成,同时将时间延长至所有节点完成数十次同步后,使用本文算法进行同步所产生的通信功耗会远远低于TPSN算法的通信功耗。
5. 结语
本文算法将温度–频率公式结合到两个节点双向时间戳交换同步过程中,对同步节点的频偏进行及时修正,提升时间同步精度的同时大大降低全网络频繁进行时间戳交换产生的功耗,为验证算法有效性设计对比试验,并对获取到的实验数据进行了进一步分析推理。下一步的研究工作将继续对算法进行进一步优化并针对电力无线通信网络设计更为完整的低功耗模型。
参考文献