关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 无线传感器网络时间同步协议的实现

无线传感器网络时间同步协议的实现

作者: 时间:2013-03-20 来源:网络 收藏

1.2 改进的协议
由于ZigBee无线传感器网络的传输速率小,带宽小等特点,便采用了降低PTP协议在网络中的开销来实现本系统的时间的精准。即减少握手次数,使PTP协议的偏移测量和延时测量在一次通信过程完成。这个时钟同步原理示意图如图3所示。

本文引用地址:https://www.eepw.com.cn/article/159475.htm

c.JPG


该协议也包括偏移测量和延迟测量:
(1)偏移测量:南于允许节点是即时加入和脱离的,故不能使用主节点周期性组播发送同步报文的方式,而采取子节点周期性地向主节点发送同步报文的方式,主节点收到此同步报文经过处理后将白己的时间信息(包括处理时间,如下式Tm1~Tm2)发送给相应的子节点,该子节点收到此时间信息后,就可以计算出与Master的时钟偏移量。Offset=Ts2-Tm2 (1)
(2)延时测量:从下式可以看出,同步报文发送之后,子节点并没有再发送延时请求报文,这是因为利用偏移测量过程中的时间信息就可以计算出子节点到主节点的传输延时。这里计算延时的方法与PTP协议不同,子节点记录同步报文的发送时间和应答报文的接收时间,计算出2个时间的间隔,如下式的Ts2~Ts1,然后减去主节点的包处理时间,如下式的Tm1~Tm2,把网络当成对称网络,再除以2就得出从时钟与主时钟的延迟时间。即
e.JPG
偏移和延时都已经计算出来,子节点再调整时间Tb,从而达到主从时钟的同步。调整时间的公式
Tb=Tb-Offset+Delay (3)

2 的实现
ZigBee适用于开放和互操作的设备,标准从物理层开始定义。但是目前一般物理层和MAC层采用IEEE 802.15.4标准,网络层、安全层和应用层由ZigBee联盟开发,ZigBee协议的构架如图4所示。

g.JPG


2.1 本地时钟设计
我们采用的硬件是意法半导体(ST)公司最新推出的一个完全集成的系统芯片(SoC)STM32W108。它集成了32位ARM Cortex—M3微处理器、符合IEEE 802.15.4标准的2.4 G的收发器、1 28 KB的flash、8 KB的RAM以及各种通用外设。
STM32W108的示意图如图5所示。

h.JPG


具体实现有以下几个步骤:
(1)通过TIM2_CR1,设置边缘对齐,向上计数模式,TIM2_ARR不使用缓冲;
(2)选择时钟clock(本课内部时钟Fpclk=12 MHz);
(3)没置预分频值TIM2_PSC,给TIM2_PSC赋值0,不分频;
(4)装载TIM2_ARR和TIM2_CCR2,计数器清0;
(5)软件产生事件更新,重新装载TIM2_ARR;
(6)将GPIOA的引脚3定义为复用推挽输出,用timer2的通道2(映射到引脚PA3)作为输出比较;
(7)TIM2_CCR2和TIM2_CNT匹配时,翻转OC2REF信号;
(8)设置中断方式,使能timer2的全局中断,开始计数。
(9)产生中断后,进入中断服务函数。
在中断服务函数里,使软件变量counter++,通过判断counter是否等于1000000;如果条件满足,UTC时间加1,counter和TIM2_CNT清0,清除timer2的所有中断标志。
我们将程序下载到芯片中,将数字示波器的探头连接到定时器的比较输出管脚PA3,经过实验的到本地时钟的情况如下图所示:
通过定时器和从网关获取UTC时间,可确保主节点有一个绝对时间,由于不能从节点获取UTC时间,所以从节点可能只有一个微秒级的相对时间。这就要求每次从节点定时唤醒后首要任务就是校时,确保其和它的父节点时间同步上。整个网络在最终对采集到的数据进行融合时不出现错误或误差减少。



评论


相关推荐

技术专区

关闭