




已阅读5页,还剩76页未读, 继续免费阅读
(计算机系统结构专业论文)基于tinyos的无线传感网操作系统研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华东师范大学硕士学位论文论文摘要 论文摘要 无线传感器网络w s n 是由大量体积小、资源受限并且具有一定计算能力 和无线通信能力的传感器节点组成。它低成本、低功耗等特点使其在多个领域 有着广泛的应用前景,成为近年来信息科学的一个研究热点。 w s n 的操作系统作为w s n 应用软件的开发基础,它的各种性能指标直接 影响了系统的性能,所以对于w s n 操作系统的研究是很有必要的。目前,由 加州大学伯克利分校开发的t m y o s 操作系统是实际上的无线传感器网络操作 系统标准。它的结构模块化、低功耗等优点使其被广泛应用于w s n 上,并成 为很多w s n 系统的参考设计。 作为业界的著名厂商之一,胁e s c a l e 公司也推出了基于w s n 的解决方案, 主要由基于h c s 0 8 指令集的m c u 和m c l 3 1 9 x 系列的无线收发器组成。不过, 迄今没有基于该解决方案的操作系统出现,所以将改进后的t i n y o s 应用于该 平台之上具有一定的意义。 本文首先分析了目前无线传感网操作系统的设计要求及设计思路,研究比 较了几种典型的w s n 操作系统,并研究了基于组件化编程的n e s c 语言。然后, 深入研究了在w s n 操作系统中占据重要位置的t i n y o s 操作系统,分析了 t i n y o s 的结构、调度机制、事件驱动机制等非常适合无线传感器网络的设计特 点,提出了一些改进方案,并在f r e e s c a l e 公司推出的w s n 的解决方案上,基 于m c 9 s 0 8 g t 6 0 及m c l 3 1 9 2 无线收发器设计了改进后的t i n y o s 操作系统模 型t i n y o s h c s 0 8 。 论文的研究结果在一定程度上可为相关科研项目或者相关领域的应用提供 参考解决方案。 关键词:无线传感网操作系统、t i n y o s 、m c 9 s 0 8 系列、m c l 3 1 9 x 系列 华东师范大学硕士学位论文a b s l l 研 a b s t r a c t w s n ( w i r e l e s ss e n s o rn e t w o r k ) i sc o m p o s e do fal a r g en u m b e ro fs m a l l , f e s o u r c e r e s t r a i n e ds e n s o rn o d e sw i t l lc e r t a i n c o m p u t i n g a n d w i r e l e s s c o m m u n i c a t i o na b i l i t i e s b e c a u s eo fi t sl o w - c o s ta n dl o wp o w e rc o n s u m p t i o n f e a t u r e sw s nh a sf a i r l ye x t e n s i v ea p p l i c a t i o np r o s p e c t si nm a n yf i e l d sa n db e c o m e s ar e s e a r c hh o t s p o to f i n f o r m a t i o nt e c h n o l o g yi nr e c e n ty e a r s b e c a u s et h eo p e r a t i n gs y s t e mo nw s ni st h ed e v e l o p m e n tb a s i so fw s n a p p l i c a t i o n s ,i t sp e r f o r m a n c ed i r e c t l ya f f e c t ss y s t e mp e r f o r m a n c e s ot h er e s e a r c ho f t h ew s no p e r a t i n gs y s t e mi sv e r yn e c e s s a r y t m y o sd e v e l o p e db yu cb e r k e l e yi s t h es t a n d a r do ft h ew s no p e r a t i n gs y s t e mn o w t i n y o si sw i d e l ya p p l i c a b l et o w s na n db e c o m e st h ed e s i g nr e f e r e n c eo fm a n yw s ns y s t e m sb e c a u s eo fi t s a d v a n t a g e ss u c ha sm o d u l a rc o m p o n e n t sa n dl o wp o w e rc o n s u m p t i o n f r e e s c a l e ,w h i c hi so n eo ff a m o u sc o m p a n i e s ,h a sl a u n c h e dt h es o l u t i o nf o r w s nm a d eu po ft h eh c s 0 8i n s t r u c t i o ns e tm c ua n dt h em c l 3 1 9 xs e r i e s t r a n s c e i v e r u pt on o w , n oo p e r a t i n gs y s t e mo nt h a ts o l u t i o nh a sb e e nd e v e l o p e d s o i ti sv e r ym e a n i n g f u lt oa p p l yi m p r o v e dt i n y o st ot h a ts o l u t i o n f i r s t l y , t h ed i s s e r t a t i o na n a l y z e sd e s i g nr u l e sa n dd e s i g ni d e a so ft h ew s n o p e r a t i n gs y s t e m , c o m p a r e ss e v e r a lt y p i c a lo p e r a t i n gs y s t e m sa n dr e s e a r c h e s m o d u l a rp r o g r a m m i n gl a n g u a g en e s c t h e n ,t h ed i s s e r t a t i o nd e e p l yr e s e a r c h e s t i n y o sa n da n a l y z e st h ed e s i g nf e a t u r e so ft i n y o ss u c ha st h es t r u c t u r e ,s c h e d u l e m e c h a n i s m ,e v e n t d r i v e nm e c h a n i s mw h i c ha r ew e l ls u i t e dt ow s n a f t e rt h a t ,t h e d i s s e r t a t i o nd e s i g n ss o m ei m p r o v e m e n t so i lt i n y o sa n dd e s i g n si m p r o v e dt i n y o s m o d e l ,t i n y o s - h c s 0 8 ,o n t h ef r e e s c a l e sw s ns o l u t i o nw h i c hc o n s i s to f m c 9 s 0 8 g t 6 0m c ua n dm c l 31 9 2t r a n s c e i v e r t h ew o r kd o n eb yt h i sd i s s e r t a t i o nc a np r o v i d ear e f e r e n c es o l u t i o nf o rr e l a t e d r e s e a r c hp r o j e c t so ra p p l i c a t i o n si nr e l a t e df i e l d s k e yw o r d :w s no p e r a t i n gs y s t e m ,t i n y o s ,m c 9 s 0 8s e r i e s ,m c l 3 1 9 x s e r i e s i i 学位论文独创性声明 本人所呈交的学位论文是我在导师的指导下进行的研究工作及 取得的研究成果据我所知,除文中已经注明引用的内容外,本论 文不包含其他个人已经发表或撰写过的研究成果对本文的研究做 出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意 作者签名:日期:盟! ! 兰 学位论文授权使用声明 本人完全了解华东师范大学有关保留、使用学位论文的规定, 学校有权保留学位论文并向国家主管部门或其指定机构送交论文的 电子版和纸质版。有权将学位论文用于非赢利目的的少量复制并允 许论文进入学校图书馆被查阅有权将学位论文的内容编入有关数 据库进行检索。有权将学位论文的标题和摘要汇编出版。保密的学 位论文在解密后适用本规定。 学位论文作者签名:纸,阮 日期:之u :? 导师签名: 华东师范大学硕士学位论文第一章绪论 第一章绪论 1 1 研究背景和研究现状 无线传感网w s n ( w i r e l e s ss e n s o rn e t w o r k ) 是微电子技术、a dh o c 无线 网络、分布式计算等信息技术发展和融合的产物【”。它利用低成本、低能耗、 可计算的无线传感网节点收集、处理用户感兴趣的监测对象的数据,在此基础 上形成满足用户需求的高层应用。 由于在诸多领域有广阔的应用前景,无线传感网的相关工作众多。当前, 对w s n 的研究主要集中在通信协议、能耗管理、定位算法等上面。在通信协 议上,约占研究点的3 5 ;其次是能耗管理,约占1 6 ;再次是定位算法、体 系结构设计和可靠性研究,三者共占研究点的2 4 t ”。然而对于操作系统的研 究相对较少。其实,w s n 操作系统实现对物理资源的抽象,并管理有限的内存、 处理器等资源。它的高效性、灵活性直接影响到系统的性能,因此对于w s n 上的操作系统的研究是很有必要的。 由于无线传感网的需求及工作环境与一般的嵌入式系统相差很大,所以必 须要研究适合传感器网络的新型操作系统。近年来,大学及科研机构不断开发 出具有多种功能的w s n 操作系统。大多数的操作系统都使用事件驱动的编程 模型,典型的有t i n y o s 3 1 、c o n t i k i n 、e y e so s 、s o s 等。其中,又可以按照 内核调度策略分成两类:一类是非抢占式的操作系统,如t i n y o s 、e y e so s 等;另一类是抢占式操作系统,如c o n t i k i 、m a n t i so s 等。另外,多个操作 系统又作了很多不同程度的扩展,比如c o m i k i 支持动态链接、动态下载、j a v a 编译器等,m a n t i so s 提供动态内存分配等。由于w s n 操作系统属于新兴研 究,没有统一的标准,所以总存在一些不足,并且由于不断出现新的设计目标 和应用需求,新的操作系统仍然不断地被提出。 目前,最著名的w s n 操作系统是加州大学伯克利分校研究开发的t i n y o s 操作系统,它也是w s n 操作系统领域内事实上的标准。t i n y o s 使用n e s c 编 写,n e s c 语言是对c 语言的一种扩展、是一种基于组件化编程的语言。t i n y o s 提供了组件化的软件框架、事件驱动并提供并发处理,在处理能力和内存资源 受限的情况下能够完成不同的应用,非常适合w s n 的特点和应用需求。研究 t i n y o s ,根据操作系统设计目标对t i n y o s 的某些方面作一定的改进对于进一 步促进w s n 的发展是非常必要的。 无线传感网设计的趋势是针对特定的应用而不是普遍的应用,不同的应用 华东师范大学硕士学位论文 第一章绪论 所需要的硬件平台是不相同的。无线传感网节点构成的变化是巨大的,所以是 否能应用到不同的平台也是评价操作系统好坏的关键。不过由于无线传感器网 络的特定性,将其有效移植也存在一定的困难,目前应用最广泛的t i n y o s 也 仅应用于a t m e l 的a v r 系列和n 的m s p 4 3 0 系列。 作为业界的著名厂商之一,f r e e s c a l e 公司也推出了基于w s n 的解决方案。 在该解决方案中使用的是8 位的h c s 0 $ 架构系列m c u 加上m c l 3 1 9 x 系列的 无线收发器。不过,直到目前还没有基于它的操作系统提出,从而大大制约了 该解决方案的应用范围。所以,将改进后的t i n y o s 操作系统模型在其上实现 是有实际意义的。当然,这需要大量的工作将改进后的t m y o s 与底层相关的 部分( 包括无线收发器) 重写并做相关测试。 1 2 论文主要研究工作岌组织结构 本文的主要工作包括以下几个方面: 1 研究w s n 操作系统的设计要求和设计思路,对典型w s n 操作系统进行了 分析比较,并讨论了作为本文编程语言的n e s c 语言。 2 深入研究t i n y o s 操作系统,分析其体系架构、调度机制和事件驱动模型等 特点。提出为满足基于w s n 操作系统的设计要求的改进方案。 3 对于f r e e s c a l e 公司推出的w s n 解决方案,设计改进后的操作系统模型在 基于m c 9 s 0 8 g t 6 0 及m c l 3 1 9 2 无线收发器系统上具体实现的方案。设计 了基于改进后的t i n y o s 的操作系统模型t i n y o s h c s 0 8 。 本文大致分为六章进行论述,各部分的组织结构如下: 第一章主要分析了无线传感器网络操作系统的研究背景和研究现状。 第二章研究总结了w s n 操作系统的设计目标和设计思路,并分析了几种 重要的w s n 操作系统。然后具体研究了基于组件化编程的扩展c 语言n e s c 语言。 第三章深入研究了应用最广泛的t i n y o s 操作系统,具体介绍了其结构、 调度机制、事件驱动机制和主动消息机制等特点。重点根据操作系统设计目标 对t i n y o s 中的某些机制进行了改进。 第四章具体分析f r e e s c a l e 公司推出的基于w s n 的解决方案,并针对 m c 9 s 0 8 g t 6 0 芯片及m c l 3 1 9 2 无线收发器芯片组成的节点,设计了基于改进 后的t i n y o s 的操作系统模型t i n y o s h c s 0 8 。 第五章介绍了设计方案的部分测试工作。 第六章总结全文,并提出需要进一步开展的工作。 2 华东师范大学硕士学位论文 第一章绪论 1 3 小结 本章为绪论部分,分析了无线传感网操作系统的研究背景,指出其重要性。 同时讨论了w s n 操作系统的研究现状,提出了在f r e e s c a l e 的解决方案上进行 改进后的t i n y o s 操作系统t m y o s h c s 0 8 的设计。最后概述了论文的主要工作 与组织结构。 华东师范大学硕士学位论文第二章无线传感网操作系统研究 第二章无线传感网操作系统研究 2 1 无线传感网操作系统的设计目标 与传统的个人计算机及其组成的网络不同,无线传感器网络是一种由大量 微型、廉价、资源受限的传感器节点组成的,可以协同工作的,面向分布式自 组织网络的计算机系统【5 】o 传感器模块 处理器模块无线通信模块 图2 - 1 无线传感器节点基本构成图 图2 - 1 是无线传感器节点基本组成的框图,一般由传感器模块、处理器模 块、无线通信模块和能源供应模块组成。有以下显著的特点: 1 资源受限。这是无线传感器节点最重要的特点,具体表现在能源有限、计 算及存储能力低、通信能力差等方面。首先,传感器节点一般都使用电池 作为电源,所以如何节能是节点寿命的关键。其次,节点的低成本和小体 积决定了其上的处理能力和存储能力都非常紧缺。此外,无线通信的窄带 宽限制了节点通信的速度。 2 面向应用领域。无线传感网与应用领域密切相关,不同应用领域对数据采 集、处理、发布的要求有很大差异,应用领域的环境特点也对系统有很大 影响。例如,地震预警系统和环境污染监测系统在网络拓扑结构、通信模 型、数据传递模型等方面都有很大差别。面向应用领域的特点使无线传感 网的设计必须与应用领域相结合。 3 并发性高。某些时段各节点消息到达得相当密集,存在多个需要同时执行 的控制逻辑,需要操作系统在较短时间内完成这些频繁发生的操作,并且 能甄别数据冗余。 4 模块化程度高。无线传感器节点的模块化程度很高,这就要求操作系统为 应用程序对硬件控制提供方便操作,并使得应用程序的各部分能够自由组 合,提高软件的重用性能。 5 动态性高。首先对于整个系统来说,由于受到环境的影响,节点的可靠性 4 华东师范大学硕士学位论文第二章无线传感网操作系统研究 差,系统的拓扑结构动态地改变。其次,被监测对象本身会发生变化,而 使用者的位置也会发生移动。这都给操作系统中关于网络的构建和维护提 出挑战p j 。 从图2 1 对节点结构的分析不难看出,无线传感器节点硬件简单,看似没 必要设计一个专门的操作系统。但这使得应用程序开发的难度大大增加,程序 员必须对硬件十分了解并直接对硬件进行编程,而无法得到操作系统的帮助; 使用新芯片时,上层模块都必须改写等。 而现有的嵌入式操作系统如u c l i n u x 、v x w o r k s 等功能复杂,需要的处理能 力、存储空间等相当大,有悖于无线传感器节点资源受限的特点。其次,这些 操作系统通常不考虑能源消耗,这将直接导致节点寿命急剧缩短。简而言之, 传感网的特殊性决定了它独特的设计原则。 因此,需要针对以上分析的无线传感网节点的特性,研究和设计新的基于 无线传感网的操作系统。在其支持下,应用程序能高效地使用节点极为有限的 处理能力、内存、传感器、低速通信设备和电源等,支持多个应用并发地使用 系统资源,提供模块化的编程模式,并适应系统的动态调整等。根据这些需求, 无线传感网操作系统的设计应满足如下要求: 1 代码量小且高效。由于节点存储空间有限,因此操作系统代码量必须小, 并且变量分配的内存空问也要控制。还要在受限的空间内高效地完成应用 和管理各种硬件设备 7 1 。 2 低资源消耗。根据无线传感网节点的特点,它一般使用电池作为能源供给, 并且较长时间不便于更换,所以能源消耗和其寿命是紧密联系在一起的。 在传感器选择、通信协议设计、数据传递模式选择时应充分考虑能源消耗 的问题,在一些部署环境恶劣的无线传感网中这一点显得更为重要。一个 好的操作系统能最大限度地延长节点的使用周期。此外,对于网络带宽、 传感器节点内存与计算能力也应予以考虑。 3 程序模块化。在无线传感网上的应用和硬件平台众多,采用模块化编程方 式,首先能对上层应用模块屏蔽底层硬件的操作,使得应用程序员不必对 硬件编程。其次,只要重写底层模块就能使得操作系统应用于不同平台上。 采用模块化还能使得各组件自由组合完成新的应用,增加了软件的重用性, 提高了开发效率嗍。 4 鲁棒性好。由于传感器节点经常工作在恶劣的环境中,资源也非常有限。 所以要求操作系统在能源不足、处理及存储能力有限和通信不畅的情况下 依旧能很好的工作。特别是某部分软硬件出现故障时,操作系统能够及时 地调整整个系统继续工作。 华东师范大学硕士学位论文 第二章无线传感网操作系统研究 5 并发性高。一个传感器节点往往要同时接收各邻居节点的消息,并且要处 理大量的数据,所以需要操作系统快速高效地使用资源,使得大量并发的 操作能够及时处理完毕。 综上所述,无线传感网操作系统具有传统操作系统完全不同的特点,怎样 根据这些要求设计出完全适合于w s n 应用特点的操作系统则是研究的重点。 2 2 无线传感网操作系统的设计思路 首先分析一下无线传感网系统中操作系统所处的位置。尽管系统结构不尽 相同,但是逻辑上大都包含如图2 2 所示的几部分。从图中可以看出,操作系 统对下实现物理硬件的封装,对上提供程序接口,还要负责管理软硬件资源, 必要时还集成了通信协议栈。 图2 - 2 无线传感网系统逻辑结构图 结合上节分析的操作系统主要指标和其在整个系统中的位置,提出如下的 设计思路: 1 操作系统不应该是特定的系统用户界面,也不是特定的一系列系统服务, 而是定义了一套通用的界面框架,允许应用程序选择服务和实现。它提供 框架的模块化,以便适应硬件的多样性,允许应用程序重用软件服务和抽 象一j 。w s n 节点资源有限,不支持所有程序都运行,所以必须把操作系统 设计成一个资源库,从中抽取一部分组成应用。 2 传感器节点并发操作比较频繁,且线程比较短,如果采用传统的调度方法, 硬件资源无法支持,并产生大量能量用在无效的进程切换过程中。所以操 作系统需要使用简单的调度策略和轻量级线程技术。一般使用任务中断两 级调度方式,中断处理可以抢占执行,快速反应中断;但是任务级不能互 相抢占,这样资源可以统一应用,并能利用轻量级线程技术的共享线程空 间特性来节省资源。 3 传感器节点为了节能,大部分时候都处于睡眠状态,只有外部事件才能使 其进入工作状态。因此,整个操作系统应该基于事件驱动而运行。并且所有 与事件有关的任务都在事件产生时处理完毕,这样在没有事件发生时,微处 6 华东师范大学硕士学位论文第二章无线传感网操作系统研究 理器就进入睡眠状态,从而可以达到节能的目的。 4 采用传统的通信协议无法应付传感网大量的并行消息,所以操作系统需要 在发送消息的同时传送处理这个消息的相应处理函数i d 和处理数据,接收 方得到消息后利用事件驱动机制可立即进行处理,从而减少通信量,提高 c p u 的使用率。 以上所述为无线传感网操作系统的设计要点,目前大多数操作系统模型都 采用其中全部或部分方案,各自又支持许多新的设计特点。下面对一些著名操 作系统的特点进行具体分析讨论。 2 3 典型无线传感网操作系统分析 在不断出现的无线传感器网络操作系统中,其有代表性的有t m y o s 、s o s 、 m a n t i so s 、c o n t i k i 、e y e so s 等。 2 3 1s o s s o s 操作系统主要包括一个通用内核和若干个可动态装载模块,实现了消 息传递、内存管理、模块装载卸载以及其他一些服务。s o s 操作系统有以下一 些主要特点: ( 1 ) 动态加载性,这是s o s 操作系统的主要特点。内核通过一个加载模 块来动态地加载或移除模块( m o d u l e ) 。应用可以在运行时动态地加载某个模块, 以获得新的功能。另外,模块也可通过s y s t e mc a l l 将函数动态地注册在内核中。 ( 2 ) 模块框架化与消息( m e s s a g e ) 机制。s o s 将系统功能模块化,使用 新功能只需要编写一个模块即可。每个模块包括消息处理函数与普通函数。消 息处理函数由i n i th a n d l e r 、f i n a lh a n d l e r 等组成,使用模块内相关的普通函数实 现。内核与模块、模块与模块之间使用消息机制通信。另外,为了减少延迟, 模块之间也可以直接调用函数。 ( 3 ) 采用事件驱动机制。在资源有限的情况下,事件驱动不使用上下文转 换来支持大量并发操作。中断处理会向内核发送消息,内核的主调度循环依次 获得消息队列的消息,然后将该消息发送给目标模块的消息处理函数处理。 ( 4 ) 优先级调度。s o s 的消息队列采用了优先级顺序。一般尽量缩短中断 处理的时间,将其他操作放入消息处理中,这样高优先级的紧急消息能更快地 被调度并处理【j 。 ( 5 ) s o s 没有提供内存保护机制,但它可区分内核和用户模式。采用一个 简单的动态内存子系统动态管理内存,以降低编程复杂性和提高临时内存的重 7 华东师范大学硕士学位论文 第二章无线传感罔操作系统研究 用率。 综上,s o s 操作系统支持系统框架的模块化,允许应用选择不同组件实现 需要的功能。并且,s o s 进一步支持在内核运行过程中,动态地加载需使用的 模块,使得整个系统的使用性大大提高,但缺点是占用较多资源。另外,s o s 使用事件驱动机制,采用消息中断两级调度模式。消息队列中使用优先级顺序, 大大提高了紧急任务的处理速度。 2 3 2m a n t i so s m a n t i so s 是一个支持无线传感器网络快速构建的多线程嵌入式操作系 统。它的内核和a p i 用标准c 语言编写,易于用户使用。m a n t i so s 与一般 的w s n 操作系统相比有较大的不同: ( 1 ) m a n t i so s 由一个轻量级的、能源有效的调度器和若干组件组成, 组件包括设备驱动组件、用户级的网络协议栈组件等。 ( 2 ) m a n t i so s 的内核类似于经典的u n i x 内核,支持信号量,实现了 符合p o s i x 标准线程a p i 的轻量级子集。并向上层提供一组系统a p i ,用来编 写应用程序。 ( 3 ) m a n t i so s 使用传统的抢占式多线程模型。所以它必须有足够的堆 栈空间,另外还需要采用对于共享变量的锁机制来完成排他性操作。 ( 4 ) m a n t i so s 还支持多模态原型以及对传感器节点的动态重编程、远 程调试i i ”。 总体来说,m a n t i so s 更趋近于传统的操作系统。在m a n t i so s 基础上, 应用的开发周期短,测试、调试方便,但是对于节点的资源要求很高。 2 3 3c o n t i k i c o n t i k i 操作系统使用c 语言实现,包括核心和可装载进程( p r o c e s s ) 两部 分,前者由内核、支持库和程序加载器等组成。一个进程可以是应用程序或服 务( s e r v i c e ) ,出事件处理函数和可选的轮询( p o l l i n g ) 函数组成。c o m i k i 有以 下一些特点: ( 1 ) 事件驱动与多线程双支持。c o n t i k i 建立了一种混合模型:内核使用 事件驱动,进程( p r o c e s s ) 可选择抢占式多线程模式。 ( 2 ) c o n t i k i 的内核是一个基于事件的调度器,用来分发任务给进程,或 者周期性的调用各进程的轮询函数。它使用任务中断两级调度机制,但不是在 中断中提交任务,而是内核调用轮询函数时,各进程提交任务处理。 华东师范大学硕上学位论文第二章无线传感嘲操作系统研究 ( 3 ) c o n t i l d 以库的方式实现了抢先式多线程,支持运行在内核之上的基 于线程的应用【1 2 1 。需要使用多线程的程序可以显式地链接多线程库。 ( 4 ) 程序与服务的动态加载与替换。可装载程序在内核运行时可以被动态 装载或卸载,而不需要重新链接生成代码。 ( 5 ) 支持程序动态下载。对于上千个节点组成的网络来说,能够通过网络 动态地下载程序以更新节点上的应用是很重要的,否则对于如此大规模的更新 毫无办法。 c o n t i k i 支持几乎所有的w s n 设计特点,包括模块框架、任务中断两级调 度、事件驱动机制等。另外,它还支持多线程、程序动态加载和下载、j a v a 编 译等众多扩展性能。c o n t i k i 操作系统的应用范围仅次于t i n y o s ,已经被移植 到m s p 4 3 0 系列和a v r 系列等系统上。 2 3 4e y e s o s e y e so s 是一个小型无线传感器网络操作系统,有以下一些特征: ( 1 ) 使用事件驱动机制。系统被设计成模块组,只对外部事件进行响应。 没有外部事件时,系统进入低功耗状态,等待外部事件将其唤醒,且代码被设 计成无阻塞语义。 ( 2 ) 采用任务中断两级调度机制。包含一个任务调度器维护任务的执行, 有f i f o 、优先级、基于时限等多种调度算法。 ( 3 ) 能源感知能力。节点能估计出操作需要的内存、能源消耗和速度等, 如果无法完成,则会询问邻居节点是否能够完成。 ( 4 ) 较强的容错能力,支持无线传感器网络动态重配置【1 3 】。 以上研究的四种典型的w s n 操作系统都有各自的特点,但是它们只符合 w s n 设计的部分目标,在性能上不及t i n y o s 操作系统。 t i n y o s 是实际上的传感器网络节点操作系统标准,它为面向应用领域的 无线传感器网络应用系统的集成提供了一个基于构件的软件框架。该操作系统 没有区分用户和内核模式,没有提供内存保护机制,但可以在资源有限的条件 下,提供并发处理能力。本文将重点以t i n y o s 作为研究与应用对象。 2 4 n e s c 语言研究 大多数无线传感网操作系统( 包括早期的t i n y o s ) 都是使用c 语言和汇编 ( 嵌套在c 程序内) 进行编写,后来发现c 语言并不能很好的满足无线传感网 开发中所面临的问题。所以研究人员将c 语言进行了一定的扩展,提出了面向 9 华东师范大学硕士学位论文第二章无线传痘网操作系统研究 结构化组件应用的n o s e 语掣1 4 1 。 n e s c 基于体现t m y o s 的结构化概念和执行模型而设计。它由接口部分 ( i n t e r f a c e ) 、模块部分( m o d u l e ) 和配置部分( c o n f i g u r a t i o n ) 等组成。每个接 口、模块、配置文件的扩展名都为“n c ”,类似于j a v a 文件的“j a v a ”扩展名。 由于n e s c 是c 语言的扩展,它编译生成的是“c ”文件,所以它可以使用任何 c 语言头文件或者源文件。 n e s c 使用了n c c 编译器编译,它将一个应用使用的所有组件或者c 语言文 件生成一个a p p c 文件,然后调用c 交叉编译器生成可执行硬件目标代码。 2 4 1 接口部分 一 g“ 接口是两个组件之间相互作用的抽象说明。接口定义中仅声明接口提供者 必须实现的函数集合( 命令c o m m a n d ) 和接口请求者必须实现的函数集合( 事 件e v e n t ) ,这些形成了一个属性集合,该集合通常对应了某一组功能,而接口 文件通常以浚功能命名,如a d c n c 。 + 命令调用 一 事件通知 图2 - 3 接口部分示意图 图2 - 3 是接口部分的示意图。接口完成了某一组功能。组件提供的接口描述 组件为它的使用者提供的功能,组件使用的接口描述组件在完成任务时需要的 功能。 与单一方向接口不同,n e s c 中的接口是双向的。如图2 3 ,接口调用者可 以调用接口实现者实现的接口中的命令,而接口实现者可以调用接口调用者实 现的接口中的事件。一个组件如果调用接口中的命令就必须实现这个接口中的 事件。接口的语法如下: i n t e r f a c en a m e d e f a u l ta s y n cc o m m a n dr e s u l t _ tc o m m a n d n a m e ( p a r a m e t e r i ) ; d e f a u l ta s y n ce v e n tr e s u l t _ te v e n t n a m e ( p a r a m e t e r j ) ; 其中,d e f a u l t 和a s y n c 关键字是可选的。d e f a u l t 用在没有实现的c o m m a n d 或e v e n t 上设置默认实现;c o m m a n d 或e v e n t 如果作为中断处理的一部分必须加 上a s y n c 关键字。 o 华东师范大学硕士学位论文第二章无线传感网操作系统研究 将接口类型的定义和接口的使用分离有助于定义标准接口让组件有更高的 可重用性和更大的弹性。接口还体现了事件驱动功能和模块化,通过事件通知 让使用接口者对事件进行响应。任何满足接口功能的实现者都可被其他需要这 个接口功能的组件调用。 2 4 2 组件部分 n e s c 的组件部分分为模块( m o d u l e ) 和配置( c o n f i g u r a t i o n ) 两类。配置 文件只是完成组件之间的接口连接,模块文件则具体实现接口中的命令和事件。 2 4 2 1 模块 模块主要是实现提供的接口中的命令、使用接口中的事件和中断函数等。 n e s c 的应用程序一般有一个称为“m a i n ”的模块作为程序的执行体( 类似于c 的m a i n 函数) ,它调用其他的模块以实现程序的功能。下面是模块的一个实例, 该模块完成传感器部分上层功能。 m o d u l es e n s e mf ,模块声明,给出提供和使用的接口列表 p r o v i d e s 该模块提供了以下接口 i n t e r f a c es t d c o n t r o l ; u s 该模块使用了以下接口 i n t e r f a c et h n e r ; i n t e r f a c ea d c ; i n t e r f a c es t d c o n t r o la s a d c c o n t r o l ;接口列表中可以用a s 来改名 i n t e r f a c el e d s ; ) ) i m p l e m e n t a t i o nf ,模块实现部分 r e s u l ttd i s p l a y ( u i n t l 6 - tv a l u e ) ,模块内函数,只被模块内其他函数调用 用三个灯显示传感器值的末三位 ) c o m m a n dr e s u l l ts t d c o n t r 0 1 i n i t o s t d c o n t r o l 的i n i t 命令函数 r e t u r nr e o m b i n e ( c a l la d c c o n t r 0 1 i n i t 0 ,c a l ll e d s i n i t ( ) ) ; ,两个函数结果合成后返回 华东师范大学硕士学位论文第二章无线传感闻操作系统研究 c o m m a n dr e s u l t ts t d c o n t r 0 1 s t a a o s t d c o n t r o l 的s t a r t 命令函数 r e t u f nc a l lt h - n e r s t a r t ( t i m e r _ r e p e a t , 5 0 0 ) ;开启时钟 ) c o m m a n dr e s u l t _ _ ts t d c o n t r 0 1 s t o p 0 s t d c o n t r o l 的s t o p 命令函数 r e t u r nc a l lt t m e r s t o p 0 ;关闭时钟 e v e n tr e s u l t _ tt i m e r f i r e d 0f t u n e r 的f i r e d 事件函数 r e t u r nc a l la d c g e t d a t a ( ) ;调用a d c 接口的g e t d a t a 命令函数 ) a s y n ce v e n tr e s u l t , ta d c d a t a r e a d y ( u i n t l td a t a ) a d c 的d a t a r v a d y 事件函数,加a s y n g 关键字可作为中断处理的一部分 d i s p l a y ( 7 - ( ( d a t a 7 ) & o x 7 ) ) ;调用组件内函数完成功能 r e t u ms u c c e s s ; “m o d u l e ”声明一个模块。模块分两部分:首先是接口部分,“p r o v i d e s ” 和“u s e s ”分别声明提供和使用的接口列表:其次是实现部分,“i m p l e m e n t a t i o n ” 声明以下是整个模块的实现内容。实现主要分两部分:首先必须实现提供的接 口的命令函数,对于这个例子只要实现s t d c o n t r o l 接口的三个命令函数;然后 实现使用的接口的事件函数,该实例使用的四个接口中的t i m e r 和a d c 各有一 个事件函数,所以模块必须实现这两个事件函数。 稍有不同的是d i s p l a y 函数,它不属于任何接口。在n e s c 中这类函数类似 于类中的私有成员函数,它只能被模块内的其他函数调用。程序还可使用“c a l l ” 关键字来调用命令函数,也可以使用“s i g n a l ”关键字来调用事件函数。 2 4 2 2 配置 配置要连接的不是模块,而是模块上的接口。它通过把其他模块提供的接 口和该模块使用的接口连接来把模块组装起来。配置可以提供接口供模块使用 或者供其他配置连接,所以配置也可以连接配置。每个n e s c 应用被一个项层 配置描述,它把其内部的模块连接起来。下面是一个顶层配置的例子,它就是 上节例子的顶层配置文件。 c o n f i g u r a t i o ns e n s e ,这里可以提供接口列表,此例属于顶层配置,所以没有接口提供 1 2 华东师范大学硕士学位论文第二章无线传痘网操作系统研究 i m p l e m e n t a t i o n f,给出相关的各组件的连接关系 c o m p o n e n t sm a i n , s e n s e m ,l e d s c ,t i m e r c ,p h o t o ;相关的组件 m a i n s t d c o n t r 0 1 s e n s e m ;连接两端的对象 m a i n s t d c o n t r o l t i m e r c ; s e n s e m a d c 一 p h o t o ; s e n s e m a d c c o n t r o l - p h o t o ; s e n s e m l e d $ l e d s c ; s e n s e m t u n e r t u n e r c t u n e r u n i q u e ( ”t u n e r ”) 】; “c o n f i g u r a t i o n ”关键字声明一个配置。配置分两部分:首先是可以提供的 接口列表,如果是顶层配置,就没有使用它接口的模块,自然就不需要提供接 口列表;其次是“i m p l e m e n t a t i o n ”关键字表示以下是描述该组件各相关部分的 连接。图2 - 4 就是该配置描述的各组件之间的关系图。 图2 - 4 例子组件关系图 n e s c 为组件之间的连接提供了三种方式:1 ) u s e r l i n t e r f a c e = u s e r 2 i n t e r f a c e 或者p r o v i d e r l i n t e r f a c e = p r o v i d e r 2 i n t e r f a c e ,表示两端等价,即 同是被使用或同是被提供的接口且性质不同。2 ) u s e r i n t e r f a c e p r o v i d e r i n t e r f a c e ,表示左边端点调用右边端点,如例子中的连接方式。3 ) p r o v i d e r i n t e r f a c e s e n s e m ,如果s e n s e m 提供一个s t d c o n t r o l 接口, 则可以使用这种方式,否则将产生编译错误。2 ) 无参化连接。接口提供者和接 口使用者是对应的,即提供了多少接口就使用了多少接口,如m a i n s t d c o n t r o l t i m e r c 。3 ) 参数化连接。如果一个模块可以同时提供多个此接口的实例,就可 以使用参数化连接,每一个实例都有唯一的i d 标定。如例子中的s e n s e m t i m e r t i m e r c t i m e r u n i q u e ( ”t i m e r ”) 】,t i m e r c 组件可以提供多个t i m e r 接1 3 ,所以 s e n s e m 组件通过参数化连接使用了其中的一个。u n i q u e ( ”t i m e r ”) 是系统函数, 提供一个未分配的0 2 5 5 之间的数,作为接口i d 。 华东师范大学硕士学位论文 第二章无线传感网操作系统研究 2 4 3 其他重要部分 下面描述其他几种n e s c 语法中重要的部分,详细资料可参阅 1 4 1 。 1 两级调度和事件驱动机制:n e s c 支持任务( t a s k ) 和事件( e v e n t ) 两级调 度。在任务级,程序先用t a s k 关键字定义一个任务,然后在需要的地方使 用p o s t 关键字将该任务提交到任务队列中等待处理。n e s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宠物美容AI技术面试题库
- 2025年安全战略填空题库
- 2025年导盲犬训练高级面试实战题库
- 2025年广播电视台后期制作面试常见问题解答
- 2025年语音合成师职业发展面试题及答案
- 2025年高效学习方法与技巧高级笔试预测题
- 2025年地震救援面试重点题解析及答案
- 2025年建筑装饰设计师专业技术考核试卷及答案解析
- 课件中控件的使用
- 2025年环保工程技术师资格考试试题及答案解析
- 2025年中级会计职称考试经济法冲刺试题及答案
- 乐器供销合同范本
- 2025年辽宁省中考生物学试卷真题附答案
- 2025-2030牛肉分销渠道冲突与供应链协同优化报告
- 《法律职业伦理(第3版)》全套教学课件
- 2025年青岛市崂山旅游集团招聘考试笔试试题
- 2025年秋季新学期全体中层干部会议校长讲话:在挑战中谋突破于坚实处启新篇
- 2025年幼儿园保育员考试试题(附答案)
- 2025年上半年中国铁路兰州局集团有限公司校招笔试题带答案
- 《物联网导论》课程标准
- 供水抄表员安全知识培训课件
评论
0/150
提交评论