基于无线传感器网络的定位系统设计概要Word文档格式.docx
《基于无线传感器网络的定位系统设计概要Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于无线传感器网络的定位系统设计概要Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
摘要:
无线定位应用需求日益增长,研究无线传感器网络的定位应用具有重要意义。
首先介绍基于无线传感器网络的定位系统的软硬件结构,然后从能量消耗、网络通信量和可靠性等方面来分析和选择移动结点的工作方式,并提出了使信标结点实现动态快速组网、提高网络通信效率和通信链路稳定性等所采取的措施,最后给出了在TinyOS下传感器结点的程序结构和实现,以及在服务器端实现的改进的加权质心定位算法。
关键词:
无线传感器网络;
定位系统;
传感器结点;
定位算法
DOI:
10.37780.issn.1002—8331.2008.17.021
文章编号:
1002—8331(200817埘67—04文献标识码:
A巾图分类号:
TP393
l引言
无线定位技术有着广泛的应用前景,采用全球定位系统(GPs虽然可提供较精确的定位,但是不仅成本高而且有些场合应用受限,例如地下矿井【l】。
无线传感网络作为集计算机、传感器、无线通信技术于一身的新兴技术,在军事和民用领域都有着广阔的应用前景,如军事侦察、环境监测、医疗监护、空间探索等,它是由部署在监测区域内大量低廉的微型传感器结点,通过无线通信方式形成的一个多跳自组织网络12.31。
MICA2和TinyOS被广泛用于无线传感器网络的研究中。
MI—CA2是由美国克尔斯博(Crossbow公司开发的微型传感器结点,具有低功耗、小体积、可扩展性、和无线通信能力等特点[Sl。
TinyOS是针对无线传感器网络特点而设计的开源嵌入式操作系统,它采用基于组件(Component—Based和事件驱动(Event—Driven的编程模型,提供一系列可重用的组件,使得能够快速实现传感器结点的各种应用程序开发f6l。
本文讨论采用MICA2传感器结点构成的无线传感器网络的定位应用设计和实现。
2无线定位系统设计
我们设计的基于无线传感器网络的定位系统包括硬件和软件两大部分。
硬件部分由服务器和传感器结点组成,其中传感器结点按其实现功能不同,可分为信标(Beacon结点和移动结点,两者硬件结构相同只是其上配置的软件不同。
硬件连接关系如图l所示,与服务器直接连接的结点称为基站(Base—station,信标结点之间通过无线连接构成树形通信网络,移动结点与邻近的信标结点无线通信。
实际上,所有的传感器结点构成了无线传感器网络。
移动结点可放置在待定位的人或物体上,随着人或物体的移动而移动,而信标结点一旦布置,其位置相对较为稳定。
移动结点的基本任务是周期性收集邻居信标结点的信息(主要是射
基金项目:
国家发改委项目(TheNationalDevelopmentandReformCommissionofChinaunderGrantNo.[200612075。
作者蘅介:
张俊霞(1965-,男。
讲师,研究方向为计算机体系结构和无线传感器网络;
汪炀(1980一,男,博士后,博士。
研究方向为无线传感器网络定位技术、水利行业信息化软件;
李善亮(1982一,硕士研究生,研究方向为无线传感器网络定位技术。
收穰日期:
2007—12-05修回日期:
2008-02—25
万方数据
682008,44(17ComputerEngineeringandApplications计算机工程与应用
公…………一△
o
——有线连接△信标结点
…无线连接
O移动结点
图1定位系统硬件连接
频信号强度指示RSSI,用于距离估算,将收集到的信息生成定位数据包发送给—个邻居的信标结点。
信标结点的基本任务是建立和维护信标结点之问的通信链路,将来自移动结点的定位数据包接力转发至基站,再由基站传送到服务器。
服务器对定位数据进行处理,获取移动结点相对信标结点的位置信息,从而实现对移动结点定位的目标。
定位系统的软件结构如图2所示。
传感器结点端程序负责生成定位数据并将其接力传送至服务器;
服务器端程序负责接收定位数据将其存入数据库,以及对数据库中数据进行分析与处理(如实现复杂的定位算法;
用户应用程序提供人机界面,显示移动结点位置。
对于定位系统的软件设计,本文主要讨论传感器结点端的程序设计和服务器端的定位算法。
图2定位系统软件结构
2.1移动结点工作方式
实现移动结点收集信标结点信息的方案可有两种选择:
主动方式或被动方式。
在主动方式中,移动结点在收集前主动广播请求,邻居信标结点收到请求后发出应答,移动结点收集应答信息;
在被动方式中,信标结点周期性广播信标,移动结点收集信标信息。
两种方式的工作周期如图3所示,一个工作周期包括活动时间和休眠时间,这里活动时间定义为完成一次定位信息的收集和发送所经历的时间。
(a主动方式
(b被动方式
图3移动结点工作方式
下面从移动结点的能量消耗、网络通信量和可靠性三个方面来比较这两种方式,从而为选择移动结点的工作方式提供依据。
移动结点的能耗与其活动时间密切相关。
在主动方式中移动结点的活动时间包括请求、收集和发送时间,其中收集时间由邻居信标结点的应答时间决定,因此与邻居信标结点的数目有关。
被动方式下移动结点的活动时间仅包括收集和发送,其中收集时间由邻居信标结点的信标广播周期决定,故移动结点的活动时间与邻居信标结点的信标广播周期有关。
由于不同信标结点独立定时所造成的时间不同步和误差,移动结点的收集时间应大于信标结点的广播周期,即尽量保证移动结点在收集时间内能够收集到所有邻居信--仲-钮.4=点发出的信标信息。
一般来说,被动方式的收集时间要大于主动方式的收集时间,因此主动方式具有较短的活动时间和较低的能耗。
现在比较两种方式下的网络通信量,不考虑信标结点对定位数据包的转发所产生的通信量。
假设定位系统由中有m个信标结点和n个移动结点,每个移动结点平均能与i个邻居信t6-t.吉点通信,被动方式下的工作周期时间与信标结点信标广播周期时间之比为k(k>
i。
在—个工作周期内,采用主动方式和被动方式的定位系统发送的信息包数PA和PP分别为:
只=(i+24凡(1耳曲‰+忍(2对于移动结点密集型的应用来说,例如矿下人员定位系统,移动结点数量大大于信标结点的数量,假如令Igm5*lR,i=3,则对于k<
20,只>
Pp,即采用主动方式的定位系统所产生的网络通信量大于采用被动方式,因此,在具有多移动结点和小工作周期的定位系统中,采用主动方式易引起网络阻塞和数据包丢失。
从可靠性方面考虑,主动方式不如被动方式。
这里可靠性定义为:
在收集时问内,移动结点能够完整地收集所有可通信的邻居信标结点信息的概率。
完整信息对于定位算法的位置估算至关重要。
在被动方式下,虽然存在因为移动结点未收到某个邻居信标结点的信标,而使得移动结点收集到的信息不完整,造成定位数据包不准确,但是可以通过延长收集时问(或缩短信标结点的信标周期时间,BPTJU大收集时间与信标周期时间的比率来提高可靠性。
而主动方式存在较多不可靠因素,邻居信标结点会因未收到移动结点的请求而不发应答,或者信标结点虽然发送了应答但是移动结点未收到该应答,从而造成定位数据包不完整。
这是不能仅依靠延长收集时问来克服的,需要移动结点在延长的活动时问内发送多次请求来提高可靠性,但是这f69,然大大增加网络通信量。
另外,主动方式中多个信标结点同时收到移动结点的请求,如果同时发送应答势必会造成应答包冲突。
虽然增加随帆化发送可改善之,但是增添了复杂性和延长了收集时间。
综上所述,主动方式适合于网络通信量小的大周期和非周期性的定位收集系统,而被动方式适合网络通信量变化较宽的周期性定位收集系统。
本文移动结点选择被动方式工作。
2.2信标结点网络结构
信标结点构建的无线通信网络具有如图4所示的层次结构,基站在网络中的层次为O,以基站为父结点的信标结点在网络中的层次为1,以第1层信标结点为父结点的层次为2,其他依此类推。
定位数据在该网络中是白高序号层次向低序号传递,即第i层叫一l一…—十o。
信标结点具有动态自动入网和组网功能。
未入网的信标结
张俊霞,汪炀,李善亮:
基于无线传感器网络的定位系统设计2008,44(1769
今、/;
’、。
拿会}’}\厶厶
第。
层
CommPromiscuous组件发送;
此外,对于信标结点还要转发来自其他信标结点的定位数据包;
GenericCommPromiscuous:
负责与射频收发器(TRx打交第1层
△第2层
图4信标结点网络层次结构
点需要建立通信链路时,首先要了懈周围信标结点的链路状况。
与移动结点收集定位信息类似,未入网信标结点的入网方式也有主动和被动两种方式。
由前面分析可知,采用主动方式具有响应快速,且在主动请求者数量少且位置变化不频繁时,对网络通信量影响也不大,因此信标结点采用主动方式入网也是适宜的。
但是考虑到移动结点采用被动方式,要求信标结点周期性发送信标信息,该信标信息也可用于信标结点被动入网参考,故信标结点入网方式也采用被动方式。
在被动方式下,未入网信标结点不发送任何信息,仅监听邻居信标结点发出的消息。
根据接收信号的强弱和邻居信标结点在网络中的层次状况,选择其中的一个信标结点作为自己的父结点,随后进入已入网工作状态,周期性广播信标信息和接收并转发定位数据。
信标结点设汁的关键是动态维护通信链路,实现快速组网。
可以在已入网信标结点发出的任何信息包中均包含该信标结点在网络中的层次,未入网信标结点的入网和移动结点的定位可以参考已入网信标结点发出的任何信息包,而不是仅仅只参考信标包,这样在发送信道繁忙时可以省却发送信标包,即仅在无定位数据包发送时才发送信标包。
通过这种措施达到既快速建立通信链路又提高网络通信效率的目标。
另外,为了使网络通信链路结构具有相对稳定性,不致频繁改变链路,已入网信标结点不轻易改变其父结点,只有在不能成功转发定位数据包时才重新选择父结点。
3传感器结点程序设计
为了方便维护传感器结点程序,本设计为移动结点和信标结点设计—个公共程序。
将该程序写入结点时,提供结点类型参数,指定是移动结点还是信标结点。
在TinyOS环境下,设计的结点程序结构如图5所示,其中各组件的功能如下:
Location:
项层应用组件,周期性生成定位数据或信标包,递交MuhihopRouter组件发送;
Timer(:
:
为I俄afion组件提供工作周期和收集时间定时;
MultihopRouter:
接收来自GenericCommPromiscuous组件的信息包,维护邻居表和选择父信标结点;
接收Location组件提交的定位数据或信标包,加上路由头后递交给Generic一
图5结点程序结构道,发送和接收信息包;
LedsC:
指示结点的工作状态。
由于TinyOS是基于组件和事件驱动的编程模型,而且TinyOS
1.x版提供的TimerC、LedsC和GenericCommPromiscu—ons组件在此可不加修改地加以应用,因此,下面仅描述LⅪa_tion和MuhihopRouter组件。
Location组件的命令和事件处理如下:
(1初始化命令:
初始化MultihopRouter、TimerC和LedsC组件,启动MultihopRouter组件(callStdContr01.Stal'
t,启动TimerC组件工作周期定时(callCycleTimer.start(TIMER—RE—PEAT,Tml,另外,对于移动结点还要启动TimerC组件收集时间定时(caHDelayTimer.stan(1’IMER-0NE_SHOT,TIIl2。
注意:
图5中省略了组件的标准控制接口stdControl;
移动结点和信标结点的工作周期Tml是不同的。
(2收集时问定时到(DelayTimer.fired事件:
获取Muhiho-pRouter组件的邻居表信息(CallRouteContr01.getNeighboI_s。
若邻居表为空,表示移动结点收不到周围信标结点信号,则停止MuhihopRouter组件(callStdContr01.stop,启动休眠;
否则由邻居表生成定位数据包,将定位包递交MultihopRouter组件发送(CallSendM.send。
(3工作周期定时到(CycleTimer.fired事件:
对于移动结点,启动MuhihopRouter组件,启动TimerC组件的收集时间定时。
对于信标结点,获取MuhihopRouter组件的邻居表信息和发送队列信息(callSendM.getStatus,如果邻居表不空(该结点可入网或者已经入网且发送队列为空(发送信道空闲,就生成信标包递交MuhihopRouter组件发送。
(4发送结束(SendM.sendDone事件:
对于移动结点,停止MuhihopRouter组件,启动休眠。
MultihopRouter组件的命令和事件处理如下:
(1初始化命令(StdContr01.init:
初始化GeneficComm—Promisc组件,初始化邻居表,清除父结点有效标志。
邻居表保存邻居信标结点的信息,例如结点编号、结点在网络中的层次号、发送包序列号、平均射频信号强度RSSI、收包率等。
(2启动命令(StdContr01.start:
启动GenericCommPwmise组件,进而由该组件启动物理射频收发器发送和接收信息包。
(3停止命令(StdContr01.stop:
停止GenericCommPromisc组件,进而停止物理射频收发器发送和接收信息包;
清空邻居表,清除父结点有效标志。
(4发送命令(SendM.send:
若父结点无效,则根据邻居表选择父结点(具体选择算法不在本文讨论,如果成功选择,设置父结点有效标志。
在父结点有效情况下,将信息包(定位数据包或信标包加上路由头后放入发送队列,等待递交给Gener-icCommPromiscuous组件发送o
(5接收事件(Receive.arrived:
若接收到的信息包来自邻居信标结点,则更新邻居表。
若本结点是信标结点,并且信息包是以本结点为目标的定位数据包,则转发该定位数据包,即加上路由头后放入发送队列,等待递交给GenericCommlh'
omiseu—OUS组件发送。
(6发送结束事件(SendC.sendDone:
对于信标结点,若发
702008,44(17Computer脚e慨andApplications计算机工程与应用表1改变a值的溯试结果
送失败,则清空发送队列。
清除父结点有效标志。
4服务器端的定位算法
利用Visualc#2005和SQLServer一2000来开发服务器
端软件。
在实际的测试中,将4个信标结点摆放在—个3mx3m
的正方形区域的四角,移动结点在此区域内移动。
服务器通过
串口读取的定位数据包来计算移动结点的位置。
在服务器端,实现了加权质心算法141和作者自己设计的改
进算法。
在加权质心算法中,利用结点之间的RSSI作为参考,
计算信标结点的权值。
这里将两个能够互相通讯的结点称作结
点对。
然而,对于无线传感器网络来说,不同环境下,距离相同
的结点对的RSSI值可能不同。
此外,在同一环境下,不同区域
或不同方向的结点对,尽管距离相同,RSSI值也可能不相同。
这就意味着同—个RSSI值,在不同的结点对之间代表不同的
距离,相应的权值也应当不同。
出于这种考虑,利用信标结点之
间的距离和信号强度信息对权值进行校正。
在实现系统过程
中,还研究了无线信号的能量衰减模型中参数对算法定位效果
的影响。
4.1改进的加权质心算法
网络中的几个信标结点n的已知位置坐标为(x;
yi,其
中1≤i≤n,移动结点M的估测位置坐标为(x,,y。
oRsM,表
示信标结点B.接收到信标结点曰i信号RSSI平均值(单位
dbm,只,表示信标结点巨接收到信标结点曰,的信号强度平均
值(单位mW:
坚坠
e#=lo1。
(3
Rssl,表示移动结点M接收到信标结点E信号RSSI平均值(单位dbm,只表示移动结点肘接收到信标结点且的信号强度平均值(单位mW:
RSSt!
Pi=IO10
(4
%表示信标结点E和B之间的距离,Di=[dt,,如,…,如l,其中_『≠i,表示计算出来的M到信标结点置之间的距离集合:
略2警㈥
将皿集合中的中间值记作畦。
W。
表示信标结点E的权值,计算公式如下:
E=寺.(6下面利用信标结点的坐标加权平均值来计算M的位置,计算公式如下:
nn
i
∑E蝎∑E蝎
X=型了一,L=型了一(7∑E∑E
扭I辞l
4.2定位性能比较
提出的改进算法,充分利用了已知的距离信息和信标结点之间的信号强度信息对权值进行校正。
在a=1.65时,可以获得最小的平均误差。
与加权质心算法相比,平均误差和标准偏差分别减小了25.35%和17.32%,如表l所示。
5结束语
本设汁对无线传感器网络的定位系统应用进行了有益尝试。
虽然由于采用射频信号强度估算距离存在误差,导致实现的定位系统在小规模(几十个MICA2结点应用测试中只能达到区域定位(移动结点在某几个信标结点附近的结果,但是在不需要精确定位的场合,例如矿下人员定位,仍具有一定的应用价值。
’
参考文献:
【l】1张婷,郑建生,壬皓.无线定位新技术及发展趋势忉.电讯技术,2006,46(2:
21—22.
【2】李忱,杜军,金芳.无线传感器网络及其应用忉.仪器仪表用户,2006,13(3:
l一2.、
【3】周贤伟,王强,覃伯平.无线传感器网络结点定位算法的研究叨.传感器与微系统,2006,25(3:
4-6.
[41ShenX,Wangz。
JiangP,eta1.ConnectivityandRSSIbasedIocal—izationschemeforwirelesssensOrnetworks[C]//ProceedingsoftheInternationalConferenceonIntelligentComputing,2005.
【5】5MPR—MIBuseBmanual[EB/OL].fSupport/wUser-Manuals.aspx.
[61TinyOStutorial[EB/OL].hinyos-1.x/doe/tutorial/.
(上接64页
【3】StonebrakerM,SchlossG.DistributedRAID-anewmultiplecopyalgorithm[C]//Proceedingsofthe6thIEEEInternationalConferenceonDataEngineer.IEEEPress,1990:
430--437.
【4】SitaramD,DanA.Multimedia¥erver8,applications,environments,anddesign[M].is.1.】:
MorganKaufmannPublishers,2000.
【5】ReissleinM,RossKW,ShesthraS.StrippingforinteractiveVideo:
Isitworthit?
[C]//ProceedingsofIEEEInternationalConferenceonMultimediaComputingandSystems。
1999—06:
635—640
16】MicrosofiCorporation.MicrosoftdirectShowSDK&
WindowsmediaformatSDKdocumentation[EB/OLI.http:
//msdn.micnrsofi.corn/library/.『7】TranD,HuaK,SheuS.Anewcachingarchitectureforeffici