- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于TOSSIM无线传感器网络仿真研究
精品论文 参考文献
基于TOSSIM无线传感器网络仿真研究
朱有忠(吉林省统计局 吉林 吉林 132000)
中图分类号:TP393.0 文献标识码:A
摘要:本文使用TOSSIM实现TinyOS程序的模拟仿真。在分析完TOSSIM的编译器、基本结构、事件处理机制后,对TOSSIM的使用也做了详细的描述。最后,分析了TinyViz ——TOSSIM的可视化工具的基本组成以及TinyViz的插件结构。
关键词:无线传感器网络,TinyOS,nesC,TOSSIM,仿真
一、前言
无线传感器网络(WSN)日新月异,各种网络方案和协议日趋复杂,网络规模日趋庞大,对网络研究人员而言,掌握网络仿真的重要性是不言而喻的。WSN仿真能够在一个可控制的环境里研究WSN应用,包括操作系统和网络协议栈,能够仿真数量众多的节点,能够观察由不可预测的干扰和噪声引起的难以琢磨的节点间的相互作用,获取节点间详细的细节,从而提高节点投放后的网络成功率,减少投放后的网络维护工作。
在传感器网络的实际运用中,常常会涉及到很多节点,同时这些节点间的布局会比较复杂,而各个节点都有其相应的算法和数据处理,处理这么多节点的工作量让人都感到畏惧,并且节点在运行过程中可能会遇到许多潜在的错误。为了能让无线传感器节点更好的工作,提前发现其在运行时的内部错误,使得仿真器的出现很具有现实意义。
TinyOS的基于组件的模型让我们容易的改变小部分底层的组件来实现硬件平台模拟。这种事件驱动的执行模式可以开发成一种非常有效的基于事件驱动的模拟器,然后整个程序的编译过程可以使用是在模拟器的存储和本地指定集来实现了。因为大多数节点的资源都是非常小的,我们可以在模拟器的内存空间上模拟许多节点。设置适当的模拟层可以准确的捕获TinyOS程序的行为和他们之间所发生的联系。但大多模拟器存在扩展性与有效性的问题,这里我们就用TOSSIM来解决这些问题。[1~2]
(一)TOSSIM
1.TOSSIM简介。TOSSIM(TinyOS Simulator)是TinyOS传感器网络的离散事件模拟器,也是用nesC语言编写的。理论上它可以模拟复杂度为O(n?㏒(n))的节点,但是实验的结果表明其最多只能模拟1000个节点。TOSSIM可以直接从TinyOS的程序代码中编译执行。当用户想使用TinyOS的程序时,可以直接把TinyOS的组件图编译进TOSSIM中,接着就可以在PC机上运行了。(编译时只需要改变make目标:使用make pc代替make mica等)。
目前大多数的网络模拟器都适合TinyOS。传统的网络模拟器通常把注意力放在模拟大范围的网络连接协议上,例如:ns-2在数据包程度上模拟传感器网络的,它记录了详细的节点信息和具体的连接描述。相反,在TOSSIM中的节点都运行相同的程序代码。TOSSIM是在位粒度(bit granularity)上模拟网络的行为,这种层次的模拟对于研究TinyOS在数据链路层的行为很有帮助。[3]
2.TOSSIM的编译器。为了能直接把TinyOS的组件图编译后的结果放入TOSSIM模拟器中执行,TOSSIM对ncc(nesC的编译器)进行一下修改。在TinyOS的内存模块中,许多组件框架组成了整个程序。在TOSSIM中,使用组件数组来代替原来的那些组件。所有组件的变量都参照当前运行的组件的变量数组。
TOSSIM提供了新的物理抽象层,在替换了TinyOS的硬件部分后,TOSSIM可以直接编译TinyOS的程序代码。它把TinyOS的硬件中断模拟成离散的事件,当有TinyOS中有硬件中断发生时,TOSSIM事件队列就将此中断转变成TOSSIM内部的模拟事件来处理。中断后的其它执行与TinyOS中的源程序是一样执行的。
TOSSIM中的通信服务可以让程序通过TCP的套接字与TOSSIM进行连接,来观察模拟器的运行。程序还可以收到更高层的信息,例如数据包的接收与传送或者是应用层的事件。
4.TOSSIM的事件处理模式。在TOSSIM的核心处有个模拟器事件队列。中断被模拟成模拟器事件,模拟器事件是不同于TinyOS的事件。一个模拟器事件在硬件抽象组件中可以调用中断句柄,中断句柄唤醒TinyOS事件并且调用TinyOS命令。这些TinyOS事件和命令还可以发送任务,然后唤醒更多的模拟器事件,使程序向前执行。
让我们看一下TOSSIM中是怎么具体执行这些事件的!
TOSH_run_task一直查询直到任务队列为空为止,当任务队列为空时,CPU进入休眠状
文档评论(0)