嵌入式开发 > 详情

一种即时同步与时钟自校准结合的全网同步技术

发布时间:2020-07-10 发布时间:
|
引言
目前,无线传感器网络时间同步技术的研究重点已经从单跳网络发展到多跳网络。现有的多跳时间同步算法充分体现了同步功耗和同步精度以及同步周期间的折衷,本文着重解决的问题就是在不显著增加同步功耗的前提下扩展同步周期,本文的硬件平台为Silicon Labs公司的Si1000无线MCU芯片。

1 网络拓扑结构
无线传感器网络的拓扑结构主要有星型网、树型网和网状网,本文以应用较多的星型网和树型网结合的多级网络结构为例进行同步过程的设计。
一个典型的网络结构如图1所示。网络中的节点可以分为根节点、树枝节点和树叶节点3种类型。其中,最上端的0-0为根节点,网络中间的如0-1、0-2、5-8等为树枝节点,网络末端的1-3、4-7等为树叶节点。每两个相连接的节点互称为父子节点,如0-1和1-4互为父子节点。其中0-1是1-4的父节点,1-4是0-1的子节点,而1-4是4-7的父节点,4-7是1-4的子节点。在对节点编址时,每一个节点都有两个地址信息,其中低位地址表示本节点在网络中的唯一的ID号,高位地址表示该节点的父节点在网络中的ID号。这种表示方式的优势在于,每个节点只跟自己的父节点和子节点通信,不与其他节点交互信息,即使收到其他节点的数据包,也会当作无效数据丢掉。这样,每个节点的程序相对简单,网络的层数可以不受限制,网络层数和网络内节点数的增加,不会导致每个节点的程序复杂度的增加。


一般情况下,在网络中,根节点为网关节点,树叶节点和树枝节点均为簇头,每个簇头在为其他簇头作数据转发的同时,均可以接收传感器节点的数据。簇头的数量由ID号的位数决定,如果用一个字节来表示ID号,则网络中簇头的最大数量为255个。
根据传感器节点与簇头节点的紧密程度,可以将传感器节点划分为若干个区域,每个区域设置一个簇头,簇头与采集节点之间采用星型网连接。

2 即时同步技术
无线传感器网络刚建立时,由于某些原因导致节点间的同步状态丢失时,需要进行时钟同步的“初始化”,采用即时同步的方式进行。
即时同步技术是星型网络结构中一种高效的同步技术,同步以网关节点为起点,并由近及远的同步树型网络结构中的各簇头节点,之后簇头节点再分别同步各自的传感器节点。
下面以簇头同步传感器节点为例说明同步过程,同步的时序如图2所示。


一般情况下,传感器节点在刚上电或复位之后,处于低功耗模式,实验时,以5 s为一个周期,即节点睡眠状态4 995 ms,接收状态5 ms,如果没有有效数据。则继续转入睡眠状态,如此循环下去。5 ms称为数据侦听窗口。由于节点的个体差异、晶振的漂移等因素的影响,经过一段时间后,各个节点的数据接收窗口的起始时间差距就比较大了。如果簇头要让所有的传感器节点都收到同步命令,必须连续发送5 s。这个同步命令包括了簇头的低位地址和一个不断累加的序列号,共3个字节。若以115.2 kbps的速率传输,发送一个同步命令需1.72 ms,连续不断地发送,从1开始,每发送一次,序列号加1。这样,序列号本身就携带着时间信息。在实际编程中,共发送2907次,约为5s。
簇头连续发送5 s同步序列后,转入低功耗模式,5 s结束时的时间点称为同步时间点,即图中的10 s点的位置。如图2所示,所有的传感器节点在数据接收窗口内都至少能收到一条完整的唤醒命令。以收到的第一条完整的同步命令为有效命令,根据序列号,节点能够判断自己在时间轴上所处的位置,经过计算后,得到自己距同步时间点的时长t。可以看到,经过5 s的持续同步后,所有传感器节点均可以同步到同步时间点。
传感器节点的同步流程图如图3所示。


网关节点同步簇头节点的时序与传感器节点类似,只是将通信速率降低到4 800 bps,相对应的簇头的侦听窗口为50 ms,睡眠4 950 ms,网关发送的同步命令字为本地ID+末端簇头ID+一个不断累加的序列号,共3个字节。以4 800 bps的波特率发送,每个同步命令需要22 ms,实际编程中,共发送227次,约为5 s。经过即时同步后,网络中的各个节点均被同步到网关节点的时钟上。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
定时器CTC模式的测试