基于TinyOS平台的RSSI定位系统设计与实现

发布者:范隆最新更新时间:2013-05-06 来源: 电子技术 关键字:无线传感网络  NesC语言  定位算法  RSSI定位算法 手机看文章 扫描二维码
随时随地手机看文章
[page]    WSN(Wireless Sensor Network)定位技术应用广泛,除可以反应出事发地点外,还可跟踪目标、实时监测目标的行动状态、预测目标的行动轨迹等。目前的定位算法可分为两类:基于测距的定位算法和无需测距的定位算法。由于基于测距的定位是采用实际测得节点间的距离或者角度,因此定位精度较高,对硬件也提出了一定的要求,在定位过程中相对消耗的能量较多。无需测距的定位算法不需要实际测量距离或角度信息,对节点不存在特殊要求,定位过程中无需考虑能量消耗问题,但定位精度及其节点覆盖率却有待提高。在基于测距的定位算法中,RSSI(ReceivedSignal Strength Indicator)定位算法相对而言通信开销较小,对硬件要求较低,是一种较为实用的定位算法。文中在TinyOS软件平台下,利用Crossbow公司提供的硬件设施对RSSI定位系统进行了实验验证,并结合实际情况对所得数据进行了分析。

1 TinyOS操作系统及硬件平台
1.1 TinyOS
    TinyOS是UC Berkeley开发的一种用于无线传感网络节点的开源操作系统,以其组件化的编程、事件驱动的执行模式、微型的内核以及良好的移植性等特点作为目前WSN系统上的主流操作系统。TinyOS操作系统没有进程或线程管理,没有虚拟内存管理,没有过于复杂的IO子系统及地址空间分配,这对于存储资源有限的系统尤为重要。
1.2 NesC语言
   
加州大学伯克利分校在C语言的基础上开发出一种适用于无线传感网络编程的NesC(C Language for Network Embedded Systems)语言,TinyOS操作系统和其上运行的应用程序用NesC语言开发。NesC是在C语言上做了一定的扩展,提出了组件化的编程思想,把组件化/模块化思想和基于事件驱动的模型结合在了一起。其主要用处是帮助应用程序设计者建立易于组合成完整、并发式系统的组件,并能够在编译时执行广泛检查。
1.3 iris硬件特性
   
iris节点工作频率为2.4 GHz,支持IEEE802.15.4协议的Mote模块,用于低功耗无线传感网络。它具有3倍的作用距离,双倍的存储空间;在户外测试不加放大器的情况下,节点间视距离可达500 m;使用直接序列扩频技术,抗RF干扰、数据隐蔽性较好;基于IEEE80 2.   15.4/ZigBee协议的RF发送器,工作频率2.4~2.483 5 GHz,兼容ISM波段。

2 RSSI定位算法
2.1 RSSI测距
   
节点间发送的信号在传播过程中都会有衰减,RSSI无线传感网络定位算法的核心是根据节点间发送信号的衰减计算出节点之间的距离,然后依据节点之间的距离计算出盲节点的位置坐标。无线信号的发射功率与接收功率之间的关系如式(1)所示,其中PR是无线信号的接收功率,PT是无线信号的发射功率,d为收发节点之间的距离;n为传播因子,其值大小取决于无线信号传播的环境
   
    式中10lgPR是接收信号功率转换为dBm的表达式,即RSSI值,其中A为信号传输1 m时,接收信号的功率值。所以可得到盲节点与信标节点之间的距离为
   
2.2 三边测量法定位
   
三边测量法是无线传感器网络定位算法中较为最典型的一种。在盲节点通过基于RSSI的测距方法获取到3个或以上信标节点的距离后,就可利用三边测量法进行自身定位。如图1所示,已知3个信标节点A、B、C的坐标(x1,y1)、(x2,y2)、(x3,y3)。假设盲节点的坐标为(x,y),根据盲节点接收到的RSSI值,得盲节点到A,B,C的距离分别为d1、d2、d3。


    则根据三边测量法原理,有式(4)成立
   
    由式(4)可以求得盲节点的坐标如式(5)所示
   

3 RSSI定位算法在操作平台上的实现
   
在此环节中,主要用NesC语言在TinyOS环境下将RSSI定位算法具体实现,编译成功后将NesC程序分别烧写到对应的硬件节点中进行实验。其实验结构如图2所示,信标节点发送包含自身坐标的数据包到盲节点及基站节点。盲节点接收信标节点发送的数据包解析出每一个的RSSI值,结合信标节点的位置坐标计算出自身坐标值,并将结果发送至基站节点。基站节点接收一切数据包,并将其发送到XServe中转站。
PC机上的XServe作为节点网络和操作者之间通信的主要通道,它提供多个通信端口用于输入信息,以便于网络间数据传送;操作者可以通过终端接口或XMLRPC命令接口与其进行通信;它可以解析、转换和处理节点传送的数据;在解析过程中,将原始格式的数据转换到相应的传感器读数测量单位;最后将转换后的数据显示于XSniffer界面中。PC机上的XSniffer可以显示出XServe传送的所有数据;能够让操作者监测到网络中的所有节点是否都在正常通信、数据包的序列号以及传送地址是否正确、以及路由的更新和时间同步消息。

[page]

3.1 总体实验思路
   
信标节点:负责发送包含自身位置的数据包到盲节点。盲节点:负责接收信标节点发来的数据包,提取出信标节点的坐标值,并从数据包中获得RSSI值,在此基础上计算出自身的坐标值,并将计算出的结果发送到基站节点。基站节点:负责接收所有能够听见的数据包,并将其转发到XServe,最后显示到XSniffer界面中,如图3所示。


    图3中,后5位数据是自行定义的,发送给2号节点的5位数据中,前3位是接收到的3个已知节点RSSI值,后两位是计算出的盲节点坐标值,为便于显示,最后两位数据分别扩大了10倍,实际值应当缩小10倍。发送给5号节点的数据是信标节点自身的坐标值。
3.2 具体实现思路
3.2.1 信标节点
   
实验中采用3个信标节点,首先分别指定各节点的ID,以便能够从XSniffer界面中观察出每个节点发送的数据。信标节点在实验中起着关键的作用,只有保证信标节点与盲节点之间进行正常通信,才可以得到可信的盲节点位置坐标。具体实现思路如下:(1)定义一个缓存区,用于存储自身的坐标值。(2)设置一个定时器,计时发送出缓存区中的数据到盲节点,指定红色led灯亮,并通过XSniffer界面观察发送数据是否正确。(3)数据发送成功,指定绿色led灯亮。
3.2.2 盲节点
   
实验目的是测出盲节点的位置,因此盲节点是实验的目标节点。首先指定其ID,以便在XSniffer界面中读取数据。其次要保证能够正常接收并提取信标节点发送的数据,才可以得到可信的自身位置坐标。具体实现思路如下:(1)定义接收和发送两个缓存区及其对应的变量指针。(2)设置4个不同的计时器,第1个计时器时间到,通过变量指针将接收缓存区中的数据复制到发送缓存区中。第2和第3个计时器时间到,重复上述操作。第4个计时器时间到,利用发送缓存区中数据计算出盲节点坐标值。(3)将盲节点的坐标值发送到基站,并通过XServe到XSni ffer界面读取数据。
3.2.3 基站节点
   
基站节点用于接收信标节点和盲节点发送的数据,并将数据向上传送,使得实验者能够明确每个节点发送的数值。具体实现思路如下:(1)定义一个缓存区,用来存储接收到的数据。(2)利用接收函数接收可以听到的信号。(3)将接收到数据通过串口传送到XServe,通过XServe将数据显示到XSniffer界面中。

4 实验结果及数据分析
   
(1)两个信标节点放置在坐标轴上,另外一个随机放置。信标节点的坐标设为(0,2),(4,0),(6,6),盲节点坐标如表1和表2所示。

[page]

    如表1所示,当信标节点置于坐标轴上时,数据误差较大,是因为室内坐标轴所选为墙壁,会发生信号反射现象,室外坐标轴所选为操场周围的栅栏,也会对无线信号的传输产生较大影响。从总体数据看,室内差值最大为2.16 m,最小为0.98 m;室外差值最大为1.56 m,最小为0.81 m。在室外定位中,距离越远误差则越大,其原因是室外无线信号干扰导致RSSI值衰减不稳定。
    (2)双侧摆放信标节点。信标节点的实际坐标设为(4,1),(8,1),(6,5),盲节点坐标如表3和表4所示。


    从上表发现,双侧摆放信标节点成等边三角形时,数据误差较第一种情况好些,是因为此时信标节点的位置不在墙壁和操场围栏处,而且盲节点摆放的位置处于三角形之中。从总体数据看,盲节点摆放位置越接近三角形中心时差值越小。这种情形下,室内差值最大为1.8 m,最小为0.57 m,室外差值最大为1.2 m,最小为0.36 m。室外定位中,盲节点位置一直放于三角形之中,RSSI值衰减比第一种情况下要稳定,从而数据差值小些。
    (3)随机摆放信标节点。信标节点的实际坐标设为(3,3),(5,2),(7,1),盲节点坐标如表5和表6所示。


    从以上表格发现,在随机摆放信标节点的情况下,数据误差较第一种情况小,但比第二种情况大,因为此时盲节点放置的位置更远,室内物品较多,干扰较大,而室外无线信号干扰,导致RSSI衰减不稳定。从总体数据看,室内差值最大为2.05 m,最小0.85 m;室外差值最大为1.42 m,最小0.58 m。
    (4)数据误差分析。实验环境为18×18的实验室内和室外操场,由于实验环境的局限性,RSSI值会受到多种因素的干扰,实验室内的设备以及人员走动都会对无线信号产生影响,使得信号发生反射、绕射、受到障碍物阻挡等现象,操场中会存在其他的无线通讯信号,以及铁栏杆等障碍物会使信号发生不稳定的衰减,导致RSSI值不稳定,产生误差。另外,每个节点所处的自身环境不相同,对其信号发射影响大小也不相同,但计算时采用同样的衰减指数,必然存在误差。

5 结束语
   
在TinyOS操作平台上利用Crossbow公司的硬件对无线传感网RSSI定位算法进行了验证。通过节点间的收发数据,得到RSSI值,从而计算出盲节点与信标节点之间的距离,最后利用三边定位算法计算出盲节点的具体位置坐标值。在大型网络中,此方法仍然实用,此时盲节点会接收到多个信标节点发送的数据,计算出多个距离值,只需提取3个最小的距离即可计算出盲节点的坐标值。

关键字:无线传感网络  NesC语言  定位算法  RSSI定位算法 引用地址:基于TinyOS平台的RSSI定位系统设计与实现

上一篇:风河荣获2013年Confirmit客户满意度大奖
下一篇:风河扩充其业界领先VxWorks 平台的多核功能

推荐阅读最新更新时间:2024-05-02 22:38

无线传感器网络技术在人体参数采集中的应用
生理参数采集是指对人在特定环境下静止或活动时的某些生理参数进行测量、处理和传送。该技术应用领域广泛,如医疗、保健、体育、军事和服装舒适性评价等。生理参数采集的实现方法是将传感器置于人体相应部位,以有线或无线方式将传感器采集到的数据传送到终端进行处理。在使用中有线传输的方式有时会受到限制,所以有必要研究采用无线方式传输数据的方法。如在服装舒适性评价应用中,主要方法有:在真实环境下对人体表温湿度的测量;在模拟环境(人工气候室)下对真人或假人体表温湿度的测量,根据测量值给出主客观评价。在进行真实环境下人体穿着动态实验时,无线数据采集传输方式会带来很大方便。无线传感器网络技术发展迅速,将这一技术应用于人体生理参数采集在国内已有相关应用,如
[嵌入式]
OPPO发布高精度定位算法:可提供更准确的读数
OPPO 刚刚发布了自己新开发的高精度定位算法,它被称为 RTK(实时动态定位),它使智能手机导航在 1 米的距离半径内更加精确。这是一个高度准确的数字,可以在各种情况下提供更精确的读数。 根据 GizArena 的报告,新的定位技术基于载波相位测量。简单来说,该算法通过实时测量网络站点之间的距离来映射用户的位置,以提供精确的读数。该系统并非完全是新系统,因为它最初是应用于大型且复杂的工业系统级别。因此,该技术当时不适合智能手机。 但是现在,OPPO 开发出了一种高级算法,该算法使用来自现有智能手机传感器(包括加速度计和陀螺仪)的信息来提高定位精度,该系统的另一个好处是减少了信号干扰。 目前,OPPO 的专有技术正处于
[手机便携]
基于无线传感器网络的远程智能抄表系统设计
  无线传感器网络   无线传感器网络技术是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,是一组基于IEEE 802.15.4无线标准研制开发的有关组网、安全和应用软件方面的技术。它支持3种主要的自组织无线网络类型,即星状网、集群树状网和网状网三种拓扑。网状网是一种高可靠性的Ad Hoc网络,网状网的拓扑结构如图1所示。 图 1 WSN网状网络结构图   本文研究的基于无线传感器网络集中抄表系统采用网状网结构的无线传感器网络技术,实现用户采集器与集中器间的数据通信,通过CDMA/GPRS网络实现集中器与抄表中心之间的数据传输。   ZigBee技术   ZigBee是一种无线连接技术的商业化命名
[工业控制]
面向无线传感网络的构件化开发方法
引言 随着移动技术和互联网技术的飞速发展,移动网络将是下一代网络发展的大趋势。而移动网络的重要子网之一无线传感器网络能够大大扩展互联网的触角。由于无线传感器网络低功耗、低成本、分布式和资源有限等特点,使得开发无线传感器网络的相关协议成为无线传感器网络发展的关键技术因素之一。传统的软件开发方法显然已经不适合无线传感器协议的开发,而近来兴起的新的开发模式是基于构件化的软件开发方法。 基于构件化的软件开发(CBSD,comp onent-based software development)方法是一种可以提供软件复用性的开发方法。构件是用于进行软件开发、复用和软件组装的基本单元。在面向构件的技术里,一个应用软件不是通过大量的代码
[嵌入式]
基于TMS320C6711B DSP的中心定位算法设计
 地平仪是卫星姿态控制系统的关键子系统,其测量精度和可靠性直接关系到卫星姿态是否精确和稳定。本文利用TI公司的DSP芯片TMS320C6711B(简称C6711)实现了 中心定位 的相关算法。   1 实时图像处理系统的硬件构成   本系统以C6711为核心,辅助以现场可编程门阵列FPGA及高速A/D等器件构成实时高速数字图像处理系统。系统硬件框图如图1。该图像处理系统的工作原理是:由CCD采集输出的模拟图像信号,经过高速A/D将模拟信号转换为数字信号。数字图像信号在FPGA控制下,将数据不断输入至双口RAM。每当一帧图像扫描结束时,FPGA提供一个中断标志信号,触发DSP进行数据搬移,将双口RAM中的一帧图像通过C67
[嵌入式]
基于TMS320C6711B DSP的中心<font color='red'>定位算法</font>设计
基于MCL算法的无线传感网络节点定位技术
引言 无线传感器网络的应用中,位置信息是节点采集数据时不可缺少的部分,没有位置信息的监测信息通常是毫无意义的。确定事件发生的位置或采集数据的节点位置是无线传感器网络最基本的功能之一。为了能够提供有效的位置信息,随机布置的传感器节点在网络部署完成后必须能够确定自身所在的位置。一般的定位算法分类为基于距离定位算法和距离无关定位算法。基于距离的定位能够实现节点的精确定位,但往往对节点的硬件要求较高。出于硬件成本、能耗等方面的考虑,使用距离无关(Range-free)的节点定位技术可不需要测量节点之间的绝对距离或者方位,降低了对节点的硬件要求,但定位误差相应有所增加。 无线传感器网络的节点定位策略通常使用少量位置已知的信标节点.其
[工业控制]
基于MCL算法的<font color='red'>无线传感网络</font>节点定位技术
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved