ZigBee无线网络时间同步算法的研究
2017-03-10张科
张科
摘 要:近年来ZigBee工业无线网成为人们关注的热点,由于省去了繁琐的线路布置,可广泛应用于石油、化工、环境检测等不易布线的工业领域。在ZigBee无线网络数据传输中要求各部分网络时间同步,网络时间同步技术应经成为ZigBee网络的关键性技术。本文借鉴ZigBee网络时间同步的一些算法,提出了网络分层和点与点时间同步的时间同步方式。并通过实验对该方案进行了验证。
关键词:ZigBee无线网络;ZigBee协议;时间同步
中图分类号:TN929 文献标识码:A 文章编号:1671-2064(2017)01-0035-01
1 概述
目前行業内外相关技术人员对ZigBee网络时间同步算法已经有了一定的研究,提出了多种网络时间同步算法。例如借助无线网络广播特点的RBS算法,其节点将时间参考信标发送到临近节点,临近节点接收并提取时间信息后,参考接收到的时间信息对本地时间进行调整,从而实现和临近节点的时间同步。该方法避免了数据发送和访问的时间影响,使系统中临近节点的时间同步精度有效的提高。同样基于层次结构的TPSN算法,通过周期性的执行时间同步操作,可进行全网节点的时间同步。另外还有需进行时间同步请求的LTS算法,该算法在节点需要进行时间同步时,就发送请求指令到相邻节点,若相邻节点位于同步状态,则该节点把同步时间信息发送回发出同步请求的节点,若该节点未处于同步状态,则发送同步信息到更加临近时钟的节点,直至时间同步完成,该方式可以节省网络资源,但其时间同步时间和网络深度有关。[1]每种算法都有各自的优缺点,本文介绍了基于分层的HRTS算法的网络时间同步算法。
2 基于HRTS算法的网络时间同步算法的构建
2.1 HRTS算法
HRTS算法是一种“发送-接受”的时间同步算法。该方法借助发送方和接收方间的三次数据通讯中的时间标记实现二者的时间同步。在首次数据通信中,发送方发送时间同步请求,并记录此次通讯的时刻。发送节点广播范围内的所有节点都会记录接受时间,但在时间同步请求的发送后只有应答节点进行回复应答。应答节点向发送方的应答为第二次通讯,通讯数据中包括应答节点的命令接收时间以及应答时间,发送方同时记录接收回复的时间。发送方根据两次通讯的时间计算时间补偿值,并最终把经过校正的同步时间通过第三次通讯发送给临近节点。从而最终实现节点的时间同步。[2]
通讯的发送和接收延时、数据传输延时、访问延时以及命令处理延时是影响时间同步精度的主要因素。在实际应用中,可以通过在MAC层进行时间标记的方式减小通信发送和接收延时。由于电磁波的传播速度很快,因此数据传输的时间可以忽略不计。通讯质量影响访问延时,具有极大的不确定性。因此,同步算法的重点在于发送和接收延时的处理。
2.2 分层时间同步算法分析
当系统中节点数目很多,超出广播范围时,上文的算法就难以满足时间同步的要求,必须将同步有效的扩散到整个网络,实现全网的时间同步。因此将网络分层的思想引入,形成分层的时间同步方案。首先将通讯网络中的节点分层,并标记层次号,层次号可以看出节点距离时间参考节点的距离,层次好越低表明距离参考节点越近。之后在每一层可以采用HRTS算法进行时间同步,最终实现全网时间同步。[3]具体方法如下:
(1)在系统初始化时,将协调器的层次赋值为0,其余节点层次号均设为系统最大允许层次;
(2)网络建立之后,每当有节点加入,协调器就发送一个分层命令,并在通讯数据中标明其层次号;
(3)节点受到分层命令后,获取层次号。若该节点的层次号为最大层次号,则将接收的层次号加一设为自身层次号,并回复上级的分层命令,同时说明自身的层次号。源节点收到分层回复数据后,将收到的节点层次号和地址保存。若该节点的层次号为收到的层次号,则说明该节点已经做好了分层。若该点层次号比收到的层次号大一,则说明该层为上层信息发送源,则应将该信息和地址进行保存。若收到其他层信号则可直接忽略;
(4)若节点由于某些原因断开了通讯,则可将其层次号重新标记为最大层次号;
(5)在每层节点中,利用上文所述的HRTS算法进行时间同步。
2.3 分层同步算法的设计
(1)数据构成。时间同步通常有定时同步和命令同步两种。只要网络中的节点有子设备,定期同步就会启动。当有新节点接入时,上层设备就会对节点进行命令同步。每一个设备将自身时间标记以一个32位的有符号数的方式存储,并在初始化阶段赋值为0。另外,协调器还需设定周期同步时间,当时间间隔到达时执行同步。时间同步通讯数据中木点节点地址和源节点地址为16位地址,广播数据由1个字节的类型标志和5个字节的数据组成。
(2)同步算法设计。当有新设备加入时,协调器进行命令同步,执行单层定向广播,形成MAC层帧结构,同步源将本地时间发送。子设备收到同步命令后,利用分层时间同步同步自身的时间。
在系统正常运行过程中,由协调器执行定期同步,形成MAC层帧结构,子设备收到命令后,进行适当的修正后,更新自身时间,并对下层子设备执行时间同步操作。
2.4 系统时间同步效果的验证
我们利用相关的处理器芯片构建了简单的无线传感器网络测试平台。在协调器将网络搭建完成以后,进行了分层时间同步操作。通过对子设备和源节点设备同步时间的对比对同步时间精度进行了验证,同步时间误差在10ms以内。结果表明该方式完全满足网络时间同步的精度要求。
3 结语
随着无线通讯技术的不断发展,无线传感器的应用将越来越广泛,无线时间同步精度要求越来越重要。本文论述的分层时间同步算法简单易行,负荷ZigBee通讯协议的要求,尤其适合网络节点较多的无线网络,同时,整个系统具有较好的扩展性能。节点出现断网,在回复通讯后也能较好的恢复时间同步。很好的满足了实际生产的需求。
参考文献:
[1]谢洁锐,胡月明,刘才兴,等.无线传感器网络的时间同步技术[J].计算机工程与设计,2007,28(1):76-77,86.
[2]屠乐奇.高精度计算机网络时钟同步技术的研究[D].北京化工大学,2010.
[3]周贤伟,韦炜,覃伯平.无线传感器网络的时间同步算法研究[J].传感技术学报,2006,19(1):20-25,29.