无线传感器网络操作系统_TinyOS

合集下载

ZigBee 和 Tinyos

ZigBee 和 Tinyos

关于ZigBee和TinyOSZigBee的基础是IEEE 802.15.4。

但IEEE仅处理低级MAC层和物理层协议,因此Zigbee 联盟扩展了IEEE,对其网络层协议和API进行了标准化,这就是Z‐STACK,Z‐STACK协议栈是TI公司研发,通过ZigBee联盟认证的免费协议栈,协议内部包括了WSN(无线传感器网络)的OS的模型,协议栈具有国际化,标准化的特点,协议栈已提供十几种应用场景,可以非常轻松的让用户开发出满足国际标准的产品。

TinyOS是一个空白的嵌入式操作系统(从TinyOS的安装过程就可以感知),理论上支持任何WSN(无线传感器网络)的OS架构,但到目前为止还没有一个基于TinyOS操作系统的ZigBee协议栈通过ZigBee联盟的认证,因此TinyOS的应用受到很大限制,并且就IC芯片而言,TinyOS被最多应用的是基于TI公司04年出的CC2430芯片上,对于最新的ZigBee 芯片CC2530则偶见于某些高校的实验项目中。

而ZigBee联盟则完全支持CC2530,即ZStack‐CC2530‐2.3.0‐1.4.0协议栈(免费)ZigBee和Z‐STACK环境理论知识C51编程(C语言或者汇编语言)单片机接口单片机调试、下载和烧写过程所需应用程序ZStack‐CC2530‐2.3.0‐1.4.0:协议栈(免费)IAR System 8051 8302:IAR EW8051编译器(许可证)SmartRF Flash Programmer 1.9.0:FLASH烧写(免费)SmartRF04EB仿真器驱动(win_64bit_x64、win_32bit_x86):仿真器驱动程序(安装SmartRF Flash Programmer时需要)ZigBee Sensor Monitor 1.2.0:节点监视(可选)RemoTI‐CC2530DK‐1.1:TI的开发组件(可选)Packet Sniffer 2.13.2:抓包软件(可选)Eclipse:编程工具(可选)TinyOS环境(Windows OS)理论知识Linux环境及常用Linux命令Linux下CC2430编译和烧写C,nesC两种编程语言C++,JAVA有一定了解开发过程将Tinyos2.x 移植到CC2430(CC2530) 编译环境的构建流程:在 windows 下建立 cygwin 平台,并构建 TinyOS的编译环境,然后将基于 TinyOS 的应用程序编译成hex文件,通过仿真器下载到CC2430(CC2530)芯片运行。

基于TinyOS操作系统的无线传感器网络自组网研究_张侃侃

基于TinyOS操作系统的无线传感器网络自组网研究_张侃侃

第20卷 第6期2007年6月传感技术学报CHINESE JO URNAL OF S ENSO RS AND ACTU ATORSVol.20 No.6JUN.2007The Research on Self -Organiaed Network for Wireless Sensor NetworkBased on TinyOS Operating System*ZH A N G K an -kan 1,L I U Ye 1*,A SK AE R 2,CH E N J ing -hou 1,SH U X iu -mei ,CH EN J iang-bo1.Electic al E ngineer ing Depar tment,X i 'a n J iaoton g Univ er sity ,X i 'an 710049,China;2.Electic al E ngineer ing Depar tment,X ing j iang Univ er sity ,X ingj iang 83008,Ch inaAbstract:This article pr esents a practical design of self -o rganized netw ork for W ir eless Sensor Netw ork.It com es from the backg round and applicatio n based on the research on TinyOS operating sy stem,pr ogram -m ing language and the structure o f softw are system.In order to make it possible fo r the nodes to com mu -nicate w ith each other and send data to the base -station,this ar ticle presents the desig n of self -o rganized netw ork for Wireless Sensor N etw ork,and the experiment results based o n the hardw are flat.Readers can get the structure and develop flo w o f softw are fo r w ireless senso r netw ork,w hich pro vide a v aluable r efer -ence for netw ork topolog y control and its realization.T he exper im ent m akes the arithmetic feasible.Key words:w ireless sensor netw ork;self -organized;Ad hoc;TinyOS;cluster head EEACC :7230;6150P;6210基于T inyOS 操作系统的无线传感器网络自组网研究*张侃侃1,刘 晔1*,艾斯喀尔#喀迪尔2,陈敬后1,束秀梅1,陈江波11.西安交通大学电气工程学院,西安710049;2.新疆大学电气工程学院,乌鲁木齐830008基金项目:中科院计算所苏州分所资助收稿日期:2006-07-18 修改日期:2006-10-16摘 要:介绍了一种实用的无线传感器网络自组网的实现方法.以无线传感器的研究背景和应用方向为出发点,为实现随机分布的节点之间可以自由通信并发送数据到基栈的功能,通过对T iny OS 操作系统,编程语言特点以及软件系统结构的研究,建立其自组网的设计方案,并给出在硬件平台上实现自组网的实验结果.实验结果验证了算法的可行性.关键词:无线传感器网络;自组网;Ad hoc;T inyOS;簇头中图分类号:TP212.6 文献标识码:A 文章编号:1004-1699(2007)06-1349-04 计算机网络应用的延伸以及远程实现为无线传感器网络在收集和处理远距离数据方面提供了新的途径.无线传感器网络基于简单的硬件构造,以实现传感器现场分布可靠和持久,且无须任何维护.无线传感器网络(Wireless Sensor Netw ork)是一种由传感器节点构成的网络,能够实时地协作地检测、感知和采集网络分布区域内的各种检测对象信息,提供海量的详细测量数据,并对这些数据进行处理,发布给用户.是一种特殊的Ad H oc 网络,具有低功耗、自组织、响应快、鲁棒性强等特点,在军事、环境检测、医疗、工业控制等方面有着广泛的应用前景.现阶段国内主要研究MAC 层算法、路由算法等,而在把实现节点间自组网以及如何在现有的TinyOS 操作系统基础上加载新的功能上研究不够.本文在深入剖析TinyOS 操作系统软件基础上,设计并完成了应用层程序的开发,实现了基于T inyOS 操作系统的无线传感器节点间的自组网拓扑控制.论文首先介绍了针对无线传感器网络而开发的TinyOS 操作系统,在此基础上提出基于TinyOS 操作系统的无线传感器自组网应考虑的问题,通过实现方案的流程、构造组件间的相互关系建立简单实用的WSN 网络层,最后通过T inyOS 操作系统对自组网方案进行仿真,得到自组网的结果.1 T inyO S 操作系统的特点TinyOS 是美国加州大学伯克利分校专门针对传感器网络特点而设计的操作系统.T iny OS 使用高效的基于事件的执行方式,包含经过特殊设计的组建模型,从而成为高效率的模块化和易于构造的组件型应用软件.在T inyOS 中,应用程序开发人员可以通过nesC 语言表达组件以及组件之间的事件/命令接口.组件分为配置文件和模块,程序的流程是通过配置文件中接口的连接实现而构建起来的,而具体实现的逻辑功能是通过模块完成的.每个模块由一组命令和事件组成,这些命令和事件成为该模块的接口.一般来说,上层组件对下层组件发命令,下层组件发信号通知事件的发生,最底层的组件直接和硬件交互,从而自上到下形成一种树状结构,如图1所示.图1 nesC 构建的一般应用程序框架在T iny OS 操作系统中,已经为使用者提供了一些通用接口,自组网的实现就是建立在原有的接口之上,设计完成组网方案并调用下层M AC 层和物理层的接口,完成组网功能.2 实现自组网的方案无线传感器网络(Wireless Sensor Netw ork)自组网具有大规模、自组织、动态性、可靠、相通应用、以数据为中心的特点.本文在Crossbow 公司生产的Micaz 硬件平台上实现了无线传感器网络节点间的自组网,设计并实现了应用层程序的开发,完成了节点间的数据传输.实验平台实现的是分级的Ad ho c 网,分级的A d hoc 网要求节点只与最近的邻居节点通信,其优点是网络规模不受限制,可扩充性好,而且某些节点可以被定义为具有外加功能的中心节点(或者称为簇头),从而如果一个中心节点无法正常工作,另外的节点可以替代它完成任务,以实现相互备用.算法理论依据在分级结构的Adho c 无线网络拓扑结构中,整个网络是以簇为子网组成,每个簇由一个簇头和多个簇成员组成,簇头形成高一级网络,高一级网络又可分簇形成更高一级网络.每一个簇中的簇头和簇成员是动态变化、自动组网.在自组网方案算法中,选择随机簇头选择算法.并且设定节点涵盖信息较少,只知道自己的能量信息和节点标识ID.首先节点以地理位置为依据将检测区域划分为不同的簇,每个簇定期选择一个簇头节点,只有簇头节点在自组网过程中处于唤醒状态,其他节点进入休眠状态.在自组网过程中需要先选择簇头,选择簇头依据是随机簇头选择算法.在T 时刻,对任意节点p ,以概率P 发送测试消息,测试消息发送成功后,节点发送消息M =(E p ,P)式中,E p 为节点p 的剩余能量,与P 成正比.如果测试消息不成功,节点进入侦听状态.在每个周期内如果有节点成功发送消息,则此节点担任该簇的簇头,反之则进行下一个周期的消息发送机制.自组网要求每个簇的节点先从休眠状态中唤醒,然后开始对周围的节点进行扫描,如果发现其他节点信号,则建立邻节点列表,将活动的节点地址加入到邻节点列表中.在自组网设计中,由于节点休眠和活跃时间的变化,设定每隔一段时间重新扫描邻节点信息,以便更新邻节点列表.由于是基于TinyOS 操作系统的软件上实现的,使用nesC 模块组件编程,自组网的程序作为配置文件和模块同上层程序连接起来.同时,与和上层程序连接的还有路由算法,所以流程图中,自组网和路由是同时实现的,即节点间自组网成功时,路由也已经完成.图2是节点自组网的实现流程,图3是具体模块间的调用关系.从开始初始化到入网成功向图2 组网程序流程1350传 感 技 术 学 报2007年外发送数据,每个节点都具备选择路由和数据转发的功能.在自组网的流程中,体现的是模块之间的调用关系,应用层调用的各个模块分别实现不同的功能.从应用层、网络层、M AC 层到物理层配置文件通过接口向下层调用,具体模块间的调用关系如图3所示.图3 测试程序总流程图3 建立网络连接在建立网络连接过程中,使用3个节点组网,选择一个节点作为基站,一个节点距离基站较近,另一个节点距离基站较远.在TinyOS 操作系统中,键入命令:运行后台程序Java net.tinyo s.sf.SserialForw arder -co mm serial@COM1:57600拓扑图显示Jav a net.tiny os.surge.M ainClass 125输出串口数据Jav a net.tiny os.to ols.listen4 实验结果实验平台使用T iny OS 操作系统,通过下层提供的物理层和MAC 层的接口,使用nesC 语言对网络层的组网进行开发,将编译好的代码下通过专用的下载调试器下载到m icaz 硬件节点上,并将基站节点和PC 机的串口相连,最后通过TinyOS 系统自带的应用工具读出串口数据,并得到相应节点间的组网拓扑图.图4给出了节点通过多跳的方式将数据传输给基站的状态.图4 网络节点的拓扑图表1是两个节点同时处于工作状态时发送给基站的数据表1 节点发送到基站的数据F F FF 0A 7D 1C 0200CE 0E 01000300B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0100CE 0E 01000400B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0200CE 0E 01000500B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0100CE 0E 01000600B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0200CE 0E 01000700B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0100CE 0E 01000800B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0200CE 0E 01000900B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0100CE 0E 01000A 00B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0200CE 0E 01000B 00B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0100CE 0E 01000C 00B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0200CE 0E 01000D 00B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0100CE 0E 01000E 00B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0200CE 0E 01000F 00B700B800B700B700B700B700B700B700B800B700F F FF 0A 7D 1C 0100D80E 01000000B700B700B700B700B700B700B700B700B700B700F FFF0A7D1C0200D80E01000100B700B700B700B700B700B700B700B700B700B7005 结 论论文设计并实现了无线传感器网络的自组网拓扑控制,实验结果表明:由三个节点(一个基站节点,两个普通节点)实现的自组网方案已经实现了数据的发送和接收功能.在上述试验方案基础上,射频收发数据速率为38.4kbps,接收功率为29m W,节点活动期间的总功耗为89mW,使用inv er ted -F 微带线天线和SMA 连接器,传输最大距离可达125m.当一个节点和基站节点的距离超过最大传输距离时,可以通过多跳路由实现数据的多跳传输.参考文献:[1] 耿祥义.JAVA2实用教程[M ],清华大学出版社,2001:120-203.[2] Dvid Gay.n esC 1.1Language Refer ence M anual[S].2003.3.[3] Philip Levis ,Ad -H oc Routing Comp on ent Architectu re[M ].1351第6期张侃侃,刘 晔等:基于TinyOS 操作系统的无线传感器网络自组网研究2005.2.5.[4]孙利民.无线传感器网络[M],清华大学出版社,2005:95-123.[5]Crossbow Corporation,M ote-View User.s M anual[S].2006.1.[6] F.L.LEWIS.W ireles s Sensor Netw orks[Z].IEEE S mart En-vironmen t,2004.[7]卿利,朱清新,王明文,软件学报[J].2006.3,17(3):481-489.[8]Bruce E ckel.Thin king in Java[M].w w w.Bru ceE .[9]李翔,阎新芳等.无线传感器网络中簇树骨干网的构建及计算[J].传感技术学报,2006,19(4):1281-1283.张侃侃(1982-),女,山东日照人.西安交通大学电气工程学院控制理论与控制科学专业硕士生.主要研究方向为无线传感器网络的研发,研究其组网功能及其算法改进,kankanzhang82@yahoo.刘晔(1963-),男,副教授,电气工程学院电工电子教学实验中心副主任.主要研究方向为光学电流互感器的研究,liuye@mail.x 1352传感技术学报2007年。

无线传感器网络操作系统-TinyOS

无线传感器网络操作系统-TinyOS

无线传感器网络操作系统-TinyOS
赵得斌;陈远知;杨仕勇
【期刊名称】《中国传媒大学学报(自然科学版)》
【年(卷),期】2008(015)004
【摘要】无线传感器网络(WSN)综合了传感器技术、嵌入式计算技术、现代网络及无线通信技术,是备受关注的新兴前沿研究热点.本文将对其专用操作系统TinyOS的特点,框架结构,运行机制三个方面进行阐述,为更好地了解传感器网络操作系统和开发其应用软件提供了参考和依据.
【总页数】5页(P71-75)
【作者】赵得斌;陈远知;杨仕勇
【作者单位】中国传媒大学,广播电视数字化工程中心,北京,100024;中国传媒大学,广播电视数字化工程中心,北京,100024;北京比特威尔科技有限公司,北京,100085【正文语种】中文
【中图分类】TN929
【相关文献】
1.TinyOS无线传感器网络操作系统分析 [J], 邱璐璐
2.无线传感器网络操作系统TinyOS的移植 [J], 程龙;杨波
3.无线传感器网络操作系统TinyOS综述 [J], 吴小娜;王漫
4.无线传感器网络操作系统TinyOS的研究 [J], 王斌
5.无线传感器网络操作系统TinyOS的研究与实例开发 [J], 段海龙;杨丽;任淑艳;李静
因版权原因,仅展示原文概要,查看原文内容请购买。

第六章 无线传感器网络操作系统

第六章 无线传感器网络操作系统

组件的语法定义如下:
3. 组 件(component)
规范(specification)列出了该组件所提供或 使用的规范元素 (接口实例、命令或事件)。
specification: { uses-provides-list } 一个组件规范可以有多个uses和 uses-provides-list: provides指令。 uses-provides uses-provides-list uses-provides uses-provides: uses specification-element-list provides specification-element-list specification-element-list: 多个uses和provides指令的规范元 specification-element { specification-elements } 素可以通过使用“{”和“}”符号在 一个uses或provides命令中指定。 specification-elements: specification-element specification-elements specification-element
2. 接 口(interface)
接口由interface类型定义,interface语 法定义如下:
nesC-file: includes-listopt interface …… interface: interface identifier { declaration-list } storage-class-specifier: also one of command event async
4. 模 块(module)
5. 配 臵(configuration)

无线传感器网络操作系统TinyOS的移植

无线传感器网络操作系统TinyOS的移植

无线传感器网络操作系统TinyOS的移植
程龙;杨波
【期刊名称】《计算机科学》
【年(卷),期】2011(038)B10
【摘要】TinyOS系统以其组件结构模型、事件驱动、简易的编程环境等优点成为目前最受关注的无线传感器网络操作系统,而CC2430以其高性能、低成本、低功
耗被广泛应用于无线传感器网络节点,但TinyOS不支持CC2430芯片,因此在分析TinyOS基本原理、NesC编程语言实现机制及其编译过程的基础上,介绍了基于
CC2430的TinyOS及NesC语言的移植方法,完成了NesC语言、CC2430的Timer组件、Uart组件、ADC组件和RF组件的移植,并测试了各组件的移植效果。

在移植的基础上,进行了基于优先级的任务调度机制的改进和星形网的组建。

实验
测试结果表明,两项扩展应用均已开发成功。

【总页数】3页(P323-325)
【作者】程龙;杨波
【作者单位】北京航空航天大学自动化科学与电气工程学院,北京100191
【正文语种】中文
【中图分类】TP316
【相关文献】
1.TinyOS无线传感器网络操作系统分析 [J], 邱璐璐
2.无线传感器网络操作系统TinyOS综述 [J], 吴小娜;王漫
3.无线传感器网络操作系统TinyOS的研究 [J], 王斌
4.无线传感器网络操作系统-TinyOS [J], 赵得斌;陈远知;杨仕勇
5.无线传感器网络操作系统TinyOS的研究与实例开发 [J], 段海龙;杨丽;任淑艳;李静
因版权原因,仅展示原文概要,查看原文内容请购买。

Lesson1---TinyOS入门1

Lesson1---TinyOS入门1
• 运行环境:TinyOS 2.1 + Cygwin (Windows XP) • Cygwin在Windows下提供一个类似Linux的环境
11
一、编译和安装
• 作为一开始的学习,先来编译一个非常简 单的程序 Blink。若没有硬件节点,可以用 TinyOS的TOSSIM仿真平台进行编译运行。 • 编译TinyOS程序使用make命令,TinyOS系 统有一个强大的扩展性很强的make 系统, 位于 tinyos-2.x/support/make目录中。 • 先运行如下命令检查环境是否正确配置。 • $ tos-check-env
8
• 总的来说,TinyOS 调度模型有以下特点:
(1)任务单线程运行到结束,仅分配单个任务栈, 这对内存受限系统很有利。 (2)任务调度算法采用非抢占式的FIFO 算法,任 务之间相互平等,没有优先级之分。 (3)TinyOS 的调度策略具有能量意识,当任务队 列为空时,处理器进入休眠模式,直到外部事件 将它唤醒,能有效的降低系统能耗。 (4)这种基于事件的调度策略,允许独立的组件共 享单个执行的上下文, 只需少量运行空间就能获 得高度的并发性。
• 规范
– nesC应用程序由一个或多个组件连接而成。 – 一个组件可以提供或使用接口:
» 组件中command接口由组件本身实现; » 组件中event接口由调用者实现; » 接口是双向的,调用command接口必须实现其event接口。
26
2.1 配件和模块
• 组件有两种:配件和模块。 • 模块(module):提供一个或多个接口的实现。 • 配件(configuration):把其他的组件装配起来, 连接组件使用的接口到其提供者。 • 每个nesC应用程序都必须有且只有一个顶层配件 (top-level configuration)连接内部组件。 • 之所以区别设计模块与配件,是为了让系统设计 者在构建应用程序的时候可以脱离现有的实现。 例如:设计者可以提供配件,只是简单地把一个 或多个模块连接起来,而不涉及其中具体的工作。 同样地,另一个开发者负责提供一组模块库,这 些模块可以普遍使用到众多应用中。

《TinyOS操作系统开发技术及实践》课件第1章

《TinyOS操作系统开发技术及实践》课件第1章

1.2 WSN操作系统
无线传感器网络操作系统(简称为WSN操作系统或 WSNOS)是无线传感器网络的关键支撑技术之一(即系统软件 技术)。WSN操作系统可以有效地管理硬件资源和执行任务, 降低传感器网络的应用开发难度,提高软件的重用性。
当前比较流行WSN操作系统有TinyOS、Contiki、 MANTIS、SOS,它们的特点及对比如表1-1所示。
1.3.2 体系结构 TinyOS操作系统采用组件式分层体系结构,这种体系结
构可以快速地实现各种应用,详细内容请参见本书第3章。
1.3.3 硬件支持 TinyOS可运行于不同的硬件平台和微处理器上,并支持
多款射频芯片,且支持NOR Flash设备。以2.1.1版为例的 TinyOS支持以下硬件:
系统软件:WSN是深度嵌入的网络系统,因此要求操作 系统既要能完成网络系统要求的各项功能,又不能过于复杂。 目前看,TinyOS是最成功的WSN专用系统。
数据管理:包括分布式动态实时数据管理以及信息融合。 能量供给:包括能量的获取和存储。
1.1.2 特点 无线传感网与传统的无线网络(如Ad hoc网络、GSM、
2. 项目发展 TinyOS是开源项目,目前已不再由UCB单独开发和维护, 从0.4版到2.0版,TinyOS由(全球最大开源软件 开发平台和仓库)的一个开放项目,逐渐演变成了一个国际合 作项目。从2012年12月开始,TinyOS的开发和维护(包括开发 邮件列表和BUG跟踪记录)逐渐过渡到GitHub(一个逐渐流行起 来的分布式版本控制系统)上,至2013年1月项目迁移完毕。 TinyOS在GitHub上的虚拟主机地址是:https:/// tinyos。 TinyOS官方网站是:,其产品标志如 图1-1所示。

第6章 无线传感器网络操作系统

第6章 无线传感器网络操作系统

34
6.2.6 TinyOS 的典型应用与分析
BlinkM.nc是提供Blink应用程序实际实现 的文件; Blink.nc是Blink应用程序的配置,也是 nesC编译器用来生成可执行程序文件的源文 件。
35
第六章 无线传感器网络操作系统
6.1 无线传感器网络操作系统概述 6.2 6.3 6.4 6.5 TinyOS操作系统 MantisOS操作系统 SOS操作系统
第6章 无线传感器网络操作系统
6.1
无线传感器网络操作系统概述 6.2 6.3 6.4 TinyOS操作系统 MantisOS操作系统 SOS操作系统
6.5
无线传感器网络操作系统的主要技术挑战
2
6.1
无线传感器网络操作系统概述
1
3
第六章 无线传感器网络操作系统
6.1 无线传感器网络操作系统概述 6.2 6.3 6.4 6.5 TinyOS操作系统 MantisOS操作系统 SOS操作系统
16
6.2.2 TinyOS的组件模型
图6-1 支持多跳无线通信的传感器应用程序的组件结构
17
6.2
TinyOS操作系统
6.2.1 nesC语言基础
6.2.4 TinyOS 1.0的型
6.2.5 TinyOS 2.0的安装与调试
6.2.3 TinyOS的通信模型
20
6.2.3 TinyOS的通信模型
主动消息通信实现为一个TinyOS系统的 组件,屏蔽了下层各种不同的通信硬件,为上 层应用提供基本的、一致的通信原语,方便应 用层序开发人员开发各种不同应用。 TinyOS只能提供最基本的通信组件,最 后由应用程序选择或定制所需要的特殊通信 组件。
21
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第15卷,第4期2008年12月 中国传媒大学学报自然科学版JOURNAL OF C OMMUN I C ATI O N UN I V ERSI TY OF CH I N A(SC I E NCE AND TECHNOLOGY)Vol.15,No.4Dec.,2008无线传感器网络操作系统-TinyOS赵得斌1,陈远知1,杨仕勇2(11中国传媒大学 广播电视数字化工程中心,北京100024;21北京比特威尔科技有限公司,北京100085)摘要:无线传感器网络(W S N)综合了传感器技术、嵌入式计算技术、现代网络及无线通信技术,是备受关注的新兴前沿研究热点。

本文将对其专用操作系统Tiny OS的特点,框架结构,运行机制三个方面进行阐述,为更好地了解传感器网络操作系统和开发其应用软件提供了参考和依据。

关键词:无线传感器网络;操作系统;Tiny OS中图分类号:T N929 文献标识码:A 文章编号:1673-4793(2008)04-0071-05The O pera ti n g Syste m O f W i reless Sen sor Net2T i n y O SZHAO De2bin1,CHEN Yuan2zhi1,Y ANG Shi2yong2(11Engineering Center of D igital Audi o&V ideo,Communicati on University of China,Beijing100024;21Bejing B it W are Technol ogy Co1L td,Beijing100085)Abstract:Combined with the technol ogy of sens ors,e mbedded syste m,mesh work and wireless co mmuni2 cati ons,W S N is a ne w research hots pot1This paper p resents the features,fra me structure and operating mechanis m of the dedicated operating syste m2Tiny OS t o p r ovide reference and basis f or understanding sens or net w ork operating syste m and devel op ing app licati on s oft w are1Key words:W ireless Sens or Net w orks;Operating Syste m;Tiny OS1 引言无线传感器网络(W S N)综合了传感器技术、嵌入式计算技术、现代网络、无线通信技术及分布式信息处理技术,是备受关注的新兴前沿研究热点,可以实现人与自然物以及物与物对话的无处不在的通讯和计算。

从矿山探测到军事“智能尘埃”(S mart Dust)到辅助足球裁判,广阔的应用前景掀起了国内外对W S N的研究热潮。

W S N具有动态性、适应性和分布处理能力,它由以通讯为中心的、大量的、小型和微型采集设备构成[1]。

它是一种特殊的Ad Hoc网络,相对于传统无线网络,其特点为网络节点密度高、数据传输具有突发性和间断性、网络节点间可自组织通信、拓扑变化频繁、具备容错能力等;这些特点要求有一个精心设计的系统软件来很好地管理各硬件资源以最大限度地降低运算功耗和通讯功耗。

Tiny OS是加州伯克利分校研发的W S N嵌入式操作系统,源码公开,主要应用在其研发的M I CA系列节点上,当然由于其源码公开,所以别的系列节点也可以借鉴,只要做一些适当的改动。

收稿日期:2008-01-05基金项目:横向项目(HG0714)作者简介:赵得斌,(1984-),男(汉族),中国传媒大学硕士研究生1E mail:zhdb1984@g mail1com。

中国传媒大学学报自然科学版第15卷2 Tiny OS 的基本特点Tiny OS 是专为无线传感器网络设计的低功耗的嵌入式操作系统。

目前,它已经被成功的应用到多种硬件平台上,具有很高的应用价值和研究意义。

Tiny OS 的特点主要体现在以下几个方面:(1)组件化编程(Componented -Based A rchitec 2ture )。

Tiny OS 包含了经过特殊设计的组件模型,其目标是高效率的模块化和易于构造组件型应用软件。

(2)事件驱动模式(Event -D riven A rchitec 2ture )。

Tiny OS 中,当一个任务完成后,就可以使其触发一个事件,然后Tiny OS 就会自动地调用相应的处理函数。

(3)任务和事件并发模式(Tasks And Events Concurrency Model )。

任务之间是平等的,即在执行时是按顺序先后来的,而不能相互抢占。

事件用在对于时间的要求很严格的应用中,而且它可以优先于任务执行。

(4)分段执行(Sp lit -Phase Operati ons )。

在Ti 2ny OS 中由于任务之间不能互相抢占执行,所以Tin 2y OS 没有提供任何阻塞操作,为了让一个耗时较长的操作尽快完成,一般来说都是将对这个操作的需求和这个操作的完成分开来实现,以便获得较高的执行效率。

(5)主动消息模式(active message )。

每一个消息都维护一个应用层和处理器[2],当目标节点收到这个消息后,就会把消息中的数据作为参数,传递给应用层的处理器进行处理。

应用层处理器一般完成消息数据的解包、计算处理或发送响应消息等工作。

由上看出,Tiny OS 操作系统很好地适应了W S N 的要求。

下面将从框架体系和任务调度机制两个方面对系统进行详细介绍。

3 Tiny OS 的框架结构在Tiny OS 中,操作系统和应用程序的区分并不明显。

它们在主机上一起被编译,然后烧写到目标节点上,目标代码中同时包含了两者。

另外,操作系统和应用程序在同一地址空间上运行,它们对硬件的访问权限相同,也就是说应用程序可以直接操纵硬件资源,所以在本质上,所有代码都是应用程序。

Tiny OS 为了提高可靠性而又不牺牲性能,建立了高效的组件模型。

组件模型允许应用程序开发人员方便快捷地将独立组件组合到各层配件文件中,并在面向应用程序的顶层配件文件中完成应用的整体装配。

组件包括两类:模块(module )和配置(configu 2rati on )[3],组件间通过配置文件连接在一起,形成一个可执行程序。

每个组件由一组命令和事件组成,这些命令和事件成为该模块的接口,接口实现了组件之间的相互联系,这就是Tiny OS 的框架结构。

图1是Tiny OS 的总体框架。

物理层硬件为组件的最底层,传感器、收发器以及时钟等硬件抽象层对上层组件屏蔽了底层硬件的特性,从而实现上层图1 框架结构示意图27第4期赵得斌等:无线传感器网络操作系统-Tiny OS组件的硬件无关性,以方便程序移植。

模块可以通过接口调用底层硬件,触发事件的发生,交由上层处理;相对下层的组件也能触发事件,交由上层处理;而上层会发出命令要求下层执行。

311 组件介绍Tiny OS 中的组件可分为三类:硬件抽象组件、合成硬件组件、高层次的软件组件。

硬件抽象组件将物理硬件映射为Tiny OS 组件模型;合成硬件组件模拟高级硬件的行为;高层次软件模块完成控制、路由以及数据传输等。

以下是一个支持多跳无线通信的组件集合,通过该组件集合我们就可以了解到不同组件的不同功能。

图2 支持无线多跳通信的组件结构 在图中无线发送模块是硬件抽象组件的代表,它发布命令以操作与其相连的各个单独I/O 引脚,为事件提供信号,通过数据的发送和接收与其他组件交换信息[4];该组件的帧包含模块当前状态,如收发器处于发送模式还是接收模式、当前数据传输速率等;在该组件中没有任务,因为硬件自身提供了并发控制,所以说它是从物理硬件到Tiny OS 组件上的映射。

图中Radi o Byte 组件是合成硬件组件的代表,它以字节为单位与上层组件交换数据,以位为单位与下面的无线发送模块交互;组建内部的任务完成数据的简单编、解码工作;该模块可以看成是一个能够直接构成增强型硬件的状态机。

图中主动消息模块等上层组件属于高层次软件模块;主动消息模块履行在传输前填充缓冲区以及将收到的消息分发给相应任务的功能。

高层次软件组件在系统中占了相当大的比例,是我们研究的重点,路由算法、数据集合计算都属于这一类型。

312 接口介绍组件提供或使用接口,这些接口是双向的并且是访问组件的唯一途径。

每个接口都定义了一系列函数,包括命令(command )和事件(event )两类。

对于命令,接口的提供者必须实现它;而对于事件,接口的使用者必须提供实现。

接口可以带类型参数,接口的类型参数放在一对尖括号内,如果提供者和使用者的接口都带有类型参数,那么在连接的时候,它们的类型必须匹配。

Tiny OS 接口具有如下特点:(1)提供的未必有组件使用,但使用的一定要有组件提供,否则会出现编译错误。

(2)组件之间可以由多个同样的接口连接,叫作多扇入或多扇出[5]。

(3)一个模块可以同时提供一组相同的接口,又称为参数化接口,表明该模块可提供多份同类资料,同时给多个模块分享。

接口把所有的组件链接起来,从而形成一个完37中国传媒大学学报自然科学版第15卷整的系统。

4 Tiny OS任务调度机制在Tiny OS程序模型中,处于最上层的是Main 组件。

该组件由操作系统提供,传感器上电复位后会首先执行该组件中的函数,其主要功能是初始化硬件、启动任务调度器以及执行用户组件的初始化函数、打开中断。

每个Tiny OS程序至少应该具有一个用户组件,该用户组件通过接口调用下层组件提供的服务、实现程序功能,如数据采集、数据处理、数据收发等。

完成了对用户组件的初始化以后开始运行队列中的任务。

Tiny OS的任务调度采用先进先出的简单的策略,任务之间不允许互相抢占。

在通用操作系统里,这种先进先出的调度策略是不可接受的,因为长任务一旦占据了处理器,其它任务无论是否紧急,都必须一直等待至长任务执行完毕。

Tiny OS之所以可以采用先进先出的调度策略基于这样一个事实:在传感器网络绝大多数应用中,所需要执行的任务都是短任务。

典型的任务有:采集一个数据,接收一条消息,发送一条消息。

尽管如此,为进一步缩减任务的运行时间,Tiny OS采用了分阶段操作模式来减少任务的运行时间[6]。

在该操作模式下,数据采集、接收消息、发送消息等需要和低速外部设备交互的操作都被分为两个阶段进行:第一阶段,程序启动硬件操作后迅速返回;第二阶段,硬件完成操作后通知程序。

相关文档
最新文档