引言
无线传感器网络的各种应用中,节点的位置信息至关重要[1,2]。针对不同的定位形式,现在已设计出了不同的定位算法,这些定位算法主要从理论上进行了相应的研究,并且使用仿真的方法进行定位算法的验证,设计实际的节点定位系统对于无线传感器网络中各种算法的分析有着更大的现实意义。本文设计了一个无线传感器网络节点定位系统(LSBR),并对基于RSSI的定位算法在系统上进行了验证分析。本文对节点定位系统的组成、硬件、软件以及试验方法进行了相应的介绍。
系统组成及硬件设计
系统组成及工作原理
LSBR(Localization System Based onRSSI)定位系统基于RSSI测距原理[3,4],利用射频信号实现对室内移动目标的定位,系统由信标节点、目标节点、汇聚节点和位置计算装置等部分组成,采用了一种主动式的定位架构,由目标节点向信标节点发送射频信号。其中信标节点一般安装在屋顶天花板上,目标节点安装在移动机器人等装置上。具体的系统组成和工作原理如图1所示。
如图1所示,信标节点放置在室内的固定位置,如天花板上,其位置已事先测量获得,并保存在位置计算装置上,目标节点安装在移动机器人上,数据收集器与位置计算装置连接。目标节点同时向屋顶的信标节点发射射频信号,射频同步信号携带目标节点的ID信息。当信标节点接收到射频信号后,检查ID信息,如果ID信息正确则接收信号,接收到信号的节点依次将测量数据通过无线方式发送给汇聚节点。汇聚节点计算出目标节点与信标节点的距离,并通过串口通信传给位置计算装置。位置计算装置根据事先建好的坐标系、信标节点坐标和距离数据计算出目标节点坐标。
系统硬件主要由目标节点、信标节点和汇聚节点组成。其中目标节点和信标节点通过射频模块来实现测距功能,汇聚节点主要负责接收数据并实现距离计算。目标节点和信标节点的系统框图如图2所示。
系统节点设计
信标节点设计
信标节点包括控制器模块、射频模块、电源模块等部分组成,其功能主要包括接收目标节点发射来的射频信号,并将测得数据发送给汇聚节点。信标节点处理器采用CC2430芯片[5,6],其工作电压为3.3V,CX20106A芯片工作电压为5V,故电源模块采用7.2V锂电池供电。输入电源首先通过电容进行滤波,再通过LM7805电源稳压芯片输出稳定的5V电压,5V电源其中一路输出给CX20106A芯片使用,另一路通过LM1117电源稳压芯片输出稳定的3.3V电压,提供给CC2430芯片处理器使用。电源电路原理图如图3所示。
目标节点设计
目标节点包括控制器模块、射频模块、通信模块、电源模块等部分组成。该节点一般不单独使用,需要与移动机器人装置连接,主要功能包括接收移动机器人发送来的定位命令、射频信号、输出工作状态等。目标节点系统框图如图2所示。目标节点的处理器同样采用了CC2430芯片,使用其内嵌RF射频模块取代单独的RF射频模块。目标节点电源电路原理图如图4所示。
汇聚节点设计
汇聚节点包括控制器模块、射频模块、通信模块、电源模块等部分组成,其主要功能是通过射频模块收集信标节点的测量信息,计算目标节点与各个信标节点的距离,并通过串口将各个信标节点编号和距离传给位置计算装置。在较大规模的网络部署中,也可通过ZigBee网络将距离数据传给远端的位置计算装置。汇聚节点控制器同样采用CC2430芯片,汇聚节点的系统组如图5所示。
串口通信模块采用了控制器的USART片内外设,可输出TTL的串口通信数据。由于位置计算装置多采用PC机,最新生产的PC机一般都取消了RS232通信接口,采用更为方便的USB接口,故在汇聚节点中采用了Philips公司的PL2303数据转换芯片[7],可将TTL的串口数据转换成USB通信数据,方便与电脑连接。PL2303的转换电路如图6所示。
一般PC机的USB接口可提供5V的直流电源,最大电流可达500mA,足以满足汇聚节点的电源需求。汇聚节点通过USB接口从位置计算装置获得5V电源,输入的5V电源首先通过电容滤波,再通过稳压芯片输出给处理器稳定的3.3V工作电压,在该节点中,选用专为通信控制芯片提供转换电压的LM1117为转换芯片,它具有功耗低,体积小等优点。又因为电压中含有许多高频干扰源,这些高频成分很容易经过电源进入通信系统中。另外系统自身的发送频率也会经过电源感应反馈到通信系统造成干扰。因而可在电源电路中加入220μH的电感,与并入多个不同容值的电容所构成的滤波电路来抑制各种高频信号。使节点能够得到稳定可靠且低干扰的电源,保证其可靠运行。具体电源电路如图7所示。
系统软件设计
定位系统需要目标节点、信标节点、汇聚节点、位置计算装置协调工作完成定位功能,其中的目标节点具有两种工作模式,连续模式和命令模式。在命令模式下,当目标节点接收到机器人发出的定位命令后,进行RSSI测距;在连续模式下,目标节点连续发送射频信号进行RSSI测距。两者主要工作步骤相似,下面仅对目标节点基于命令模式定位方法的工作步骤进行描述。其中测距公式采用式(1)计算。
式中,为接收到信号强度,模型参数A、n是根据实际环境测的数据得到的。
通过公式(2)计算出目标节点与各个信标节点的距离d(m),其中的μ为修正系数可通过信标节点的位置可知。
具体工作步骤如下:
(1)信标节点启动,首先初始化,然后立即进入实时监测射频同步信号状态。
(2)目标节点通过串口通信模块接收到移动机器人的定位请求后,立即发送射频信号,其中的射频信号携带目标节点的ID信息。
(3)当信标节点接收到射频同步信号后,立即检测接收到的ID信息是否与目标节点的ID信息相同。如果不相同则放弃,进入之前的等待射频接收状态;如果相同则接收。
(4)信标节点将节点编号、RSSI测量值打成一个数据帧,跟据节点编号顺序依次将数据帧通过无线的形式发送给汇聚节点。
(5)汇聚节点收到数据后,根据节点编号利用公式(1)、(2)计算出目标节点与各个信标节点的距离d(m),最后汇聚节点将计算得到的各个信标节点的数据打包,发送给位置计算装置。
(6)位置计算装置根据事先建立的坐标系、信标节点坐标和距离d,利用极大似然估计等方法,计算目标节点在水平面上的位置坐标。至此,一次定位过程完成。定位系统的信标节点具有相同的无线接收本机地址,记为地址1,目标节点向地址1发送携带ID信息的射频信号,所有信标节点可同时接收到目标节点发来的射频信号。对于多个信标节点向汇聚节点的数据传输问题,本章提出了一种基于节点编号的延时互补传输方法,相比较基于扫频模式的多点传输方式其具有更高的可靠性,并且能够结合本系统的特点解决短时间内大量信标节点的传输问题。具体方法为:信标节点编号10个为一组进行编码,并且信标节点的部署时保证具有相同位数编码的信标节点的测量范围不重叠。信标节点根据编号的位数依次传输数据,使传输时间间隔平均分配在18ms的数据传输窗口内。当信标节点数据传输完成后,进行相应的补偿延时,等待18ms数据传输窗口时间结束的到来,并以此作为同步时间,进入下一轮RSSI测距循环。这样各个信标节点具有了相同的RSSI循环测距周期,避免了因各个节点的工作不同步导致的紊乱状态。
基于定位系统的定位实验
为了验证定位系统的定位效果,本文搭建了一个4个信标节点的测试演示系统。信标节点安放在天花板上,其具体安放位置和节点编号如图8所示。在静止目标定位实验中,设定了5个标定点。该测试系统中,屋顶离地面的高度约为2.8m,本次实验每个标定点测试了100组数据,由于数据量较大,本文只给出了第一个标定点的测量数据。
使用MATLAB对上表实际测量数据进行定位,其定位效果如图9所示,500组测量数据的定位误差如图10。实测数据的平均定位误差为2.3m,最大误差为4.3m。分析可知,造成误差的主要原因包括两方面:由系统本身测距误差造成,该误差不可避免,主要由空气温度、密度不均衡等环境噪声引起,另外程序执行语句与事件状态在时间上的细微变化也会对其造成一定的影响,该误差通过各种优化设计已控制在可接受的3m范围内;测试系统的安装误差,主要是人为造成,可根据定位精度需求及使用环境进行修正。
如图10所示x轴的某些采样处出现的较大变化,主要由标定位置变换引起的系统噪声。从图中可知系统的实际测试定位误差小于设计的3.5m。
结论
本文设计了一套基于RSSI室内定位系统(LSBR)。首先描述了基于RSSI的测距定位原理,然后对整个系统的架构和硬件设计进行了详细描述。软件部分从系统工作步骤、节点程序设计和定位跟踪演示软件部分进行了研究。最后LSBR系统进行了定位方面的实验,实验表明定位算法的有效性。
参考文献:
[1] 陈娟,李长庚,宁新鲜.基于移动信标的无线传感器网络节点定位[J].传感技术学报,2009,(1):121-125
[2] I.F.Akyildiz, W.Su,Y.Sankarasubramaniam,etal. Wireless Sensor Network: a Survey[J].Computer Networks, 2002,38,(4):393-422
[3] Guoqiang Mao, Baris Fidan, Brian D.O.Anderon. Wireless Sensor Network Localization Technique[J].Computer Networks, 2007,(51):2529-2553
[4] 汪灿,黄刘生,肖明军等.一种基于RSSI校验的无线传感器网络节点定位算法[J].小型微型计算机系统,2009,30,(1):59-62
[5] 李志宇,史浩山.无线传感器网络微型节点的实现[J].电子产品世界,2005,(21):115-117
[6] 孙德辉,龚关飞,杨扬.基于CC2430的无线传感器网络系统设计[J].现代电子世界,2010,(13):66-68
[7] 文治洪,胡文东,李晓京,等.基于PL2303的USB接口设计[J].电子设计工程,2010,18,(1):32-34