基于TinyOS的无线传感器网络体系结构
- 格式:docx
- 大小:29.57 KB
- 文档页数:7
基于TinyOS的无线传感器网络AODV路由协议的实现与优
化
张贝贝;王婷婷
【期刊名称】《计算机测量与控制》
【年(卷),期】2015(23)5
【摘要】针对无线传感器网络在矿山物联网的应用,文章提出了AODV路由协议在TinyOS操作系统下的实现框架,设计了数据帧、路由表与路由缓存机制;文章针对传统型AODV协议的丢包率与跳数之间呈级数增长的问题,分析了多跳衰减的原因,提出了一种基于RSSI的改进型无线传感器网络RSSI-AODV协议,采用RSSI作为路径选择的依据;实际测试表明:七跳链路总丢包率低至0.3%,优于传统AODV路由协议性能.
【总页数】4页(P1743-1746)
【作者】张贝贝;王婷婷
【作者单位】江苏自动化研究所,江苏连云港222061;中国矿业大学信电学院,江苏徐州221116
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于TinyOS的无线传感器网络节点设计与实现 [J], 翟祥伟;吴蒙
2.TinyOS在CC2530下的移植及AODV路由协议的实现 [J], 曾志宏;汤碧玉;杨
琦
3.基于无线传感器网络移动代理变种在TinyOS中的实现 [J], 林华杰;史浩山
4.基于tinyos-2.x的无线传感器网络研究平台设计和实现 [J], 钱开国;桑楠;马宏
5.基于TinyOS的无线传感器网络平台的实现 [J], 李露曦;鄢楚平
因版权原因,仅展示原文概要,查看原文内容请购买。
第30卷 第5期2007年10月电子器件Ch inese Jou r nal Of Elect ro n DevicesVol.30 No.5Oct.2007Study on Messa ge Packet Communication Mechanism of Wir elessSensor N et w or k B a sed on TinyOS 22.xSU N Yi ,WA N G L ei ,D U Xi ao 2ton g(S chool of Cont rol Sci ence an d Eng ineeri ng ,S handong Uni versi t y ,J inan 250061,China)Abstract :In order to unpack and analyze t he data received by computer from Wireless Sensor Net w ork (WSN),a WSN t est platform was designed.Based on t he newest embedded operation system TinyOS 22.x ,t he wireless com 2municating mechanism was st udied by recomposi ng sound c ode of wireless data transceiver module.The key tech 2niques of message packet s transmi ssion ,t he framework of Ti nyOS ,the running mechanism and communicating mechanism were i nt roduced.T est result s showed t hat :①t he data sampled by sensor nodes was packed as MAC payloads and t ransmit ted to base station node by RF ;②the MAC packet was t hen repacked as serial message pay 2load and sent to upper computer by UART.I t were helpful for developing applications of wireless sensor network.K ey w or ds :wireless sensor net work ;framework ;running mechani sm ;communicating mechani sm ;TinyOS 22.x EEACC :7230;6150P基于TinyOS 22.x 的无线传感器网络数据包传输机制的研究孙 毅,王 雷,杜晓通(山东大学控制科学与工程学院,济南250061)收稿日期6226作者简介孙 毅(82),女,硕士研究生,主要研究测控网络,y @y 摘 要:为深入解析无线传感器网络中上位机接收到的数据包,在目前最新的无线传感器网络嵌入式操作系统TinyOS 22.x平台基础上设计了一套实验,成功读取了MAC 层的数据包.发现传感器节点采集到的数据首先作为MAC 层的有效荷载封包无线传送到基站节点,由基站节点将其作为串口消息包的有效荷载再次封包异步传送到传感器网络的上位机端.该研究对进一步理解TinyOS 的构架、运行机制和通讯机制,开发相关的应用软件具有一定参考意义.关键词:无线传感器网络;构架;运行机制;通讯机制;TinyOS 22.x 中图分类号:TP212;TP393.17 文献标识码:A 文章编号:100529490(2007)0521954205 无线传感器网络(Wireless Sensor Net work ,WSN )[122]的研究与开发是目前信息领域的热点之一,国际上许多著名的大学和公司纷纷从不同层次、不同角度对传感器网络进行了研究和开发.当前应用最广泛的传感器网络操作系统是由美国加州大学伯克利分校开发的Ti nyOS [324].Ti nyOS 是一个源代码开放、可扩展的、嵌入式操作系统,熟练的C 程序员可以利用TinyOS 发行包中已有系统组件迅速开发用户应用程序.但直接使用Ti nyOS 发行包中的应用模块,上位机接收的无线传感器网络的数据都是层层封装好的有效数据,目前无线数据包传输机制的文献资料相对较少,一定程度限制了Ti ny 2OS 的推广应用.本文以目前最新的无线传感器网络操作系统Ti nyOS 22.x [526]为平台,依托现有Ti nyOS 发行包中提供的组件,重新修改和编写了射频收发模块程序,并开发了一套实验平台,成功的对MAC 层[7]的数据包进行读取,深入解析了其消息包传输以及Tin 2yOS 的构架、运行机制和通讯机制等关键技术.1 WSN 嵌入式操作系统T iny OS 22.x 架构美国加州大学伯克利分校开发的Ti nyOS 是一:200101:191sun imi ss .种微小的、嵌入式的、基于事件驱动的无线传感器网络操作系统,与一般的嵌入式操作系统相比,Ti ny2 OS有其自身的特点:(1)基于可重用组件的体系结构,采用模块化设计思想;(2)使用事件驱动模型,通过事件触发来唤醒CPU工作.为了解决Ti nyOS21.x和其他主要嵌入式传感器操作系统对跨平台开发、应用结构及可靠性等操作方面的局限性,Ti nyO S研究小组人员在TinyOS2 1.x的基础上对其进行再设计和再实现,推出新版本TinyOS22.x(T2).在T2中,将物理层硬件抽象分为三层,称为HAA(Ha rdware Abst ract ion Ar2 chit ect ure)[829].最底层是硬件描述层(Hardware Pre se nta tion Layer,HPL),该层提供硬件层和软件层的直接接口,通过调用函数的方法来屏蔽复杂的硬件层,不仅实现了硬件层和软件层的内部通信,而且为系统其他部分提供了使用的接口.中间层是硬件适用层(Hardwa re Adapta tion Layer,HAL),位于H PL上层,该层对硬件层的定时器、模数转换器、存储器等模块原型进行较高层的抽象,可以更直接更方便地为上层软件层提供可定制的操作接口.最顶层是硬件独立层(Hardware Independent Layer,HIL)位于HAL上层,该层提供抽象的独立硬件层接口,通过隐藏硬件层来简化上层应用软件的编写,其功能类似于Window s操作系统下的AP I.2 TinyOS的运行机制[10]在Ti nyOS的总体框架中,物理层硬件为框架的最底层,在该层中,传感器、射频收发器以及时钟等硬件均能触发事件(event)的发生,交由上层组件处理;软件层中相对下层的组件也能触发事件并交由上层处理,而上层会发出命令(com mand)给下层处理.为了协调各个组件间任务的有序处理,需要操作系统采取一定的调度机制.Ti nyOS内核支持两种执行线程,提供任务(task)和硬件事件处理(hardware event handl ers)的两级调度体系,支持并发处理和执行应用程序通用后台进程.内核使用一个循环队列来维护任务列表默认情况下,任务列表大小为8其伪代码如下y f{ void(3tp)();//定义一个插入队列的任务指针 }TOSH_sche d_e ntr y_T;emun{ TOS H_MAX_TAS K S=8,//任务最多为8个 }void TOSH_wait(void);//任务等待void TOSH_sleep(v oid);//任务休眠void TOSH_sche d_init(void)//任务初始化 …bool TOS_post(void(3tp)());//任务提交 …bool TOS H_run_ne xt_task()//执行下一任务 …void TOSH_run_ta sk()//任务循环 { while(TOSH_r un_next_ta sk()); TOS H_sleep(); TOS H_wait(); }这个任务队列实际上是一个函数指针的数组,提交一个任务即是向队列里插入一个函数指针.任务提交(post)到FIFO队列中等待,当任务队列头索引号等于尾索引号时,表明任务队列为空,系统进入休眠状态并等待,直到新的事件发生,如果新的事件向队列中提交了任务,则处理器返回执行状态,否则继续休眠.3 TinyOS的通讯机制解析3.1 通信组件Ti nyOS采用基于组件式的架构形式,其通信组件[11]如图1所示:图1 多跳无线通信应用程序组件图无线收发模块是将物理硬件映射而成的硬件抽象组件,其发命令给相关I/O引脚处理比特流级的数据收发,并且发信号给事件将数据位的发送和接收通知上层的射频字节组件射频字节组件内部完成字节级数据的编码和解码工作,并以字节为单位与上层组件无线消息包交互,无线消息包组件进行5591第5期孙 毅,王 雷等:基于TinyOS22.x的无线传感器网络数据包传输机制的研究..:t pe de str uct .消息包级的数据处理,并发信号通知高层次的主动消息组件(Act ive Message).最终由主动消息组件来完成控制,路由以及数据传输等任务.3.2 实验平台设计及程序设计由于无线传感器网络中节点数量一般较大,可能达到几百、几千甚至更多,数据从其他节点接收进来,经过处理后转发出去,信息量相当庞大,故在无线传感器网络中的上位机接收的数据均是层层封装好的有效数据.在某些程度上虽减轻了冗余信息量的处理,却在深入分析研究无线传输机制时无从下手.同时,由于无线传感器网络具有广泛的应用领域,其硬件必然具有多样性,因此,直观的读取MAC层的消息包,迅速掌握无线传输过程中物理层和数据链路层的工作机制使得对于特定的硬件方案,有选择地构建具体应用、进行简单快捷的硬件平台移植开发变得相对容易.针对该问题,设计了一套实验平台,并进行了程序设计,成功的获取了整个MAC层数据包的数据,并深入解析了该数据包.在该实验具体设计过程中,布设了两个无线传感器微型节点A,B和一台PC搭建成最简无线传感器网络,如图2所示.节点A以1Hz的速率将数据无线发送出去,节点B作为基站,负责接收节点A的数据并与PC相连,将收到的数据通过串口传到PC上,并通过PC机上的串口程序将收到的数据显示出来.本实验中节点A、B均采用16位微处理器MS P430F1611为核心,结合2.4G无线收发模块CC2420设计而成的无线收发微型节点.图2 网络布设图程序实现过程中,使用Ti nyOS专用编程语言nesC[12213],nesC是一种类C的语言,它不只是一个简单的语言编译器,还包含了一种基于组件和并发的OS模型在里面,直接生成一个含OS的完整系统,将Ti nyO S已经做好的多个通讯模块接口组合起来,在Ti nyO S22.x的平台上,对其发送和接收程序作进一步改进.节点发送程序主要使用Radio Sensor ToLe d2 sAppC.nc和Radio Sensor ToLe dsC.nc两个组件模块,R S T L是个配置文件(f),它的功能是把各个需要的模块和组件按照正确的调用顺序有机联系起来,负责对整个程序的声明.RadioSensor ToL edsC.nc是个功能模块(modul e),负责具体功能的实现.其配置文件连接如图3.图3 发送组件连接图RadioSensor ToLedsC需要用户编写,其余均为Ti nyOS系统自带的模块,MainC是Ti nyOS引导程序的系统接口,将导入实现(i mplement)和系统调度、硬件资源连接.O ski T i merMilliC()负责调整整个无线传感器系统的时钟,AMSenderC,AMRe2 cei verC,负责射频发送和接收.基站接收程序使用了BaseStationC.nc和Bas2 e St ationP.nc两个组件模块,Ba seSt ationC.nc是配置文件,连接所需组件;BaseStat io nP.nc是功能模块,负责接收射频数据并通过串口程序将所收到数据封包传送到PC机上,其配置文件连接如图4.图4 接收组件连接图其中ActiveMessageC,Serial Acti veMessageC 分别负责完成射频收发和串口收发的功能.3.3 接收数据包解析Ti nyOS22.x中串口协议有自己的数据包格式,在Ti nyOS22.x的t os_msg中,定义了一个标准的消息缓存message_t[14],其格式比Ti nyOS21.x更接近于IEEE802.15.4[15]标准.typedef nx_str uct message_t{ nx_uint8_t header[sizeof(TOSRadio Header)]; nx_uint8_t data[TOSH_DATA_L ENGTH]; nx_uint8_t footer[sizeof(TOSRa dioFooter)]; nx_uint8_t meta data[sizeof(TOSRadioMetadata)]; }_;实验中,发送程序发送了十进制数据~共y,下面是通过机上串口程序接收到的一6591电 子 器 件第30卷adio ensor o edsAppC.nc co n i gu rat io nme ssage t1114 114b te PC组用16进制表示的原始数据.7E42000000F422007D5E4188F10022 F F FF0001060102030405060708090A0B 0C0D0E0F101112131415161718191A1B 1C1D1E1F202122232425262728292A2B 2C2D2E2F303132333435363738393A3B 3C3D3E3F404142434445464748494A4B 4C4D4E4F505152535455565758595A5B 5C5D5E5F606162636465666768696A6B 6C6D6E6F7071720000……000044447E 通过研究发现:①该消息缓存有一个固定的偏移量,保证在两个不同的链路层之间可以来传递一个消息缓存.②这个消息缓存中的头、尾和原数据域均不透明,较高层的组件通过接口访问它们的域.③仅有data[TO SH_DA TA_L EN GTH]是可以直接访问的透明数据.表1 解析了上述串口接收数据的意义:表1 数据包各字节释义序号字节意义描述备注07E 串口消息包的同步字节(帧头)串口消息协议1-24200串口消息包的类型(无应答的包)3-40000串口消息包的地址5F4串口消息包的长度6-72200Gro up号87D,5E M AC数据包的长度射频消息协议9-1041,88FCF,MAC帧控制域(MAC层) 11F1DSN,MAC帧序列号12-130022Detpan号,也即G roup号14-15F F FF目的地址16-170001源地址1806Type号19…n-301…72负载数据(114个数据)n-2,n-14444CRC校验n7E 串口消息包的同步字节(帧尾)串口消息协议 经过多次试验,对上位机接收到数据深入分析发现如下规律:①数据从整体上分为两部分,从第八个字节至倒数第二个字节属于MAC层消息包数据协议格式,前七个字节加上最后一个字节属于串口消息包数据协议格式;②MAC层数据包总是位于串口消息包内部相对固定位置;③串口消息包的数据格式基本保持不变,7E是串口包的帧头,4200是串口包的消息包类型,这里表示该包是无应答的消息包,是网络组号(G);④M层消息包中,第一个字节随着发送数据量的变化而变化,当发送数据长度为16进制72时,该字节为7E5D(注: 7D5E是7E与20相与产生的扩展字符,也即7E),当发送数据长度为16进制50时,该字节为5C,由7E-72=5C-50=12推断该字节表示MAC层数据长度.该长度除包含有效数据外,还包括共12个字节的MAC层包头和包尾,4188是MAC层帧控制域(FCF),F1(F2,F3……)是帧序列号,0022是网络域号,也即网络组号,FF F F是目的地址,0001是源地址,06是消息类型号,根据该消息表示类型的不同可自定义.为进一步验证上述结论,下面再了解一下IEEE802.15.4中MAC层的数据帧格式,如图5所示.图5 I EEE802.15.4的帧格式(P H Y和MAC)可以看到整个MAC数据包包括2个字节的帧控制域;1个字节的帧序号;0~20个字节的地址消息;n个字节的MAC层有效数据;2个字节的帧检验序列.TinyOS实现了IEEE802.15.4协议的物理层(P H Y)和MAC层的一部分,对比上面CC2420rxFIFO中IEEE802.15.4的帧格式和在Ti nyOS的Radio TOSMsg.h(射频消息协议)中定义的结构体及射频收发模块CC2420的头文件, typedef union TOSRadio Heade r{ cc2420_hea der_t cc2420; }TOSRadio Header;typedef union TOSRadio Foo te r{ cc2420_foote r_t cc2420; }TOSRadioFooter;typedef nx_str uct cc2420_header_t{ nx_uint8_t length; nx_uint16_t f cf; nx_uint8_t dsn; nx_uint16_t de stpan; nx_uint16_t de st; nx_uint16_t src; nx_uint8_t type; }cc2420_heade r_t;y f x__f_{ }_f_;可以发现表和图是完全对应一致的,其中7591第5期孙 毅,王 雷等:基于TinyOS22.x的无线传感器网络数据包传输机制的研究22ro up A C t pede n str uct cc2420ooter tcc2420ooter t14destpan,dest,src,type是IEEE802.15.4的MAC 帧的地址消息.因为Ti nyO S-2.x中串口协议有自己的数据包格式,射频协议也有自己的数据包格式,这就意味着我们要将节点采集到的数据信息最终传到PC机上,需要先将这些数据作为MAC层的有效荷载(payloa d)封包无线传送到基站节点,基站节点再将收到的MAC数据在按照一定的串口消息格式再次封包,发送到PC机上.4 结束语本文通过对Ti nyOS发行包中的收发模块的源代码进行了深入研究,成功的读取了MAC层数据包的数据,将通常无线传输过程被屏蔽的MAC层数据格式直观的呈现出来.研究发现:①无线传输过程中,数据从整体上分为两部分,MAC层消息包数据协议格式嵌入串口消息包数据协议格式中;②MAC层消息包总是位于串口消息包内部相对固定位置;③传感器节点采集到的数据首先作为MAC 层的有效荷载封包被无线传送到基站节点,由基站节点将MAC层数据包作为串口消息包的有效荷载再次封包异步传送到传感器网络的上位机端.同时搭建了无线网络实验平台,验证了程序设计和数据包解析的正确性,该研究进一步理解了Ti nyOS的构架、运行机制、通讯机制、对于开发相关的应用软件或进行硬件平台的移植有一定参考价值.参考文献:[1] Est ri n D,Cull er D,P i st er K,et al.The Physical W o rl d wi t hPervasive Net wor ks[J].IE EE Pervasive C o m p uti ng,2002,1(1):59269.[2] 任丰原,黄海宁,林闯.无线传感器网络[J].软件学报,2003,14(7),128221920.[3] ht tp://www.ti /tin yo s21.x/doc[EB/OL].2003.[4] Levis P,Madden S,Polast re J,et al.TinyOS:An Operat ingSyst em fo r Wireless Sen s o r Net works[M].In Ambient Int ell i2 gence,New York,N Y:S p ringer2Verlag,2004.[5] L evis P,G ay D,Handzi ski V,et al.T2:A S eco nd G enerat ionOS fo r Embedded Sensor Net wo rks[R].Techni cal Report T KN2052007,telecommu nication Net work Group,Techni sche Univers i tat Berli n.[6] Philip Levi s.Ti nyOS2.0Overview[EB/OL].ht tp://www.tin yo /ti nyos22.x/doc/ht m l/o verview.ht m l,2006.[7] Ye W,Heidemann J,Est ri n D.An Ener gy2Effici ent MACProt ocol for Wi reles s Sensor Net work s[C]//Proceedings of IEEE on INFOCOM2002,3:156721576.[8] Vl ado Handzi ski,J oseph Pol ast re,J an2Hi nrich Hauer,et al.Hardware Abs tract ion Archit ect ure[EB/OL].ht tp://www.tin yo /ti nyos22.x/doc/ht m l/tep2.ht ml.[9] Handzi ski V,Polast re J,Hauer J H,et al.Fl exi bl e HardwareAbst ractio n for W i reles s Sensor Net wor ks[C]//Pro ceedings of t he Second European W o rks hop on W i reles s Sen s o r Net wo rks (EWSN),2005:1452157.[10] 孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.[11] Philip Buo nadonn,J ason Hill,Davi d Cull er.Act ive MessageC o mmunicati on for Ti ny Net wo rked Senso rs[C]//Pro ceed2i ngs of IEEE o n IN FOC OM2003,1:5552560.[12] Davi d G ay.Phil ip Levi s,Davi d Cull er,et al.Nes C1.1Lan2g uage Reference Manual[EB/OL].ht tp://nescc.source2/p apers/nes C2ref.pdf,2003.[13] Gay D,Levi s P,vo n Behren R,et al.The NesC Language:A Holi st ic Approach to Net wo rked Embedded Syst ems[C]//SI GPLAN C o nference on Prog ram m i ng Language Desi gn andIm pl em ent atio n(P L DI’03),2003,38(5):1211.[14] Ben Greenst ei n,Phil ip Levi s.seri al co mmu nicat ion[EB/OL].htt p://www.ti nyo /t inyo s22.x/doc/ht m l/t ep113.ht m l,2006.[15] IS B N0273812367725SS95127,IEEE802.15.4[S].8591电 子 器 件第30卷。
TinyOS无线传感器网络操作系统分析0 引言无线传感器网络是由部署在监测区域内的大量廉价微型传感器节点,通过无线通信方式组成一个多跳的自组织的网络系统,其目的是协同感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观测者。
无线传感器网络技术研究涉及到多个热点学科的前沿领域,比如传感器技术、现代网络技术、嵌入式计算机技术、无线通信技术等。
由于无线传感器网络在工业监测、环境检测、医疗监护、军事侦察等众多的领域都有着广阔的应用前景,因而引起了世界各国工业界,学术界和军事部门的重视,并且迅速成为当今世界研究的热点之一。
1 无线传感器网络的主要特点传感器网络节点硬件一般都由数据采集、数据处理、数据收发和电源等四个单元组成。
数据采集单元通过传感器采集外界数据并将其转化为数字信号;数据处理单元是节点的核心模块,负责协调节点各部分的工作,如对数据采集单元采集的数据进行必要的处理和保存,以及数据收发单元工作模式的设置等;数据收发单元负责数据的无线传输以及与数据处理单元的数据交互。
上述四大基本模块与相应的操作系统、协议栈和应用程序共同构成一个基本的无线传感器网络节点,众多的网络节点分布在一起,就可以完成无线传感网络的基本功能。
在软件设计方面,本系统以专用嵌入式实时操作系统为依托,来管理、协调传感器节点各硬件部分的工作。
上层应用以及各层的通信协议都以节能为中心,必要时可以牺牲其他的一些网络性能指标来获得更高的电源效率。
图1所示是一个传感器网络节点的基本组成。
传统的无线网络设计基本上都是为了同时满足人们各种各样的需要,如语音、视频、图像等。
而无线传感器网络一般是为了某个特定的需要而设计的,它是一种基于应用的无线网络,与移动通信网、无线局域网、Bluetooth相比,无线传感器网络具有以下主要特点:(1)电源能量有限:无线网络中,每个节点的电源都是有限的,网络大多工作在无人区或者对人体有伤害的恶劣环境中,一般更换电源几乎都是很困难的事。
基于tinyos-2.x的无线传感器网络研究平台设计和实现钱开国;桑楠;马宏
【期刊名称】《福建电脑》
【年(卷),期】2009(025)002
【摘要】集成了微机电(MEMS)系统、传感器、网络三大技术的无线传感器网络是一种全新的信息获取和处理技术.应用前景非常广阔,是近年来在国内外研究的热点领域.本文首先阐述了硬件节点的设计和实现,在该硬件基础上阐述了如何构建基于Tinyos-2.x的试验研究平台,并阐述了在此平台上的程序开发调试方法.进一步介绍了无线传感器网络系统和应用程序的开发语言.可以进一步应用到实际传感器网络中去.
【总页数】2页(P7-8)
【作者】钱开国;桑楠;马宏
【作者单位】电子科技大学软件学院,四川成都,610054;电子科技大学软件学院,四川成都,610054;昆明学院物理系,云南,昆明,650031
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于无线传感器网络的绿色智慧校园设计与实现\r——以合肥职业技术学院为例[J], 钱春阳;李华平
2.基于无线传感器网络的智能家居系统设计与实现 [J], 郑洁; 袁林江
3.基于无线传感器网络的远程智能监控系统的设计及功能实现研究 [J], 陈伟
4.基于无线传感器网络的低功耗目标探测系统设计与实现 [J], 刘嵘;陈金刚
5.基于数字仪器的超声波流量计研究平台设计及实现 [J], 牛跃华;彭黎辉;张宝芬;杉時夫
因版权原因,仅展示原文概要,查看原文内容请购买。
无线传感器网络硬件系统的实现及TinyOS操作系统的移植的开题报告一、选题的背景和意义随着物联网技术的不断发展和应用,无线传感器网络在物联网中扮演着越来越重要的角色。
无线传感器网络通常是由大量的小型、低功耗、低成本的传感器节点组成。
这些节点能够通过无线通信进行数据交换,实现对特定区域的监测、控制、数据采集等功能。
由于其具有灵活性、扩展性、可靠性等优点,无线传感器网络在智能家居、智能楼宇、智能交通、农业监测、环境监测等领域得到广泛应用。
无线传感器网络硬件系统的实现及TinyOS操作系统的移植是无线传感器网络的关键技术之一。
无线传感器网络的硬件系统包括传感器节点、网关和网络拓扑结构等。
其中,传感器节点是无线传感器网络的核心部件,它承担数据采集、处理、传输等任务。
TinyOS是一种专门为无线传感器网络设计的操作系统,它提供了丰富的传感器节点操作接口和通信协议。
TinyOS的移植不仅能够提高无线传感器网络的可靠性和稳定性,还能够为无线传感器网络应用的开发提供支持。
二、选题的研究内容本论文的研究内容主要包括无线传感器网络硬件系统的设计与实现、TinyOS操作系统的移植及其应用实例开发等方面。
(1)无线传感器网络硬件系统的设计与实现:该部分主要包括传感器节点的硬件设计和实现、网关设计与实现、网络拓扑结构设计等。
传感器节点的硬件设计和实现是无线传感器网络的核心任务之一,它包括传感器接口设计、数据采集电路设计、无线通信电路设计等。
网关是无线传感器网络与外界通信的桥梁,它需要具备数据处理能力、通信接口等功能。
网络拓扑结构设计则需要结合具体应用场景进行设计和实现。
(2)TinyOS操作系统的移植:该部分主要分为两个步骤:TinyOS代码的移植和应用程序的开发。
TinyOS代码的移植需要结合硬件平台进行定制化开发,并进行适当的修改和优化。
应用程序的开发需要结合具体的应用场景,选择适当的传感器节点操作接口和通信协议进行开发。
计算机与现代化2011年第2期JISUANJI YU XIANDAIHUA总第186期文章编号:1006-2475(2011)02-0103-03收稿日期:2010-10-19作者简介:吴小娜(1987-),女,江西崇仁人,东华大学计算机科学与技术学院硕士研究生,研究方向:无线传感器网络操作系统;王漫(1967-),男,上海市计算技术研究所高级工程师,研究方向:无线传感器网络,普适计算,协同计算。
无线传感器网络操作系统TinyOS 综述吴小娜1,王漫2(1.东华大学计算机科学与技术学院,上海200051;2.上海市计算技术研究所,上海200040)摘要:TinyOS 是无线传感器网络专用的操作系统。
本文首先分析TinyOS 操作系统的关键技术———组件化结构、调度机制、通讯模型及能量管理方式,然后将TinyOS 与另外两个操作系统μCOS-II 、μT-Kernel 在内核大小、时间可确定性、低功耗等方面进行简要对比,最后总结TinyOS 操作系统的缺点和存在的问题,为学习使用TinyOS 提供指导。
关键词:无线传感器网络;TinyOS ;综述中图分类号:TP316文献标识码:Adoi :10.3969/j.issn.1006-2475.2011.02.028Review of TinyOS for Wireless Sensor Networks Operating SystemWU Xiao-na 1,WANG Man 2(1.School of Computer Science and Technology ,Donghua University ,Shanghai 200051,China ;2.Shanghai Institute of Computing Technology ,Shanghai 200040,China )Abstract :TinyOS is the specific operating system for wireless sensor networks.First ,this paper introduces the key techniques of TinyOS ,such as component-based model ,scheduling mechanism ,communication model and energy management.Then it brieflycompares with the other two operating system μCOS-II ,μT-Kernel about RAM /ROM ,realtime performance ,low power etc.Fi-nally ,TinyOS shortcomings and exist problems are summarized.Key words :wireless sensor networks ;TinyOS ;review0引言无线传感器网络(WSN )[1-4]是多个具有感知、通信和计算能力的小型无线传感器网络节点自组织而成的新型网络,能够协作实时监测、感知和采集网络分布区域内的各种环境或监测对象信息,并对这些信息进行传输处理以获得所需信息。
-137-/2012.11/基于TinyOS的无线传感器网络节点设计西安工程大学机电工程学院 李远朝 高晓丁 李忠欣【摘要】本文从硬件和软件两个方面分析了构建无线传感器网络节点的一般规律和方法,设计了以msp430控制芯片和D21DL无线数传电台为核心的无线传感器网络硬件平台、无线传感器网络系统软件移植了加州大学伯克利学院开发的专用于无线传感器网络的TinyOS开源系统,在此基础上进行硬件驱动以及上层通讯协议的开发。
【关键词】TinyOS;传感器网络节点;msp430;无线数传电台Design of WSN Node on TinyOS PlatformLi Yuan-chao Gao Xiao-ding(College of mechanical and electrical,Xi’an Polytechnic University,Xi’an 710048,China)Abstract:The general rules and methods of building wireless sensor network(WSN)node are analyzed from aspects of hardware and software.The wireless sensor network has been built with the msp430 MCU and wireless digital radio.And the software of wireless sensor network has been developed on the tinyOS which is developed by the California Berkeley College for WSN fi eld.Keywords:TinyOS;WSN node;msp430;wireless digital radio1.引言无线传感器网络(WSN)是传感器和无线通讯以及电子等技术的结合,起初是用于解决因监测区域范围过大、监测节点过多或者环境太恶劣等的地方。
1 节点组成节点是无线传感器网络中部署到研究区域中用于收集和转发信息、协作完成指定任务的对象。
每个节点上运行的程序可以是完全相同的,唯一不同的是其ID。
1.1 节点构成无线传感器节点由传感器模块、处理器模块、无线电通信模块和能量供应模块4部分组成,整个结构如图1所示。
图1 无线传感器节点构成框图本质上,无线传感器节点就是一个网络化的分布式嵌入式系统,通过无线信道实现网络间的通信。
为了减少通信量,在本地完成必要计算进行数据融合,从而协作完成部署空间数据的采集。
在应用上体现以网络为中心,节点的功能通过网络来体现。
因而传统的嵌入式设计思想在无线传感器网络中遇到许多挑战:节点中运行程序存在大量并行和节点协同计算。
1.2 节点特点无线传感器网络是应用相关性网络,不同应用领域使用不同的网络技术实现。
由于无线传感器节点是用于监测的,分布密度大且范畴广,因此必须低成本、低功耗和小尺寸。
从现有技术条件来看,值得考虑的是节点成本和能源补给。
节点不可能采用太高的频率,因为频率与能量的消耗是正相关的,频率高则能量消耗大。
另外无线电通信模块能量消耗也大,传送距离同能量消耗也是正相关的,因而须在发送距离和节点数之间做出权衡。
1.3 Mica节点加州大学伯克利分校主持开发的低功耗无线传感器节点Mica,处理器芯片采用Atmel公司的****R系列(TI公司的MSP430也是不错的选择),无线电收发模块采用TR1000或CC10000,外加相应传感器接口,实现了无线传感器节点,如图2所示。
节点间通过无线电方式进行通信,协作完成指定任务;节点自身通过ADC通道来感知外界数据。
图2 Mica节点实物图Mica节点上可感知多个不同物理量:光强度、温度、地磁强度等。
/网站提供了其实现的硬件布线图,加州大学伯克利分校研发人员为这个平台开发出微型操作系统TinyOS和编程语言nesC,同时国内外很多大学和机构利用这一平台进行相关问题的研究。
无线传感器网络与现在传感器技术最大的不同在于,将现有的传感器技术进行网络化,使传感器技术应用更好,为现在传感器技术提供更新的解决方法。
2 节点上微型操作系统无线传感器网络节点存储容量有限。
通过研究发现,要满足其自身网络运行的需要,可以使用一种新的嵌入式系统和嵌入式软件来实现。
2.1 操作系统需求从对节点结构分析不难看出,无线传感器节点硬件简单,可以直接在硬件上进行编程。
但这在工程实践中产生许多问题:应用程序开发的难度大大增加,程序员必须对硬件十分了解;程序员无法继承现有的软件成果,延长开发周期;无法形成规模化,使用新的芯片,上层模块都必须改写。
从现有软件技术来看,无线传感器可以直接使用现有的嵌入式操作系统。
现有嵌入式操作系统大多是实时操作系统,很少考虑能源供应,而无线传感器一个致命点就是能源供应无法解决;现有嵌入式操作系统大多所占用空间很大,而无线传感器另一个致命点又是存储容量有限。
无线传感器节点有两个突出特点:一个是消息到达的并发性,很密集,即存在多个需要同时执行的逻辑控制,需要操作系统在较短时间内完成这些频繁发生的操作;另一个是无线传感器节点模块化程序高,要求操作系统为应用程序对硬件控制提供方便操作。
2.2 TinyOS操作系统操作系统就是为用户提供一个良好的用户接口。
基于以上分析,研发人员在无线传感器节点处理能力和存储能力有限情况下设计一种新型的嵌入式系统TinyOS,具有更强的网络理和资源收集能力,满足无线传感器网络的要求。
为满足无线传感器网络的要求,研究人员在TinyOS中引入4种技术:轻线程、主动消息、事件驱动和组件化编程。
轻线程主要是针对节点并发操作可能比较频繁,且线程比较短,传统的进程/线程调度无法满足(使用传统调度算法会产生大量能量用在无效的进程互换过程中)的问题提出的。
主动消息是并行计算机中的概念。
在发送消息的同时传送处理这个消息的相应处理函数ID 和处理数据,接收方得到消息后可立即进行处理,从而减少通信量。
整个系统的运行是因为事件驱动而运行的,没有事件发生时,微处理器进入睡眠状态,从而可以达到节能的目的。
组件就是对软硬件进行功能抽象。
整个系统是由组件构成的,通过组件提高软件重用度和兼容性,程序员只关心组件的功能和自己的业务逻辑,而不必关心组件的具体实现,从而提高编程效率。
2.3 TinyOS操作系统的实现TinyOS操作系统最初是用C语言实现的,产生的目标代码比较长。
后来研究设计出基于组件化和并行模型的nesC语言,产生的目标代码相对较小。
用nesC语言可开发TinyOS操作系统和其上运行的应用程序。
2.3.1 接口接口(interface)是一个双向通道,表明接口具有的功能和事件通知能力是双向的,向调用者提供命令和实现命令者进行事件通告。
interface name {asy commandresult_t Cname(pram p);asy eventresult_tEname(pram p);}其示意图如图3所示。
图3 接口示意图在接口中声明命令和事件实现不同的功能,命令是接口具有的功能,事件是接口具有通告事件发生的能力。
Asy可以命令或事件在中断处理程序中调用。
接口体现事件驱动功能和模块化。
通过事件通告让使用接口者对事件进行响应;任何满足接口功能的实现者都可被其他需要这个接口功能的组件调用。
2.3.2 组件组件是配线文件或模块文件,是逻辑功能的抽象。
程序员完全可直接调用组件进行程序开发。
配线文件只是完成组件之间的接口连接,模块文件则具体实现接口中的命令和事件。
在这两个文件中都可使用provides、uses语句。
provides表明这个组件可以提供哪些接口,实现这些接口的命令和事件通知。
uses表明这个组件使用哪些接口,组件可以接口中提供的命令和实现对接口中事件进行响应。
基于组件的思想,一个组件可通过多个组件实现一定的逻辑功能,对外声明需要哪些接口和提供哪些接口。
图5所示为由组件A、B和C形成的新功能组件D。
图5 组件D结构图2.3.3 并行模型通过任务(task)和中断处理事件(interrupt hander event)来体现TinyOS并行处理能力。
任务(task)会加入一个FIFO队列中,执行过程中,任务间没有竞争;但中断处理程序可以打断任务执行。
TinyOS采用二级调度机制来满足无线传感网络运行特点,整个程序调度过程如图6所示。
组件中完成任务提交,由操作系统完成调度。
图6 TinyOS程序结构框图基于以上分析,一个节点上应用程序的框图如图7所示。
操作系统只是在后台提供队列服务。
图7 应用程序结构框图3、具体实例现以节点收发计数器中的数值为例,更为详细地说明网络协议是如何通过主动消息传递来实现的。
程序要求节点启动以后,开始让计数器计数,每秒向外广播自己的计数值,同时接收其他节点上计数器的值。
3.1 main组件TinyOS应用程序从main组件开始,完成main组件的StdControl接口的3个命令init()、start()和stop()的具体实现。
这个接口中命令执行次序可用init* (start|stop)*,应用程序执行前执行init()完成必要初始化工作,start是这个程序要完成的工作,stop是系统关闭前所要执行的动作。
这个接口是TinyOS应用程序标准接口,与硬件操作相关的其他组件必须用到这个接口,实现接口中的命令。
3.2 使用的接口StdControl接口完成应用程序启动及相关硬件初始化。
interface StdControl {command result_t init();command result_t start();command result_t stop();}Timer接口实现计数功能。
interface Timer {command result_t start(char type, uint32_t interval);//设定触发类型和计数值command result_t stop()//中止计数器event result_t fired();//计数器定时触发事件}SendMsg接口发送消息。
interface SendMsg {command result_t send(uint16_t address, uint8_t length, TOS_M sgPtr msg);//发送消息event result_t sendDone(TOS_MsgPtr msg, result_t success);//消息发送完成以后事件}ReceiveMsg接口接收消息。
interface ReceiveMsg {event TOS_MsgPtr receive(TOS_MsgPtr m);//接收到消息事件}3.3 使用的组件组件Main, test5M,TimerC,GenericComm as Comm实现逻辑功能。
Main是系统必需的。
test5M提供接口的命令并实现对调用接口事件的响应。
GenericComm完成消息的发送和对接收消息的通告。
其配线文件如下:Main.StdControl -> test5M.StdControl;Main.StdControl -> TimerC.StdControl;test5M.Timer -> TimerC.Timer[unique("Timer")];test5M.SubControl->Comm;test5M.Send -> Comm.SendMsg;test5M.Receive->Comm.ReceiveMsg;3.4 test5M模块文件test5M模块接口如下:module test5M {provides {interface StdControl;}uses {interface Timer;interface SendMsg as Send/[uint8_t id/];//发送消息接口interface ReceiveMsg as Receive/[uint8_t id/];//接收消息interface StdControl as SubControl;//子组件:完成发送初始化}}provides声明这个组件所实现接口中命令和通告相关事件的产生。
需要实现StdControl接口中命令init()、start()和stop()。
Uses声明这个组件调用接口中命令并对接口中事件进行响应。
所需要响应的事件为Timer 接口的fired()事件、SendMsg接口的sendDone事件和ReceiveMsg接口的receive事件。
size=2>provides声明这个组件所实现接口中命令和通告相关事件的产生。