首页 理论教育 TPSN时间同步实验结果

TPSN时间同步实验结果

时间:2023-10-21 理论教育 版权反馈
【摘要】:图5-5 TPSN协议的主要过程图中的T1、T4用节点A的本地时间记录,T2、T3用节点B的本地时间记录。本实验的IOT-NODE24节点采用频率为7.3728MHz的晶振。本实验中SYNC_INTV设置为36000,即5s同步一次。

TPSN时间同步实验结果

1.实验目的

本实验介绍了使用TinyOS实现传感器网络时间同步协议,(Timing-sync Protocol for Sensor Networks,TPSN),并对两个无线传感器网络节点进行同步。通过实验,使读者初步掌握无线传感器网络时间同步问题的特点和解决方法,并锻炼其使用TinyOS开发实用的物联网应用程序的能力。

2.实验设备

(1)硬件

● 2.4GHz节点(IOT-NODE24)2个。

● JTAG编程器1个。

● PC(含串口)1台。

(2)软件

● TinyOS2.x。

● WinAVR20050214。

● AVRStudio4.18。

3.实验原理

TPSN是一种充分借鉴了互联网同步协议NTP的无线传感器网络时间同步协议。该协议通过一对包含了节点时间信息的请求和应答报文对网络中的两个节点进行同步。其主要过程如图5-5所示。

978-7-111-34147-5-Chapter05-43.jpg

图5-5 TPSN协议的主要过程

图中的T1T4用节点A的本地时间记录,T2T3用节点B的本地时间记录。节点A记录下当前时刻T1,然后向节点B发送一个同步请求报文,节点B在接收到该报文后,记录下接收到时刻T2,并立即向节点A返回一个同步应答报文,把T2和该报文的发送时刻T3嵌入在报文中,当节点A接收到该报文时,记录下接收到时刻T4。令Δ为当节点A的本地时刻为T1时,节点A和B之间的时偏。由于T1T4时间比较短,可认为当节点A的本地时刻为T4时,其与节点B之间的时偏没有变化。假设报文的传输延迟相同,均为d。由

Z2=T1+△+dT4=T3-△+d

可得:

978-7-111-34147-5-Chapter05-44.jpg

因此在T4时刻,若在节点A的本地时间上增加修正量Δ,就达到和节点B之间的瞬时的时间同步。

由于涉及对计数器的精确操作,本实验未使用TinyOS提供的通用计数器TimerMilliC,而用了ATmega128的3号计数器HplAtm128Timer3C。本实验的IOT-NODE24节点采用频率为7.3728MHz的晶振。由于使用的是一个16位的计数器,为防止计数器过快溢出,实验中对计数器进行了1024分频,将其频率降低到7200Hz。这样,一个计数周期最大可以持续9.10s。当然,9.10s对于实验来说还是不够的,因此实验中又引入了一个16位整型变量high16Bit,表示计数值的高16位,与计数器一起构成一个32位的计数器。

另外,通过设置比较器HplAtm128Timer3C.Compare来调整同步操作的间隔,也即设置每隔SYNC_INTV个计数周期比较器溢出一次,进行一次同步,并闪烁红色LED灯。通过观察红灯的闪烁情况便可以观察节点是否达到同步。本实验中SYNC_INTV设置为36000,即5s同步一次。

与计数器的初始化相关的代码如下:

978-7-111-34147-5-Chapter05-45.jpg

其中setWGM()为设置Waveform Generation Mode为0100,具体参考ATmega128数据手册的表61。相关的代码如下:

978-7-111-34147-5-Chapter05-46.jpg

978-7-111-34147-5-Chapter05-47.jpg

同步过程是通过数据包交换完成的,交互过程包含了一个同步请求数据包和一个同步应答数据包。其定义如下:

978-7-111-34147-5-Chapter05-48.jpg

在实验中,应答数据包中也包含了时间T1,并由节点B返回,这样使得节点A不需要保存与之对应的T1,并预防由于T1与其他时间不对应而产生的问题。(www.xing528.com)

程序运行过程如下:首先,设置两个节点,主节点A和从节点B。每当主节点比较器溢出时,记录下当前时间T1,并发送同步请求数据包。相关代码如下:

978-7-111-34147-5-Chapter05-49.jpg

从节点收到同步请求数据包之后,立即记录接收到数据包的时间T2,并发送应答数据包。

978-7-111-34147-5-Chapter05-50.jpg

在发送过程中,获得当前时间T3,并连同T1T2并发回。

978-7-111-34147-5-Chapter05-51.jpg

主节点在收到该数据包之后,立即记录下接收时间T4,并计算时间偏移。

978-7-111-34147-5-Chapter05-52.jpg

978-7-111-34147-5-Chapter05-53.jpg

4.实验内容

阅读TPSN的相关论文学习协议的原理以及运行机制。

阅读ATmega128的数据手册,了解其16位计数器的工作原理以及使用方法。

掌握TinyOS程序设计方法,了解NesC的编程过程以及程序结构,能够编写TinyOS程序。

对IOT-NODE24节点编程、运行过程进行实际的操作,了解物联网前端感知节点的工作机理。

5.实验步骤

1)编写实验代码,用WinAVR的Programmers Notepad打开TPSN.h,检查TPSN.h中是否有MASTER的宏定义(即代码#define MASTER)。启动Cygwin环境,在实验代码所在文件夹下使用“make micaz”进行编译。编译通过之后,在实验代码文件夹的build\micaz子文件夹下会生成main.ihex文件,将其文件名改为A.ihex。

2)再次用WinAVR的Programmers Notepad打开TPSN.h,将TPSN.h中的MASTER宏定义注释掉(即修改为//#defineMASTER),并保存文件。然后使用“make micaz”进行编译,编译通过之后,在实验代码文件夹的build\micaz子文件夹下会生成main.ihex文件,将其文件名改为B.ihex。

3)将节点与PC相连,并使用AvrStudio将前两步编译得到的.ihex文件分别烧写到两个节点中去。

4)启动主节点A,可以看到主节点上的红灯,每隔5s闪烁一次。

5)启动从节点B,可以看到主节点的红灯经过调整与从节点的红灯同步闪烁。

6.思考题

1)为什么要对节点的时钟频率进行分频,如果不分频或者进行8分频会有什么后果?

2)为什么要使用比较器,直接使用计数器可以吗?

3)如何实现3个节点乃至多个节点的同步?

7.补充阅读

[1]Saurabh G,Ram K,ManiB S.Timing-sync Protocol for Sensor Networks.Proceedings of the 1st International Conference on Embedded Networked Sensor Systems,Los Angeles,California,USA.ACM,2003:138-149.

[2]李晓维,徐勇军.无线传感器网络技术[M].北京:北京理工大学出版社,2007.

[3]Philip Levis,David Gay.TinyOS Programming.Cambridge:Cambridge University Press,2009.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈