传感器网络汇聚节点及该节点上数据的存储传输方法

文档序号:6572250阅读:250来源:国知局
专利名称:传感器网络汇聚节点及该节点上数据的存储传输方法
技术领域
本发明涉及一种用于传感器网络的汇聚节点结构,本发明还涉及利用该汇聚节点结构进行数据存储传输的方法
背景技术
传感器网络是一种低通信速率网络,主要应用于物理世界的数据采集,是网络的一种延伸。传感器网络一经部署需要有较长的网络生存期,但是构成传感器网络的节点都是资源受限的,因此如何节约传感器节点的能量开销一直是研究的热点。往往通过数据压缩算法来减少通信数据量,以达到节能的目的。
大规模的传感器网络通常被分为许多小的区域,每个小区域(称之为簇)会通过某种算法选举出一个管理节点,簇内各节点将采集到的数据发给管理节点,管理节点对收集到的数据进行压缩处理后进行转发,我们称这个管理节点为汇聚节点。
在无线传感器网络中,节点的存储能力都是十分有限的。汇聚节点的硬件结构与传感器网络中的其他节点相同,但相对来说要比其它节点存储更多的数据。若不对汇聚节点的存储空间进行管理,则在数据压缩的实现过程中至少会遇到以下的一些问题 首先,汇聚节点没有足够的存储空间存放其他节点传送来的数据。在数据收集过程中,由于MAC层信道的竞争,某个节点传送给汇聚节点的数据可能会有一定的延迟,汇聚节点在等待此节点的数据的时候,不得不接收其它节点多次发送的数据,因而需要更大的存储空间。
其次,汇聚节点面临存储数据的保护问题。传感器网络一般都使用实时的操作系统,实时操作系统的中断优先级很高有可能会打断目前正在进行的运算,如何保护存储的数据不被重复的进行读写操作也是需要面临的一个重要问题。
本发明针对以上问题提供了一种用于传感器网络数据压缩的汇聚节点上的存储空间分配方法和针对该分配方法在实时操作系统中引入一种信号量机制保护汇聚节点上存储的数据。


发明内容
本发明的目的是要克服现有汇聚节点存储空间限制带来的蔟内部以及网络中数据传输问题。
本发明首先是提供一种用于传感器网络的汇聚节点,其结构是把存储空间分为多个页面,每个页面的大小等于簇内节点的个数与簇内节点一次发送给汇聚节点的采样数据量之积;该采样数据量由具体协议参数决定,其存储空间大小为一个扇区。
数据压缩技术要求整个网络或者每个簇内有精确的时间同步,因为数据的时间紊乱会降低压缩的效果。由于传感器网络的硬件条件受限,在整个网络中实现电信网络中精确的TDMA不太可能,但是对传感器网络某一个区域进行时间同步还是可以实现的。针对无线传感器网络中的时间同步协议已经有很多文献,在此不再描述。本发明只针对汇聚节点的簇内节点都实现了时间同步。
簇内每个节点设为采样周期为ts,采集m个样本后把采集的数据发送给汇聚节点。节点的通信带宽为R,每个簇内节点发送的帧长度为Fi。汇聚节点上在收到压缩或者融合算法所规定的数据量后进行一次处理所要耗费的时间为tp。假设汇聚节点所拥有的簇内节点数量为n,那么所有簇内节点通过竞争信道发送完一个数据帧所要耗费的时间最少为

如果那么势必会出现一个问题,在汇聚节点正在对上一轮采样数据进行运算处理时下一轮数据已经到达。当程序员为汇聚节点开辟的内存仅为n×m大小时,势必会由于缓存过少产生数据的丢失。
解决这种问题的办法有两个,第一种将采样时间ts设置为ts?

但是这种办法在高采样速率的应用环境中不太适用,如声音和振动数据采集,首先,声音和振动数据采集必须需要高速率的采样,采样周期设置过大不符合应用要求,其次,传感器网络是低速率网络,高速采样产生的大量数据通过低带宽传送需要耗费很多时间,上述采样时间的不等式无法满足;第二种开辟的缓冲区大于n×m,余下的空间用来存储下一轮到来的数据。


这个式子的运算结果的商进行向上取整,得到一个整数值L,那么在汇聚节点上总共需要开辟L×n×m大小的缓存。在实际实施过程中如节点竞争信道耗费的时间和CPU对特定操作的处理时间都是不确定的,一般可以先分配整数倍的n×m大小的缓冲区,通过试验结果看有无数据丢失来调整缓冲区的大小。整个汇聚节点上的存储分配结构图如图1所示。
在存储空间分配方法中提到了这样一种情况,在汇聚节点正在对采样数据进行运算处理时可能簇内其他节点发送的数据已经到达。传感器网络节点使用的操作系统往往实时性很强,一个新的数据包的达到在操作系统中会被定义为一个中断或一个事件,可以打断一些非实时的处理或者运算。
虽然在存储空间分配方法中定义了多余的缓冲区供新的数据存储,但是中断或者事件对正在执行的运算可能会产生如下影响假如汇聚节点正在进行运算处理时被中断打断,那么新的数据到来时操作系统会认为参与运算处理的存储数据已经被释放掉了,操作系统会直接占用已经参与运算处理的存储数据的空间,当汇聚节点的运算任务从中断后恢复再参与运算将使用原存储地址但是非原始的数据来完成剩下的操作,那么汇聚节点最后传送给无线网关的必然是错误的结果。
本发明针对上述问题提出了一种利用上述汇聚节点结构的信号量机制来保护汇聚节点上存储的数据,即传感器网络数据在汇聚节点上的存储传输方法。该方法描述如下 实时操作系统初始化部分 1、设置两个整数变量和一个逻辑变量作为信号量;这三个变量的名字分别为PageRead,PageWrite,isPageFull;在对每个变量进行操作时必须设置为原子执行; 每个页面初始时都设置isPageFull为非真值;PageRead,PageWrite采用无符号8比特数表示的话可以设置为255,总之在初始时设置为无意义的值; 写操作进程 1首先看是否有页面的isPageFull为非真值; 2如果有,那么按照页面号的从小到大的次序选择同时看是否PageRead,PageWrite是相同的值,如果不相同那么PageWrite的值赋为当前选择页面号;如果没有该页面就继续寻找等待; 3当页面写满后PageWrite设置为初始值,isPageFull设置为真值;然后重复写操作的步骤1; 读操作进程 1首先看是否有页面的isPageFull为真值; 2如果有,那么按照页面号的从小到大的次序选择,PageRead的值赋为当前选择页面号。如果没有该页面就继续寻找等待; 3当页面中数据运算完成后,PageRead设置为初始值,isPageFull设置为非真值;然后重复读操作的步骤1; 具体的信号量在读写线程的操作流程如图2所示; 本发明提供了一种汇聚节点结构,并由此提供了一种传感器网络数据在汇聚节点上的存储传输方法。这种方法提高了数据传输的效率,节约了能量,并没有使数据在压缩过程中产生计算错误。



图1汇聚节点上的存储分配结构图,其中1是汇聚节点,2、3、4、5为簇内节点; 图2具体的信号量在读写线程的操作流程; 图3丢失样本与时间关系图,其中□为使用本发明设置缓冲区丢失的样本数;曲线○为未按本发明设置缓冲区丢失的样本数; 图4温度与时间关系图,其中曲线□为解压缩后的采样数据;曲线○为不需要解压缩的采样数据。

具体实施例方式 实施例 本实施例中基于TinyOS操作系统结合一种简单有效的数据压缩处理算法实现本发明提到的存储空间分配和保护方法。TinyOS操作系统是由美国加州大学博克立分校开发的专门使用于无线传感器网络的操作系统,该操作系统可以运行于CROSSBOW公司生产的MICA系列传感器节点上。硬件平台使用CROSSBOW公司制造的MICAZ传感器网络节点。
本发明实施例首先采用5个MICAZ节点进行温度数据的采集,5个节点中有1个是汇聚节点,其余4个是簇内节点,每个簇内节点的采样周期为200毫秒。具体的数据压缩方法如下簇内节点在采集八个样本后做一次3级Haar小波变换,并将变换后得到的8个小波系数发送给汇聚节点。汇聚节点在等待收到4个簇内节点一轮小波变换系数后,对收到的数据进行一次2维Haar小波变换,然后将2维变换后的小波系数进行‘Z’字形游程编码,最后把游程编码后的数据发送给无线网关。其中簇头使用了本发明提供的存储空间分配方法。
为了证明本发明在适应数据压缩算法的同时对减少节点采样数据丢失有很好的效果。以下给出了一些对比数据。参与对比的有三组数据,第一组为按照节点的采样频率在一段时间内实际应采样的个数;第二组为采用本发明的存储空间分配方法,控制台收到的样本数量;第三组为未按照本发明提出的方法不设置多余空间缓存数据,控制台收到的样本数量。
使用本发明提供的分配方法得到的样本数 经历时间(秒) 按采样频率计算应得的样本数2048 105s 21002816 147s 29403328 175s 3500 未使用本发明提供的分配方法得到的样本数 经历时间(秒) 按采样频率计算应得的样本数 1792 106s 2120 2688 145s 29002432 164s 3280 从图3中可以看到本发明与按照采样频率计算应得的样本数略微有一些偏差,这是由于在统计时间终止时还未等到下一轮簇头把时间终止前的数据发送上来,整体还是吻合的。但是未使用本发明提出的存储空间分配算法,仅仅分配刚够一轮数据存储空间的汇聚节点就严重丢失了数据,且随着时间的推移数据丢失现象有加重的可能。
为了证明本发明提供的保护汇聚节点上存储数据的信号量机制有效,不会由于重复写操作引起压缩数据时的计算错误,本发明实施例给出了如下试验。参与试验的有两组节点,第一组,使用带有本发明提供的存储分配方法的节点组出的压缩簇采集温度数据,第二组,不含有压缩功能仅把采样数据简单发送给无线网关的节点采集温度数据。将第一组和第二组的节点按标号一一对应,一对一对分布在实验室测试,看第一组数据解压后的温度是否与第二组采集的温度数据有巨大偏差。图4给出了两组节点中2号节点采集的温度数据对比曲线。
从图4可以看到数据的误差在0.5摄氏度范围内,基本上解压后的数据与实际温度偏差不大,因此可以证明本发明提供的保护机制没有使数据在压缩过程中产生巨大的计算错误。
权利要求
1.一种用于传感器网络的汇聚节点,其结构是把存储空间分为多个页面,每个页面的大小等于簇内节点的个数与簇内节点一次发送给汇聚节点的采样数据量之积;该采样数据量由具体协议参数决定,其存储空间大小为一个扇区。
2.传感器网络数据在汇聚节点上的存储传输方法。该方法描述如下
实时操作系统初始化部分
1)设置两个整数变量和一个逻辑变量作为信号量;这三个变量的名字分别为PageRead,PageWrite,isPageFull;在对每个变量进行操作时必须设置为原子执行;
每个页面初始时都设置isPageFull为非真值;PageRead,PageWrite采用无符号8比特数表示的话可以设置为255,总之在初始时设置为无意义的值;写操作进程
1)首先看是否有页面的isPageFull为非真值;
2)如果有,那么按照页面号的从小到大的次序选择同时看是否PageRead,PageWrite是相同的值,如果不相同那么PageWrite的值赋为当前选择页面号;如果没有该页面就继续寻找等待;
3)当页面写满后PageWrite设置为初始值,isPageFull设置为真值;然后重复写操作的步骤1;
读操作进程
1)首先看是否有页面的isPageFull为真值;
2)如果有,那么按照页面号的从小到大的次序选择,PageRead的值赋为当前选择页面号。如果没有该页面就继续寻找等待;
3)当页面中数据运算完成后,PageRead设置为初始值,isPageFull设置为非真值;然后重复读操作的步骤1。
全文摘要
本发明涉及一种用于传感器网络的汇聚节点结构,本发明还涉及利用该汇聚节点结构进行数据存储传输的方法。其结构是把存储空间分为多个页面,每个页面的大小等于簇内节点的个数与簇内节点一次发送给汇聚节点的采样数据量之积;该采样数据量由具体协议参数决定,其存储空间大小为一个扇区。并由此提供了一种传感器网络数据在汇聚节点上的存储传输方法。这种方法提高了数据传输的效率,节约了能量,并没有使数据在压缩过程中产生计算错误。
文档编号G06F3/06GK101374150SQ20071003596
公开日2009年2月25日 申请日期2007年10月26日 优先权日2007年10月26日
发明者林亚平, 叶松涛, 周四望, 胡玉鹏 申请人:湖南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1