zigbee-LQI、RSSI、丢包率等关系实验2.doc_第1页
zigbee-LQI、RSSI、丢包率等关系实验2.doc_第2页
zigbee-LQI、RSSI、丢包率等关系实验2.doc_第3页
zigbee-LQI、RSSI、丢包率等关系实验2.doc_第4页
zigbee-LQI、RSSI、丢包率等关系实验2.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

5.7 zigbee LQI、RSSI、丢包率等关系实验无线传感器网络环境的复杂多变对ZigBee网络的自组织性提出了挑战,在实际的网络部署中,链路质量指示(LQI)、信号强度(RSSI)、丢包率等都对网络的调度分配与优化具有重要意义,LQI、RSSI在ZigBee标准中已经有了良好的定义,而且在ZigBee芯片上都提供了直接的支持,通过Z-Stack协议栈能够方便的获得。5.7.1 实验目的与器材1)实验目的本实验将利用Z-Stack2007协议栈提供的API获取LQI、RSSI等数据信息,通过多组测试进行统计分析。由于无法模拟复杂的网络环境,主要在实验5.6的基础上,通过修改节点的发射功率以及增加干扰节点来影响统计的终端节点与协调器节点之间的通信,并由此分析发射功率对LQI、RSSI、丢包率等的影响,给实际的网络部署提供具有参考意义的数据信息,同时也可以利用现有代码将节点直接部署在需要建网的地方进行测试分析。2)实验器材u 3个CC2530开发模块(1个协调器节点,1个终端节点,1个干扰节点);5.7.2 实验原理与步骤1)LQI、RSSI介绍1 链路质量指示(LQI)LQI即链路质量指示,在ZigBee标准中规定的链路质量指示用于指示接收数据包的质量,为网络层或应用层提供接收数据帧时无线信号的强度和质量信息,它要对信号进行解码,生成的是一个信噪比指标。LQI的取值是0x000xff,分别表示接收到的信号最差质量(0x00)到最好质量(0xff)。2 接收信号强度(RSSI)RSSI(Received Signal Strength Indicator)是接收信号的强度指示,它的实现是在反向通道基带接收滤波器之后进行的。同时可以利用RSSI来进行统计信息进而实现定位功能。RSSI一般可从芯片直接获取:RSSI与LQI的关系:RSSI =-(81-(LQI*91)/255)RSSI与d(距离)的关系:2)程序流程1协议栈中,RSSI、LQI获取:在测试代码中主要通过sendReport()函数完成周期性的代码发送SampleApp_MessageMSGCB()完成在接收到数据包后进行的处理,而获得的数据包中本身就包含了RSSI和LQI值,通过osal_msg_receive()函数进行获取解析,并形成afIncomingMSGPacket_t结构体类型:typedef struct osal_event_hdr_t hdr; /* OSAL Message header */ uint16 groupId; /* Messages group ID - 0 if not set */ uint16 clusterId; /* Messages cluster ID */ afAddrType_t srcAddr; /* Source Address, if endpoint is STUBAPS_INTER_PAN_EP, its an InterPAN message */uint16 macDestAddr; /* MAC header destination short address */ uint8 endPoint; /* destination endpoint */ uint8 wasBroadcast; /* TRUE if network destination was a broadcast address */ uint8 LinkQuality; /* The link quality of the received data frame */ uint8 correlation; /* The raw correlation value of the received data frame */ int8 rssi; /* The received RF power in units dBm */ uint8 SecurityUse; /* deprecated */ uint32 timestamp; /* receipt timestamp from MAC */ afMSGCommandFormat_t cmd; /* Application Data */ afIncomingMSGPacket_t;因此在SampleApp_MessageMSGCB()函数中,通过调用传入的参数afIncomingMSGPacket_t *pkt即接收到的数据包,调用即可获得。为了方便的将RSSI、LQI数据获取并统计丢包率,将数据信息重新组织在从串口输出的包中,从协调器串口输出的数据格式为5个字节如下:RSSILQI序列号功率分隔符2丢包率和修改发射功率在处理按键事件中加入发送数据包数,通过一个统计发送的数据包数的变量即可。而发射功率的修改,同时通过LCD显示,可参照实验5.6。3干扰节点 在终端节点与协调器节点的通信测试统计中,加入干扰节点进行对比分析,在终端节点不同的发射功率下,调整干扰节点的发射功率,统计在干扰影响下LQI、RSSI、丢包率等值得变化情况。其中干扰节点只需不断发送数据包,而动态的调整发射功率可参照实验5.6来进行修改。3)实验步骤第一步,下载cc2530测试代码 在实验源码中,使用EnddeviceEB和CoordinatorEB;测试代码在“实验代码”文件夹下的“正常实验节点”中,覆盖到工程SampleApp的Source目录下。 通过仿真器链接ZigBee节点与PC机,根据EnddeviceEB和CoordinatorEB选择下载代码至ZigBee对应节点。第二步,启动设备调整发射功率,无干扰发送数据包 按下协调器的重启键,在lcd显示网络号,led3(黄灯)长亮时说明网络建立; 使用USB转串口线与协调器节点相连,打开串口助手,调整波特率为38400; 按下终端节点的重启键,等到led3(黄灯)长亮时说明已与协调器节点建立连接,通过按键sw3调整发射功率,通过按键sw4调整发送包数 终端节点选择好功率及发送包数后,按下节点的sw1,从协调器节点连接的串口助手上可观察到数据第三步,加入干扰节点测试 按照第一步中的步骤下载干扰节点代码,代码在“实验代码”文件夹下的“干扰节点”中。 下载EndDeviceEB到干扰节点,通过按键sw3调整发射功率,通过按键sw4调整发送包数 按下sw1发送数据包给协调器节点第四步,保存记录数据并分析 在无干扰情况下,发送功率为3,0,-1,-22对应0xF5,0xD5,0xC5,0x05情况下,发送数据包,通过串口助手保存显示文件有干扰情况下,发送功率为3,0,-1,-22情况下,发送数据包并记录。4)程序清单清单1 正常测试终端节点static uint8 sendDataIndex = 1;static uint8 sendDataNumber = 10; /发送序号static int txIndex = 3; /最大发射功率 3(1)在按键中添加自定义事件:if ( keys & HAL_KEY_SW_1 ) /* This key sends the Flash Command is sent to Group 1. * This device will not receive the Flash Command from this * device (even if it belongs to group 1). */ /设置周期发送事件 osal_set_event(SampleApp_TaskID,MY_DATA_SEND);(2)设置发送功率if ( keys & HAL_KEY_SW_3 ) /发射功率从3 -22,这里只测试 3 0 -1 -22 switch(txIndex) case 3: txIndex = 0; break; case 0: txIndex = -1; break; case -1: txIndex = -22; break; case -22: txIndex = 3; break; macPhyTxPower = txIndex; macRadioSetTxPower(macPhyTxPower); #if defined( LCD_SUPPORTED ) HalLcdWriteScreen( Change RF Poewr, Test ); HalLcdWriteValue(macPhyTxPower,16,HAL_LCD_LINE_2); #endif (3)/更改发送数量 if ( keys & HAL_KEY_SW_4 ) switch(sendDataNumber) case 10: sendDataNumber = 100; break; case 100: sendDataNumber = 250; break; case 250: sendDataNumber = 10; break; #if defined( LCD_SUPPORTED ) HalLcdWriteScreen( Change Data Numbers, Test ); HalLcdWriteValue(sendDataNumber,10,HAL_LCD_LINE_3); #endif 清单2 终端节点数据发送/* * 事件名 MY_DATA_SEND * 描述 根据MY_SEND_DATA_DELAY定义的时间间隔,利用osal_start_timerEx函数* 定时的发送数据 */if( events & MY_DATA_SEND ) sendReport(); if(sendDataIndex sendDataNumber) osal_stop_timerEx(SampleApp_TaskID,MY_DATA_SEND); sendDataIndex=1; else osal_start_timerEx( SampleApp_TaskID, MY_DATA_SEND, MY_SEND_DATA_DELAY ); 调用的自定义函数sendReport:void sendReport(void) uint8 buffer5; /send data buffer0 = (uint8)(SampleAppFlashCounter+); buffer1 = LO_UINT16( SAMPLEAPP_FLASH_DURATION ); buffer2 = HI_UINT16( SAMPLEAPP_FLASH_DURATION ); buffer3 = sendDataIndex+; buffer4 = (uint8)txIndex; if ( AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc, SAMPLEAPP_FLASH_CLUSTERID, 5, buffer, &SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) = afStatus_SUCCESS ) 5.7.3 实验结果测试说明:测试环境为实验室东北角到西南角桌子之间(约5m),终端发送,协调器接收,终端发送时间间隔为400ms,每次发送100个包,有效载荷为20个字节。(功率单位为dBm)1. 不同发射功率情况下,丢包率的变化结果说明:(1)在无干扰情况下,终端发送间隔400ms时,在不同的发射功率下,基本无丢包;(2)在干扰节点的发射功率为3dBm时,终端的发射功率越小,丢包越严重;如图,即使终端的发射功率为3dBm时,也有丢包的情况;(3)在干扰节点的发射功率为-22dBm时,终端的发射功率越小,丢包越严重;如图,但是在终端的发射功率为3和0dBm时,基本没有丢包。2. 在无干扰的情况下,不同发送功率下LQI比较结果说明:(1)LQI的计算:LQI值越大,一般表明接收包的信号品质越好;(2)在终端采用3dBm这样大的发射功率时,能获得大的LQI值,而功率为-1dBm时,部分LQI值为0;(3)发射功率为0dBm时,LQI值波动相对小,而其他的波动则较大。3. 在无干扰的情况下,不同发送功率下RSSI变化结果说明:(1)RSSI值计算:这里显示的RSSI绝对值,该值越小,表示接收到的信号越强。(2)终端发射的功率越大,RSSI绝对值越小,发射功率越小,RSSI绝对值越大(3)当发射功率为0dBm时,RSSI波动最小4. 在有干扰的情况下,终端不同发送功率下LQI变化实验说明:LQI值为每组(100个数据包)的平均值,终端发射功率选为3 、0 、-22dBm,干扰节点的发射功率为3、-22时,LQI值变化的对比结果说明:(1)在发射功率与干扰功率同为3dBm时,干扰功率大,接收端的LQI值减小幅度大于干扰功率小时;(2)在发射功率为0dBm时,干扰节点不同的发射功率对接收端的LQI影响不大5. 在有干扰的情况下,终端不同发送功率下R

温馨提示

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

评论

0/150

提交评论