基于MantisOS的无线传感器网络应用的研究_段飞霞

基于MantisOS的无线传感器网络应用的研究_段飞霞

2023年7月13日发(作者:)

#计算机与自动化技术#电子工程师2006年6月基于MantisOS的无线传感器网络应用的研究段飞霞1,王汝传1,2,黄海平1,孙力娟1(1.南京邮电大学计算机学院,江苏省南京市210003;2.南京大学计算机软件新技术国家重点实验室,江苏省南京市210093)摘 要:无线传感器网络具有很强的应用相关性,每一个应用程序开发都是基于特定的操作系统平台并针对具体的应用进行开发。为了更好地在MantisOS平台上开发应用程序,提出了一个Mant-isOS开发应用程序的模型,并应用于无线传感器网络防火监控应用程序的开发,取得了较好的效果。关键词:无线传感器网络;MantisOS操作系统;防火监控中图分类号:TP393.02;TP316供了丰富的API,例如线程创建、设备管理、网络传输等。利用这些API,便可组成功能强大的应用程序。0 引 言无线传感器网络是一种由大量微型、廉价、能量有限的多功能传感器节点组成的,可协同工作和面向分布式自组织网络的分布式计算系统[1]。针对无线传感器网络的特殊性,科罗拉多大学的几名研究人员开发了传感器节点的操作系统)))MantisOS。MantisOS是一个多模型系统[2],提供多频率通信,适合多任务传感器节点,具备动态重新编程等特点。与现在流行的TinyOS操作系统(支持nesC语言)相比,MantisOS支持C语言,无需新的编程语言的学习。另外,MantisOS基于线程管理模型开发,提供线程控制API(应用编程接口)[3],而TinyOS是基于事件驱动的,因此,对于多任务应用程序开发,前者更加灵活。目前,对MantisOS的研究理论很多,但都是针对MantisOS系统特性进行的研究,在具体应用上仍然没有产生一个详细的应用开发模型。[3]图1 MantisOS体系结构

在MantisOS上,应用程序的运行会产生1个或多个用户级线程,它和网络栈以及命令行服务器处在同一层中,每个线程具备不同功能,而这些功能是通过调用系统API与底层设备硬件进行交互控制来实现的。在MantisOS上开发应用程序,具备的硬件包括传感器节点如MICA2、MICA2DOT等,以及PC机、传感器板、编程板、串口连接线和电源插座等设备[6]。PC机作为前端设备,同时需要安装下列软件:操作系统(Windows环境下需要安装Cygwin)、MantisOS工具包、MantisOS系统源代码,另外,可用记事本或者文本编辑器作为源代码编写工具。分析MantisOS体系结构及其特点,建立需求分析,通过系统API屏蔽底层硬件细节,将应用程序建立在MantisOS平台的最上层,在PC机上进行调试和编译,最后进行测试,逐步完成应用程序的开发。这是应用程序开发的流程。1 MantisOS的体系结构MantisOS的体系结构分为核心层、系统API层以及网络栈和命令行服务器3部分。其中核心层包括进程调度和管理、通信层、设备驱动层,系统API层与核心层进行交互,向上层提供应用程序接口。其系统体系结构见图1。MantisOS为上层应用程序的设计提收稿日期:2006-02-06基金项目:国家自然科学基金(60573141和70271050);江苏省自然科学基金(BK2005146);江苏省高技术研究计划(BG2004004、BG2005038);国家高科技863项目(2005AA775050);江苏省计算机信息处理技术重点实验室基金(kjs050001/kjs06);江苏省高校自然科学研究计划(04KJB520095)。2 应用程序设计2.1 需求分析在需求分析阶段,对系统的需求进行详细分析,并给出明确的定义,编制系统分析说明书和初步的Man-tisOS用户手册,作为今后MantisOS系统应用程序开#42#第32卷第6期段飞霞,等:基于MantisOS的无线传感器网络应用的研究#计算机与自动化技术#发的依据。并根据需求分析说明书,编制MantisOS应用程序开发模型。进一步制定详细的开发计划,为逐步实现应用程序做好准备。例如,在MantisOS上开发一个防火监控系统,应考虑节点能量损耗问题、报警设置以及安全问题等。2.2 开发模型依据无线传感器网络操作系统的特征以及嵌入式系统开发的思想,在MantisOS开发应用程序的实质是利用操作系统的特性,定制节点的功能,并将其扩大到实际应用中。依据软件工程思想,方便无线传感器网络中应用程序的开发,提高应用程序开发的速度、质量以及实用性。图2是开发模型示例图。制节点相应设备。并利用传感器的网络特性,可以将采集的数据进行传送。结合以上两大功能特性以及MantisOS上的应用程序开发模型,在此实现一个火灾报警应用系统。MantisOS是基于线程驱动的,它提供一系列线程操作API,例如创建、挂起、睡眠以及启动。而应用程序是从start()开始运行,并创建线程实现具体功能,相当于C语言中的main()函数。在这里,应用程序主要包括基站节点应用程序和普通节点应用程序。为防止节点一直处于运行状态,使处理器得到睡眠状态,节约能耗,采用线程睡眠唤醒机制,即每隔一段时间启动相应线程。2.4.1 普通节点应用程序设计普通节点应用程序的功能是采集数据,分析数据是否达到报警级别,并通过网络将数据发送给基站节点,同时具备接收数据以及转发数据的功能。为实现这些具体功能,创建的线程有接收线程、数据采集线程、数据分析处理线程以及发送线程。a)在数据采集线程中,启动传感器节点相应设备感知周围环境数据以及系统数据,然后将相关数据写到缓冲区中供其他线程读取。b)数据分析处理线程的功能是对所采集数据进行分析,判断是否达到节点上规定的上下限,并及时打开节点上的报警装置。图2 应用程序开发模型

c)数据发送线程的功能是对节点所采集数据通过网络进行发送,数据传输协议可以利用泛洪协议或者其他协议。d)接收线程的功能是对接收到的网络数据包进行分析,并选择转发数据包。以上具体实现均建立在MantisOS所提供的API上,例如:设备环境数据读取API为dev_read(),线程睡眠API为thread_sleep(),数据发送API为net_send(),线程创建API为thread_new(),等等。最后,为了节省存储空间以及能量,可以将数据采集线程、数据分析处理线程以及数据发送线程合并为一个线程。2.4.2 基站节点应用程序设计基站的功能是接收其他节点采集的数据,并处理数据,通过串口线将数据反应到PC机终端显示,那么,基站节点上运行的线程包括数据接收线程、串口设备数据读取线程以及串口发送线程。a)数据接收线程的功能是从网络上接收其他节点通过RF传递给自己的数据,对这些数据进行分析并处理。b)串口设备数据读取线程是从编程板串行口读#43#2.3 平台构建应用程序的开发建立在MantisOS平台上,因此建立一个稳定的开发平台是必须的。传感器节点上集成了处理器以及Flash存储器,传感器板相当于节点的运行环境,PC机的目的是对接收到的网络节点数据进行分析,串口连接线是方便PC机对节点接收数据的读取,而编程板的作用是将应用程序导入到节点中。装置的硬件结构原理如图3所示,主要由传感器节点、传感器板、PC机、串口连接线、编程板等组成。图3 硬件结构图

然后是软件环境的建立,在Windows环境中,首先安装Cygwin环境(一个UNIX模拟器),下载Mant-isOS工具包并配置相应系统环境变量。2.4 应用程序开发根据MantisOS操作系统的特点,利用节点处理数据的功能,可以在节点对采集数据进行分析,然后控#计算机与自动化技术#电子工程师2006年6月取PC机发送给基站的数据,基站分析数据类型,根据类型选择不同的处理方式,例如,将报警级别数据发送给网络所有节点等。c)串口发送线程的功能是将接收到的数据经处理后发送到编程板串行口,等待PC机应用程序读取。这里可以将数据接收线程与串口发送线程合并为一个线程,即先接收数据,然后将数据发送到串口。通过设计分析,应用程序设计流程见图4。的环境中,可以对源程序进行调试。3 对MantisOS及其应用开发的建议如果对UNIX编程有一定的基础,开发Mant-isOS应用程序便简单得多,但与UNIX不同的是,它是一种嵌入式操作系统,针对不同的应用,设计与编码都有很大的区别,在此,提出以下几点建议。a)对照应用需求查看节点目前所具备的功能,有目的地进行选择,例如防火报警中涉及到报警设备。b)熟悉MantisOS与Cygwin之间的联系,了解其编译机制,这样,当系统需要添加新的功能时,便可以清楚整体系统的重新编译。c)因为在Cygwin环境下进行调试,缺少可视化的错误检测,只能利用make命令进行动态联编,而且与系统核心编译出来的中间文件紧密相连,因此,顺序地进行操作有利于应用开发的调试。d)利用多线程进行编程,优点很多,但并不是所创建的线程越多越好,合理的创建线程、有效地对线程执行睡眠操作有利于节省节点能量。e)由于节点存储器空间十分有限,编程时应尽量规范,另外,内存的创建与释放是相互对应的,当内存不用时立即释放掉。图4 应用程序设计流程

2.4.3 编码编码分为C语言程序源代码和makefile文件代码两部分。C语言程序源代码编写的工具有多种,例如Tex-tpad或记事本,编写完后将其复制到MantisOS目录中名为src中的apps文件夹下,然后才是makefile的书写过程。Makefile文件是为了编译器能够快速定位源文件、指定联编路径以及目标文件的生成格式。最后,将应用程序所在文件夹下makefile的具体路径添加到系统的配置文件中。为了自动产生相应应用程序的makefile文件,必须重新编译系统。2.4.4 编译调试在MantisOS中,应用程序是与内核一起进行编译的,必须对平台进行定制才能将源代码编译成目标文件,步骤如下:启动Cygwin环境,进入到MantisOS主目录下,找到一个的脚本文件,并执行命令,待成功执行完,进入build目录,根据现有的硬件节点类型,选择各种节点硬件目录,例如选择mica2,进入相应目录,找到configure文件,执行configure命令。在该命令的执行过程中,首先会检查系统是否安装好编译器,然后生成系统各个部分的makefile文件。进入应用程序所在目录,执行make命令就可以生成所需要的最终程序。因为编译时采用的是动态联编,执行make命令的过程中,会先检查应用程序所依赖的一些中间代码文件,接着检查应用程序语法问题。因此,在Cygwin#44#4 结束语MantisOS作为一种无线传感器网络节点操作系统,也是一种嵌入式操作系统,具备内存小、能耗小的特点。设计人员可根据具体应用需求,快速构建最简洁、最合理的平台。可以认为,MantisOS是UNIX的缩影,MantisOS采用C语言编程,可减少开发人员学习新语言的时间,缩短开发周期,降低技术风险。参 考 文 献[1]孙立民.无线传感器网络[M].北京:清华大学出版社,2005.[2]ABRACHH,BHATTIS,CARLSONJ,:systemsurportformultimodalnetworksofin-situsensors[C]//Proceedingsof2ndACMInternationalWorkshoponWirelessSensorNetworksandApplications(WSNA2003),Sep19,2003,SanDiego,CA,k,NYUSA:ACMPress,2003:50-59.[3]BHATTIS,CARLSONJ,DAIH,OS:Anembeddedmultithreadedoperationsystemforwirelessm-icrosensorplatforms[J].MobileNetworksandApplica-tions,2005,10(5):563-579.[4]GRUTESERM,SCHELLEG,JAINA,y-A-wareLocationSensorNetworks[R].AmericaCoronadoUniversity,2004.(下转第50页)#计算机与自动化技术#电子工程师2006年6月MF2有哪些是相重合的,一旦成功路径与失败路径具有相同的子路径时,那么这部分路径就需要引起我们的高度重视。从上电梯到伤亡状态是要着重考虑和权衡的一个阶段。理想的情况是用户根本不会进入伤亡状态。其中一个解决方法是让门永远开着,但这显然是一个不现实的解决办法,因为一个总是开着门的电梯尽管具有最大可信性,但它的效用也为零。在这种情况下,就必须在安全性与实用性之间做权衡。在本例中,可以通过在电梯上设置一个传感器,一旦有人站在电梯门中央则门无法关上。这样就在登电梯与伤亡之间又多了一个受阻状态,如图3所示。受阻→伤亡状态尽可能不发生,使得受阻→上电梯这一路径较易通过。3 结束语本文提供了一个评价嵌入式系统相对可信性的方法。这一方法涉及硬件、软件需求、用户界面等与可信性相关的问题。总之,系统的可信性可以通过改变某些特性状态、增加状态、增加路径来加以改善。当然,这一方法还有许多问题没有解决,它仅仅是改变当前在嵌入式系统可信性分析中过分注重以系统部件为中心的一个尝试。参 考 文 献[1]reFMEAtechniques[C]//Proceed-ingsofthe2000AnnualReliabilityandMaintainabilitySymposium,Jan24-27,2000,LosAngeles,CA,away,NJ,USA:IEEE,2000:118-123.图3 增加受阻状态的例子

[2]aulttreeanalysisforevaluationofsystem-reliabilityimprovementsindesignphase[C]//Pro-ceedingsofthe2000AnnualReliabilityandMaintainabilitySymposium,Jan24-27,2000,LosAngeles,CA,away,NJ,USA:IEEE,2000:1-7.通过对各种性能指标的考察,我们会对电梯门控的软件设计增加一些新的要求,例如要求电梯的成功路径与失败路径之间有共同路径,这时就不应增加到达等待状态与上电梯状态的难度,而应使得上电梯→AnExampleAnalysisofDependabilityofEmbeddedSystemBasedonDirectedGraphWANGlin,XUJingfeng(gResearchInstituteofElectronicsTechnology,Nanjing210013,China;jingInstituteofPolitic,Nanjing210003,China)Abstract:Withthedevelopmentofembeddedsystem,perfocds:dependability;directedgraph;successfulitem;faileditem(上接第44页)12AStudyonApplicationofWirelessSensorNetworksBasedonMantisOSDUANFeixia1,WANGRuchuan1,2,HUANGHaiping1,SUNLijuan1(gUniversityofPostsandTelecommunications,Nanjing210003,China;gUniversity,Nanjing210093,China)Abstract:entapplicationpro-rtodeveloptheappl-icationsontheMantisOSplatform,thispaperproposesamodulewhichisappliedtofiremonitoringwiththewirelesssensornetworks,ds:wirelesssensornetwork;MantisOS;firemonitoring#50#

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689200690a220083.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信