基于IEEE 802.15.4 协议标准的星型定位网络.doc_第1页
基于IEEE 802.15.4 协议标准的星型定位网络.doc_第2页
基于IEEE 802.15.4 协议标准的星型定位网络.doc_第3页
基于IEEE 802.15.4 协议标准的星型定位网络.doc_第4页
基于IEEE 802.15.4 协议标准的星型定位网络.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.1. 基于IEEE 802.15.4 协议标准的星型定位网络(1) 实验目的本实验是在基于Gainz教学开发平台的定位系统上操作完成的。在此过程中,我们进一步地在实践中证明了定位实验在Gainz平台上的可行性(从理论上讲是可以的)。而我们实验的目的,简要而言就是在一个基于IEEE 802.15.4协议标准的星型网络中,通过Coordinator取得RSSI(接收信号强度指示器)的值,结合参考节点的位置坐标来大致判断出待测End_device的位置。(2) 实验设备硬件: PC机一台GAINZ教学开发平台一套软件: WINAVR 20050214AVRStudio V4.07串口调试助手(3) 实验内容由于读者已在前面系统学习过IEEE802.15.4协议规范的内容,并做了大量实验进行验证,这里就不再对这方面内容进行叙述了,我们这里的定位实验是在前面实验的基础上,通过串口调试助手打印出Coordinator的RSSI的值,并结合参考End_device和Coordinator的位置坐标来判断出待End_device的大致位置(这里的实验是根据二维的情况设置的)。代码以库文件形式给出,同前面的实验一样,其中的Main.c文件需要读者自己编写。(4) 实验原理本定位网络是基于802.15.4协议规范搭建的,网络环境由一个Coordinator,若干参考End_device以及一个待测End_devica组成。在实验开始前,我们会先测量出各节点的电池电压看看是否相同,这里建议各节点都采用新电池供电,避免由于电池电压的不同给实验结果带来偏差。然后将除待测节点外的所有节点的位置坐标进行详细记录,这样,我们就做好实验开始之前的准备工作了。本实验的原理,就是通过串口调试助手打印出Coordinator收到End_device的帧时其RSSI(接收信号强度指示)的值,通过比较收到的来自各参考End_device的RSSI值与待测End_device的RSSI值,以及在实验前记录好的节点位置坐标,大致判断出待测End_device的位置。(5) 实验预习要求读者应做过前面的“基于IEEE 802.15.4 协议标准的星型网络”实验,了解其组网和通信的详细过程。本实验是完全基于IEEE 802.15.4 协议标准的星型网络做的定位系统,所以这一块的通信过程读者务必熟悉。(6) 实验步骤(1) 启动WINAVR,使用programmer Notepad 新建两个工程分别为Coordinator、End_device。(2) 将光盘中与此实验中相应的设备源代码和库文件包含进相应的工程。(3) 工程中的Main.c文件需要读者自己参考后面的附件Main.c文件编程描述写出这块代码。(4) 使用Mfile 生成Makefile文件,分别保存在相应的工程文件夹中。(5) 编译连接工程,生成可执行文件。(6) 使用编程器将得到的.hex文件下载到相应的GAINZ实验板flash中。(7) 将Coordinator节点通过串口与PC相连,启动串口调试助手,打开Coordinator,注意其LED灯的反应(这在前面的实验中已有过说明),当Coordinator开始广播信标帧时,依次打开参考End_device与待测End_device(这里我们使用4个参考End_device)。以第一个加入网络的End_device为例,在其加入的过程中串口调试助手会打印出如下信息:ffe3ffe7ffe7ffe4This RSSI is from End_device node 0x1201. 这里的ffe3、ffe7、ffe7、ffe4的低8位便是RSSI的值,为什么是4个呢?那是因为在End_device加入网络时,Coordinator一共要收到4个帧,按顺序分别为association_request、data_request、ack以及数据帧,由于我们是在接收中断处打印的RSSI值,所以每收到一个帧都会打印出一个RSSI的值,为了实验的准确性,一般是等到网络稳定时,即所有End_device都已加入到Coordinator所发起的网络中,再开始记下来Coordinator收到来自各End_device的数据帧时的RSSI值。即一般有如下类似信息出现时,才可作为实际测量值记录下来。ffe2This RSSI is from End_device node 0x1201.ffebThis RSSI is from End_device node 0x1202.ffeaThis RSSI is from End_device node 0x1203. 这里的信息表示Coordinator一次收到了来自于End_device0x1201、0x1202以及0x1203的数据帧时其RSSI值,取低八位即e2、eb和ea。因为这里是从16位寄存器RSSI中取值,但RSSI的值放在低8位,高8位存放的是关于CCA的属性值。 通过最后得到的RSSI值,可通过以下计算方法得出收到信号强度的近似值:先将取到的RSSI值,再将其取补码,用十进制数表示,最后加上偏移量45dBm,即可得出。将得出的4个来自于参考End_device与一个来自于待测End_device的信号强度近似值进行比较,结合各参考End_devicd的位置坐标,即可大致判断出待测End_device的位置坐标了。 注意在第(3)步中,代码工程里需要使用库,相应的makefile文件需要做相关修改,下面以Coordinator节点的makefile作说明。在连接参数设置(# Linker flags.)一项中将库加入,具体代码如下:“LDFLAGS += -LF:TESTMutliHopcoordinator lCoordinator”,在这里是假设库存放在“F:TEST802.15.4 coordinator”目录下,库名字为“libCoordinator.a”(多跳实验中Coordinator节点的库文件),需要注意的是-L后紧接着(中间没有空格)的是库所在目录,l(小写的L)后面紧跟着库名,并且前缀lib和后缀.a不需要。实验所有的库都应按此规则加入makefile中。 在前一个节点加入网络之后再打开下一个节点,如果一开始加不进去也不用着急,反复将节点关闭、打开几次即可。(7) 实验举例在这里我们给出一个实验例证,如上所阐述,我们将使用一个Coordinator、4个参考End_device以及一个待测End_device来完成这个实验。在实验开始之前,应尽量使用新电池,由于电池的电量减少会直接导致信号能量降低,从而可能使实验结果存在较大误差,一旦各节点电池供电情况相同,那么影响信号能量的就只能是距离了。当然,环境的变迁、人的走动都会对定位准确性有所影响,在实验中,我们尽量避免外界的干扰。有读者会问:这不就失去现实意义了么?我们前面已经提到了一些提高定位精确度的方法,而这些方法都是有助于抵消外界的一些干扰因素的。但由于一些客观条件限制以及想尽量高的保证准确性,我们选择在一个长期比较稳定的“理想”环境中做这个实验。在实验中,按如下坐标位置安放各节点:(2,1)1(3,3)4#(5,2)?2(3,5)3#(6,4)如上图所示:白点表示Coordinator,黑点表示参考End_device(带有序号),红点表示待测End_device。坐标已在图中大致说明,单位为米。这里需要说明一点,Coordinator与所有End_device的信号发射功率都设为1f(max)。下面开始实验。依次打开Coordinator、各参考End_device(按1、2的顺序),最后打开待测End_device,保证所有节点都已加入网络。待网络稳定之后,开始记录串口调试助手上打印出来的Coordinator接收到来自各End_device数据帧的RSSI值。有如下记录(0x1201、0x1202、0x1203、0x1204、0x1205分别为1、2、3、4参考End_device以及待测End_device的短地址,所作的记录是经过计算的一段时间之内的平均值):ffddThis RSSI is from End_device node 0x1201.ffd6This RSSI is from End_device node 0x1202.ffd3This RSSI is from End_device node 0x1203.ffd9This RSSI is from End_device node 0x1204.ffdaThis RSSI is from End_device node 0x1205. 针对以上的记录,可以通过实验步骤中已经提到的方法算出信号能量的近似值,按从上到下的顺序,依次为:80dBm、87dBm、90dBm、84dBm和83dBm,基本符合实际情况。当然,本身所采集的RSSI值也是有限的,所以算出来的这个近似值的精确度也有待提高。接下来我们将采用下面的计算方法得出的位置坐标。 首先,以一般情况为例,我们设有一个Coordinator、n个参考End_device以及一个待测End_device,令S(S1,S2,Sn),表示Coordinator收到的来自各个参考End_device的信号强度,再令P为Coordinator收到的来自待测End_device的信号强度,我们定义Coordinator收到的来自于每个参考End_device与待测End_device的能量差值Ei为:,(i1,2,n) (1) 再给出坐标计算公式,令待测End_device的位置坐标为(x,y),每个参考End_device的位置坐标为(xi,yi),其中i1,2,n。则有: , (2) 公示中的wi是权重,一般以下面的形式给出: , (3)根据以上的公式,结合前面的实验数据,便可以得出一个测算出来的待测End_device的位置坐标。由此可见,这里是根据能量差值的大小来判断各参考End_device对待测End_device位置的影响力大小的,即距离待测End_device越近,自身的位置坐标对最后结果的影响力就越大,反之就越小。将前面实验中所获得的数据代入到公式中,可得E13dBm、E24dBm、E37dBm、E41dBm,分别根据(3)式得出各自的权重,最后根据(2)式得出最终的待测End_device近似坐标。这里直接给出这次实验的计算结果(4.7,2.3),与待测End_device实际位置(4,3)差距不大。 这种方法便是在RFID定位技术中所采用的“权重法”。这里要说明的是,我们只是采用RFID这一套计算方法,而二者的原理还是有些区别,首先我们采用的是基于IEEE 802.15.4协议标准的星型网络,网络中只有一个相当于RFID技术核心读卡器 的Coordinator,后者在RFID定位系统中可以有多个,从而通过不同读卡器上得到的RSSI值进行计算,得以提高精度。另一方面,RFID定位系统中可以放置大量的标签作为参考点,从而在选择代入计算的参考标签时有很大的余地。综上所述,想要提高精度,完全套用RFID的东西是不可行的,只能在尽量精确地计算信号强度值的同时,看能否从其他技术中获得新的解决途径,这也是我们今后一段时间的探索方向。(8) 实验参考程序与前面实验相同的程序这里不再给出,主要是给读者看一下打印收到信号RSSI值的部分代码。程序清单 Error! No text of specified style in document.1基于IEEE 802.15.4 协议标准的星型定位网络 Coordinator部分参考程序 /* 名 称:cc2420_fifopintr()* 功 能:FIFOP中断处理中转* 入口参数:无* 出口参数:SUCCESS */inline uint8_t cc2420_fifopintr(void) if (!OS_READ_CC_FIFO_PIN() /printf(收到一个包,但芯片缓存 溢出n); cc2420_readreg(0x3F); rfpackernum=0; cc2420_sendcmd(0x08); cc2420_sendcmd(0x08); return SUCCESS; rfpackernum+; receive_timestamp=get_timestamp32(); /printf(=succeed received a physical packet=n); if (cc2420_rxbufuse1) /printf(nno available ram buffern); return SUCCESS; else cc2420_rxbufuse+;cc2420_readrxfifo(); return SUCCESS; /* 名 称:cc2420_RSSI_info ()* 功 能:取得收到的信号RSSI值* 入口参数:无* 出口参数:无 */void cc2420_RSSI_info(void) RSSI_STATE temp;temp.rssivalue=0;temp.rssivalue=(int8_t) (cc2420_readreg(cc2420_RSSI)&0x00ff

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论