微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 无线传感网络(WSN)设计经典参考实例

无线传感网络(WSN)设计经典参考实例

时间:05-03 来源:本站整理 点击:

信号强度P(d)求出d 。

  然而,信道因受到多径衰减(Multi-path Fading)和非视距阻挡(Non-of-Sight Blockage)的影响而具有时变性,在特定环境中,严重偏离上述模型,通过接收到的信号强度估计出的距离d 有很大的误差。

  因此,理想状态下RSSI 值和距离的关系不适用本系统。本文必须找到RSSI 值和距离在实验环境下的函数关系,这是本文所作工作的一个重点也是难点。通过研究分析,本文设计了获取RSSI 和距离在实验环境下关系的实验,实验方案如图1 所示。

  

  图1 RSSI 和距离关系获取实验方案

  距离为d 时,三个TestNode 节点分别向RevNode 发送40 个数据包,RecvNode 节点提取出接收到的120 个数据包中的RSSI 值并求其平均值,如此实验重复10 次,再对所有平均值求均值,如图2 所示。

  

  图2 距离为1米时2号锚节点的RSSI值

  由此易知,每个距离d 就对应着一个RSSI 均值,对所有数据汇总后,得到如下RSSI和距离之间的关系如图3 所示。

  

  图3 距离和RSSI之间的关系

  1.2 曲线拟合

  本文利用曲线拟合中的指数拟合和多项式拟合的办法找函数关系。通过一系列实验并计较得到三次多项式拟合效果最好。拟合得到的函数表达式如式2 所示。

  

  图4 所示为三次多项式与指数拟合得到的距离与RSSI 关系对比图,从图中可以明显看出,利用三次多项式拟合出来的曲线和实际情况更吻合。

  

  图4 三次多项式与指数拟合得到的距离与RSSI 关系对比

  1.3 校正处理

  无线传感器节点因受环境因素较大,故在用接收到的RSSI 值进行计算前因先进行RSSI值校正处理。首先,设定RSSI 取值的最小和最大临界值,当实验测量到的RSSI 值远远小于最小临界值则令其等于最小临界值,或者RSSI 远远大于最大临界值时则令其等于最大临界值,如果RSSI 和临界值相差不大,则根据从实验过程中得到的经验对该RSSI 值进行适当校正,使该RSSI 值回到临界区域内部。

  1.4 滤波

  第一步:设定RSSI 的期望值,如式(3)式所示:

  

  其中, R 0 是预期的RSSI 值,R 是实际得到的RSSI 值, R 1 是前一次得到的RSSI 值,R2是在此之前的第二次得到的RSSI 值,α、β、γ 分别是R, R1 , R2 在期望值中所占的权重,分别将其设置为0.6,0.25,0.15。

  第二步:设定阈值,阈值是在大量实验基础上进行总结再设定的,该系统中设为0.5。

  第三步:除噪,若期望值0 R 和当前值R 差的绝对值小于设定的阈值,就让令上一次的值作为当前值,R= 1 R ,同时2 R = 1 R;若期望值和当前值差的绝对值已经大于阈值,则令期望值作为当前值,R= R 0 ,同时, R2 = R 1 , R 1 = R 0 ;实验结果表明:通过以上滤波处理,不仅减小了节点不稳定带来的轨迹震荡,节点的轨迹变化曲线更加趋于平缓。

  1.5 串口数据提取

  在串口通信协议中一个串口通信数据帧的格式如图5所示:

  

  图5 串口通信数据帧的格式

  Sync 是一个数据帧的起始和结束标志符,用0x7E 来表示该标志符。紧跟在起始Sync后面的是Type标志符。CRC用来表示冗余校验码,其中,参与冗余校验的字段为TOS MsgHeader 和Payload,这两个字段存放的是网关收到的一个传感器节点发出的完整的路由包。

  最后面的一个Sync 用来表示帧的结束。

  在实验过程中,串口接收到的原始数据如图6 所示:

  

  图6 串口原始数据

  通过对上表中数据分析得知:表中第一条数据中0x7E 表示一个数据帧的起始,0x42 表示一个数据帧的Type,不要求接收方对发送方回复一个确认包。从第二行第五个数据开始时对上层应用有用的字段,在进行上层开发时,可以从该处提取出串口中的数据,其中0x0100,表示数据包的ID 号,紧跟其之后的是两个字节0x3A00 表示接收到的数据包的序列号,接下来的0x 0200 表示锚节点的ID 号为2,0x0500 表示Move 节点的ID 号为5,0x0800 表示从2 号锚节点获取到的5 号Move 节点的RSSI 值为8, 接下来的0x 0300 表示锚节点的ID号为3,0x0500 表示Move 节点的ID 号为5,0x0C00 表示从3 号锚节点获取到的5 号Move节点的RSSI 值为0x0C, 接下来的0x 0400 表示锚节点的ID 号为4,0x0500 表示Move 节点的ID 号为5,0xF800 表示从4 号锚节点获取到的5号Move节点的RSSI值为0Xf8,接下来的F207FE 为CRC 字段,最后一个7E 为数据帧的结束字段。通过以上分析,可以快速从串口通信数据中提取所需的字段,为上层开发奠定基础。

  2 系统设计

  2.1 系统架构

  系统由底层(硬件层),中间层(串口消息解析层),上层(数据处理层)系统的构架如图7所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top