无线传感器网络实验报告.docx

上传人:b****8 文档编号:13079124 上传时间:2023-06-10 格式:DOCX 页数:11 大小:883.17KB
下载 相关 举报
无线传感器网络实验报告.docx_第1页
第1页 / 共11页
无线传感器网络实验报告.docx_第2页
第2页 / 共11页
无线传感器网络实验报告.docx_第3页
第3页 / 共11页
无线传感器网络实验报告.docx_第4页
第4页 / 共11页
无线传感器网络实验报告.docx_第5页
第5页 / 共11页
无线传感器网络实验报告.docx_第6页
第6页 / 共11页
无线传感器网络实验报告.docx_第7页
第7页 / 共11页
无线传感器网络实验报告.docx_第8页
第8页 / 共11页
无线传感器网络实验报告.docx_第9页
第9页 / 共11页
无线传感器网络实验报告.docx_第10页
第10页 / 共11页
无线传感器网络实验报告.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

无线传感器网络实验报告.docx

《无线传感器网络实验报告.docx》由会员分享,可在线阅读,更多相关《无线传感器网络实验报告.docx(11页珍藏版)》请在冰点文库上搜索。

无线传感器网络实验报告.docx

无线传感器网络实验报告

无线传感器网络实验报告

Contikimac协议与xmac协议的比较

1.简介

无线传感器网络(wirelesssensornetworks,WSN)节点由电池供电,其能力非常有限,同时由于工作环境恶劣以及其她各种因素,节点能源一般不可补充。

因而降低能耗、延长节点使用寿命就是所有无线传感器网络研究的重点。

 

WSN中的能量能耗主要包括通信能耗、感知能耗与计算能耗,其中通信能耗所占的比重最大,因此,减少通信能耗就是延长网络生存时间的有效手段。

同时,研究表明节点通信时Radio模块在数据收发与空闲侦听时的能耗几乎相同,所以要想节能就需要最大限度地减少Radio模块的侦听时间(收发时间不能减少),及减小占空比。

 

传统的无线网络中,主要考虑到问题就是高吞吐量、低延时等,不需要考虑能量消耗,Radio模块不需要关闭,所以传统无线网络MAC协议无法直接应用于WSN,各种针对传感器网络特点的MAC协议相继提出。

现有的WSNMAC协议按照不同的分类方式可以 

分成许多类型,其中根据信道访问策略的不同可以分为:

X-MAC协议

X-MAC协议也基于B-MAC协议的改进,改进了其前导序列过长的问题,将前导序列分割成许多频闪前导(strobedpreamble),在每个频闪前导中嵌入目的地址信息,非接收节点尽早丢弃分组并睡眠。

 

X-MAC在发送两个相邻的频闪序列之间插入一个侦听信道间隔,用以侦听接收节点的唤醒标识。

接收节点利用频闪前导之间的时间间隔,向发送节点发送早期确认,发送节点收到早期确认后立即发送数据分组,避免发送节点过度前导与接收节点过度侦听。

 

X-MAC还设计了一种自适应算法,根据网络流量变化动态调整节点的占空比,以减少单跳延时。

 

优点:

 

X-MAC最大的优点就是不再需要发送一个完整长度的前导序列来唤醒接收节点,因而发送延时与收发能耗都比较小;节点只需监听一个频闪前导就能转入睡眠。

 

缺点:

 

节点每次醒来探测信道的时间有所增加,这使得协议在低负载网络中能耗性比较差。

而且分组长度、数据发送速率等协议参数还需进一步确定 

X-MAC原理图如图3所示:

ContikiMAC协议

一.ContikiMAC协议中使用的主要机制:

1.时间划分

2.快速睡眠

3.锁时优化

ContikiMAC只使用了异步的机制,没有标识信息也没有附加的消息头,它的数据也都就是普通的链路层消息。

时间划分:

 

ContikiMAC协议具有一个基于传输过程中精确时间度量的、能量高效的唤醒技术。

的唤醒技术利用一种价格低廉的CCA(空闲信道检测)机制来实现这种机制使用无线电收发器的RSSI(接收信号强度指示值)来判断指定信道的状态。

 

ContikiMAC中的时间划分必须满足一系列的限制。

如图4:

 

图4ContikiMAC中的时间划分

要求:

ta+td

ti:

每次数据传输之间的时间间隔 

tr:

进行一次稳定的RSSI指示所需要的时间 

tc:

两次CCA检测之间的时间间隔 

ta:

手段数据包与发送ACK消息的时间间隔 

td:

从接收节点那里成功检测到一个ACK消息所需的时间 

在IEEE802、15、4标准下,不等式中一些变量被固化,如IEEE802、15、4标准定义的ta值为12个时间点我,在802、15、4中,一个时间单位就是4/250ms、然后td=40/250,tr就是由cc2420无线收发器的特性决定的,tr=0、192ms,不等式变为:

 

0、352

给出了ts的下限,0、736ms(0、352+0、384),这也为我们的能传输的最小报文长度设了限制。

对其它参数,contiki系统中使用时间参数配置为:

 

ti=0、4mstc=0、5msts=0、884ms

快速睡眠:

 

contikiMAC中的并不实质性地检测数据传输,而只就是检测无线信道的信号强度就是否在特定的门限值之上。

 

如果一个邻居节点在向当前的接收节点发送数据,接收节点应该保持唤醒状态来保证接收到完整的数据包,然后需要发送一个回执。

检测到该数据包的其它节点则可以快速切换回睡眠状态。

然而,潜在的接收节点并不能立即回去睡眠,因为它们必须保证接收到完整的数据包。

在检测之后,最安全的保持唤醒状态的时间就是tl+ti+tl这里表示最长数据包所需的传输时间。

 

当由于检测到错误的无线噪声而唤醒时,的快速睡眠机制使潜在的接收节点可以早些进入休眠状态。

这种优化机制利用了中的特定传输模式。

1.若CCA检测到活动,但信道活动状态的时间比tl还要长,说明CCA检测到的就是噪声,节点返回睡眠

2.如果信道活动状态过程之后有一段比ti更长的静止,则返回睡眠。

若活动状态后有一段正确的静止长度,但接收节点检测不到任何数据报文头,返回睡眠。

 

快速睡眠如图5所示:

 

图5快速睡眠

锁时优化(phase-lock):

 

该机制类似于Wise-MAC,假设传感器网络中的每个接收节点都有一个周期的、稳定的唤醒时间间隔,则发送节点可利用接收节点的唤醒时间来优化传输过程,这就就是锁时优化机制。

 

当发送节点检测到从接收节点返回的回执消息时,它会记录下检测到的时间,并以此判断出接收节点的唤醒时间。

由于接收节点必须保持唤醒状态来保证完整地接收报文,则发送节点可假设收到消息意味着发送节点在接收节点唤醒状态的时间窗内成功向其发送了一个数据包,由此发送节点便可以知道其唤醒时间。

在发送节点了解其唤醒时间之后,发送节点便可以在接收节点应该就是唤醒状态的时候向其传输数据包。

 

Cooja仿真实验

1.我分别测试4、8、12、16个节点时,contikimac与xmac在能量消耗与丢包率两方面的特点。

2.以下就是4个节点时的截图:

Contiki

Xmac

3.以下就是八个节点的截图:

Contiki

xmac

4.以下就是12个节点时的截图:

Contiki

Xmac

5.以下就是16个节点时的截图:

contiki

Xmac

6.将文件中的数据导出,然后用下列程序分析:

1. (void)setDownloadProgressBlock:

(void (^)(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead))block;     方法,在block中计算数目。

  

[html] viewplain copy

1.在计算sending与got数目需要自己写一个downTask类,负责记录。

downTask主要代码来源网点击打开链接 或  

[html] viewplain copy

1.

 Arial, Helvetica, sans-serif;">connectionOperation = [[AFURLConnectionOperation alloc] initWithRequest:

request];  

[html] viewplain copy

1.    [connectionOperation setDownloadProgressBlock:

^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {  

2.//        NSLog(@"bytesRead:

%zi", bytesRead);  

3.//        NSLog(@"totalBytesRead:

%zi", totalBytesRead);  

4.//        NSLog(@"totalBytesExpectedToRead:

%zi", totalBytesExpectedToRead);  

5.          

6.        weakSelf、downTask、totalReadPeriod += bytesRead;  

7.        weakSelf、downTask、totalRead += bytesRead;  

8.        NSDate *currentDate = [NSDate date];  

9.        if ([currentDate timeIntervalSinceDate:

weakSelf、downTask、oldDatePeriod] >= 1) {  

10.            double speed = [weakSelf、downTask getSpeedWithDate:

currentDate];  

11.              

12.            [weakSelf、gaugeView setGaugeValue:

speed animation:

YES];  

13.            NSString *unit = nil;  

14.            if (speed > RATIO) {  

15.                unit = @"M";  

16.                speed = speed / RATIO;  

17.            }  

18.            else {  

19.                unit = @"KB";  

20.                speed = speed;  

21.            }  

22.            NSLog(@"current speed:

%f %@", speed, unit);  

23.            weakSelf、labSpeed、text = [NSString stringWithFormat:

@"%、2f %@", speed, unit];  

24.            //NSLog(@"totalBytesRead:

%zi", totalBytesRead);  

25.        }  

26.          

27.    }];  

7.之后我发现其实不用程序直接用记事本计数就可,并且还有很多简便方法。

8、实验得到的结果数据如下:

9、能量消耗部分截图、

10、总结

实验描述了无线传感器网络协议的ContikiMAC与xmac的区别。

本次试验表明,Sink节点的能量消耗比其她的节点的要大,平均消耗并没有很大变化;随着节点的增多,两个协议的丢包率都增高,表现优于contiki似乎要优于xmac,所以细节与实验论证MATLAB绘图有些许瑕疵,但就是实验的大体与步骤都做了一遍,实验锻炼了动手能力,感觉这门课有趣。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2