新闻资讯
看你所看,想你所想

无线传感器网络操作系统

WSN作为综合了传感器、嵌入式计算、及无线通信等3大技术的新兴领域,可以实现人与自然物以及物与物对话的无处不在的通讯和计算。从火星探测到野生候鸟的监测,从智能房屋到车辆监测和跟踪,从军事"智能尘埃"(Smart Dust)到辅助足球裁判,从胶囊肠镜到住院病人病情监控,从森林防火到预测所台层元山洪暴发,从人商望费流体内药物剂量控制到精细农业……,广阔的应用前景掀起了国内外对WSN的研究热潮。

  • 中文名称 无线传感器网络操作系统
  • 性质 网络操作系统
  • WSN 掀起了一场后PC时代的革命

绪论

  近几年来,无线传感器网络(WSN)掀起了一场后PC时代的革命。

  综合各种应用,来自WSN有自己的许多特点。首先,WSN是一种嵌入式系统,提供分360百科布处理,动态和适应想传社迫下距思性;其次,它由以通讯为中心的大数量的小型和微型数据采集设备构成,其主要特征为灵活、通商认到背觉板金密自组织、严格资源限制,并且需要实时处理同长时间的单任务串行处理并存,同时大部分时间保持低功耗状态。

  2 WSN操作系统(WSNOS)

  俗话说:"万些张全酸优语末投群然给丈高楼平地起,一力承担靠地基",WSN的操作系统(WSNOS)是WSN系统的基本软件环境,是许许多多的WSN应用软件开发的基础执屋从氧沉训势。WSNOS不是特定的系统/用户界面,也不是特定的一系列系统服务,而是定义了一套通用的界面框架,允许应用程序选择服务和实现;它提供框架的模块化,以便适应硬件的多样性,同时允许应用程序重用通用的软件服务和抽象。同确让其他操作系统一样,WSNOS是为了方便开发应用,提供物理团威掉记编初路才设备的抽象和高协调性的通用函数实现。它的独特性在于,资源极端受限(处理器速度、存储器大小、内存大小、通讯带宽、资源数量以及电源受限),设备特殊性和缺乏一致的抽象层次。因此,WSNOS的设计策略必须是一个资源库,从植娘八赶析画投真关围中抽取一部分组成应用。它致力于提供有限资源的并发,而啊系映值不是提供接口或形式。伯克利开发的TinyOS正而意元是这样一套WSNOS系统赵取飞投讨转因超

  3 WSN需求和趋势

  1)工厂真正实现电子信息化需要WSN实地采集数据和监控。文献众失己弦求中谈到了WSN应用于工厂胶说自动化生产线的问题。传统的有线传感只能用在布线容易的短距离空间,而对很多长距离的监控则无能为力。例如,输油管道的监控,需要在输油管道上散布很多传感器,并且互相之间要互叶副给承曲关多黑系乐通信息。而以往的传感器需要布线,同时传感器之间不夫敌告任大能互相通信,阻碍了这种应用。但束选认线核命请是,这种无线监控最大的困难是它不如有线传感器可靠

  2)WSN为城市监控,野外监控提供了技术手段。用于监控生态环境、农作物生长环境、城市交通监控、大神量后结司楼监控等。大量的WSN节点的冗余可提高可靠性,但是它们需要长时间处于不维护状态,因此电池的寿命就成了这种应用的瓶颈。

  3)W绝图SN也可用于特殊物品监测,例如:胎压监测附火洋未整友厚、灭火器监测、危险物品监测等。这些对物品的监测也必须要求很高的可靠性,而且要求低功耗以使其可以维持工作到所需的时间。

  4)在军事上,WSN也为现代化的先进武器系统提供了新的技术基础。例如:地雷上装上WSN节点,可以与士兵身上的WSN节点通讯,识别敌我,而有选择性地爆炸。这种节点涉及到人的生命安全,其可靠性的要求极高,同时也必须在足够时间内维持工作。

  总之,这种应用前景关注去掉"两线"数据线和电源线的无线技术,前者随着RF射频硬件技术的发展而出现,后者随着低功耗的处理器,低功耗的收发器以及低功耗的传感器等低功耗硬件的发展以及电池技术的发展而得以实现。然而,去掉数据线使得通讯变得不那么可靠;去掉电源线使得供电时间的维持成为一个挑战。因此,可靠性和低功耗已经成为了这种技术推广的瓶颈。

  从WSN操作系统软件的角度着手解决可靠性和低功耗的问题分析。首先,与一般的嵌入式系统(如PDA,手机等)不同,WSN的资源更加受限,迫切需要系统软件的精心设计,才能满足可靠性的需求;其次,电池技术的发展并不足以满足很长时间不维护的需求,而硬件也需要系统软件的管理才能充分发挥其低功耗特性。这就需要系统软件采用最大限度降低运算功耗和通讯功耗的策略。

WSNOS框架

  WSNOS的总体框架。物理层硬件为框架的最底层,传感器、收发器以及时钟等硬件能触发事件的发生,交由上层处理。相对下层的组件也能触发事件交由上层处理。而上层会发出命令给下层处理。为了协调各个组件任务的有序处理,需要操作系统采取一定的调度机制。

  WSNOS组件的具体内容,包括一组命令处理函数,一组事件处理函数,一组任务集合和一个描述状态信息和固定数据结构的框架。除了WSNOS提供的处理器初始化、系统调度和C运行时库(C Run-Time)3个组件是必需的以外,每个应用程序可以非常灵活地使用任何WSNOS组件。

  这种面向组件的系统框架的优点是:首先,"事件-命令-任务"的组件模型可以屏蔽低层细节,有利于程序员更方便地编写应用程序;其次,"命令-事件"的双向信息控制机制,使得系统的实现更加灵活;再次,调度机制独立成单独的一块,有利于为了满足不同调度需求进行的修改和升级。

WSNOS内核

  由于WSNOS的特殊性,它的调度机制需要简单而实用。下面以建屋继油板位置均师TinyOS为例,介绍WSNOS的调度机制。

  1.1 调度

  TinyOS的调度模型为任务加事件的两级调度,调度的方式是任务不抢占事件要抢占,调度的算法是简单的F来自IFO,任务队列是功耗敏感的。调度模型有以下的特点:

  a) 基本的任务单线程运行360百科到结束,只分配单个任务栈,这对内存受限的系统很重要。

  b) FIFO的任务调度策略是电源敏感的。当任务队列为空,处理器休眠,等待事件发生来触发调度。

  c) 两级的调度结构可以实现优先执行少量同事件相关的处理,同时打断长时间运行的任务。

  d) 基于事件的调第报初呢离专挥些度策略,只需少量空间就可获得并发性,并允许独立的组件共享单个执行上下文。同事件相关的任务集合可以很快被处理,不允许阻塞,具有高度并发性。

紧单称触  TinyOS只是搭建好了最基本的调度框架,只实现了软实时,而无法满足硬实时,这对嵌入式系统的可靠性会产生。同时,由于是单任务的大如卫业内核,吞吐量和处理器利用率不高,因此有可能需要设计多任务系统。为保证系统的实时性,多采用基于优先级附于沙若视斗室云应氢的可抢占式的任务调度策略。依赖于应用需求,出现了许多基于优先级多任务的调度算法的研究。把TinyOS扩展成多任务的调度,给律失美卫燃加TinyOS加入了多任务的调度功能,提高了系统的响应速度。[提出在TinyOS中实现基于时限(deadline)的优先级调度,有利于提高WSN系统的实时性。提出了一种任务优先级调度算法来相对提高过载节点的吞吐量以解决本地节点包过载的问题。

  总之,调度决定了处理器的功耗,如TinyDB就是使用好的调度策略来降低功耗的。更为重要的是,各种调度算法也能浓神销结众更好地提高处理器的响应速度,从围三督今杀赶论护土严而提高系统的可靠性。各种基于TinyOS调度算法的扩展研究,各自独立地使得高可靠性和低功耗分别得到满足。

  1.2 中断

  在Tin地控越项都但著的yOS中,代码运行方式为响应中断的异步处理或同步地调度任务。TinyOS的每一个应用代码里,约有41%-64%的中断代码,可见中断的优化处理非常重要。对于低功耗的处理而言,需要长时间休眠,可以通过减少中断的开销来降低唤醒处理器反儿棉件城较料的功耗。通过禁用和打开中断来实现原子操作,这个操作非常的短暂(几个时钟周期--cycles)。然而,让中断关掉很长雨测点印销余时间会延迟中断的处理,造成系统反应迟钝。TinyOS的原子操作能工作得很好是因为它阻止了阻塞的使用也限制了原子操作代码段的长度,而这一些条件的满足是弦生子报坚侵引纸通过nesC编译器来协助处理的朝把小自践顶切不见铁攻。由于nesC编译器对TinyOS做静态的资源分析以及其调度模式决定了中断不允许嵌套。在多任术简审则医委象移封阻务模式下,中断嵌套可以提高实时响应速度。

  1. 3 时钟同步

  TinyOS提供获取和设置当前系统时间的机制,同时,在WSN网络中提供分布式的时间同步。TinyOS是以通讯为中心的操作系统,因此更加注重各个节点的时间同步。如:传感器融合应用程序收集一组从不同地方读来的信息(如:较短距离位置需要建立暂时一致的数据);TDMA风格的介质访问协议需要精确的时间同步;电源敏感的通讯调度需要发送者和接收者在他们的无线信号开始时达成一致等。

  加州大学洛杉矶分校(UCLA) 、Vanderbilt和加州大学伯克利分校(UC Berkeley) 分别用不同方法实现了时间同步。这3个实现都精确到子毫秒级,最初打算开发一个通用的、底层的时间同步组件,结果失败了。应用程序需要一套多样的时间同步,因此只能把时钟作为一种服务来灵活地提供给用户取舍使用。

  某些情况允许逐渐的时间改变,但另一些则需要立即转换成正确的时间。当时间同步改变下层时钟时,会导致应用失败。某些系统,例如NTP(Network Time Protocol)通过缓慢调整时钟率同邻节点同步来规避这个问题。NTP方案很容易在像TinyOS那样对时间敏感的环境中出错,因为时间即使早触发几毫秒都会引起无线信号或传感器数据丢失。

  TinyOS采用的方案是提供获取和设置当前系统时间的机制(TinyOS的通讯组件GenericComm使用hook函数为底层的通讯包打上时间戳,以实现精确的时间同步),同时靠应用来选择何时激活同步。例如:在tinydb应用中,当一个节点监听到来自于路由树中父节点的时间戳消息后会调整自己的时钟以使下一个通讯周期的开始时间跟父节点一样。它改变通讯间隔的睡眠周期持续时间而不是改变传感器的工作时间长度,因为减少工作周期会引起严重的服务问题,如数据获取失败。

  J. Elson和D. Estrin给出了一种简单实用的同步策略。其基本思想是,节点以自己的时钟记录事件,随后用第三方广播的基准时间加以校正,精度依赖于对这段间隔时间的测量。这种同步机制应用在确定来自不同节点的监测事件的先后关系时有足够的精度。设计高精度的时钟同步机制是传感网络设计和应用中的一个技术难点。

  也有一些应用更重视健壮性而不是最精确的时间同步。例如:TinyDB只要求时间同步到毫秒级,但需要快速设置时间。在TinyDB中,简单的,专用的抽象是种很自然的提供这种时间同步服务的方式,但是这种同步机制并不满足所有需要的通用的时间同步。另外,还可以采取Lamport分布式同步算法,并不全部靠时钟来同步。

  1.4 任务通讯和同步

  任务同步是在多任务的环境下存在的。因为多个任务彼此无关,并不知道有其它任务的存在,如果共享同一种资源就会存在资源竞争的问题。它主要解决原子操作和任务间相互合作的同步机制。

  TinyOS中用nesC编译器检测共享变量有无冲突,并把检测到的冲突语句放入原子操作或任务中来避免冲突(因为TinyOS的任务是串行执行的,任务之间不能互相抢占)。TinyOS单任务的模型避免了其他任务同步的问题。如果需要,可以参照传统操作系统(例如μc/os)的方法,利用信号量来给多任务系统加上任务同步机制,使得提供的原子操作不是关掉所有的中断,从而使得系统的响应不会延迟。

  在TinyOS中,由于是单任务的系统,不同的任务来自不同的网络节点,因此采用管道的任务通信方式,也就是网络系统的通信方式。管道是无结构的固定大小数据流,但可以建立消息邮箱和消息队列来满足结构数据的通信。

  2 WSNOS内存管理

  TinyOS的原始通讯使用缓冲区交换策略来进行内存管理。当网络包被收到,无线组件传送一个缓冲区给应用;应用返回一个独立的缓冲区给组件以备下一次接收。通讯栈中,管理缓冲区是很困难的。传统的OS把复杂的缓冲区管理推给了内核处理,以拷贝复杂的存储管理以及块接口为代价,提供一个简单的、无限制的用户模式。AM[ Active Messages ]通讯模型不提供拷贝而且只提供非常简单的存储管理。消息缓冲区数据结构是固定大小的。当TinyOS中的一个组件接收到一个消息,它必须释放一个缓冲区给无线栈。无线栈使用这个缓冲区来装下一个到达的消息。一般情况下,一个组件在缓冲区用完后会将其返回,但是如果这个组件希望保存这个缓冲区待以后用,会返回一个静态地本地分配缓冲区,而不是依靠网络栈提供缓冲区的单跳通信接口。尽管只有1个组件,任何时候只有一个进入给定缓冲区的指针,组件来回交换使用它们。

  静态分配的内存有可预测性和可靠性高的优点,但缺乏灵活性。不是预估大了而造成浪费就是小了造成系统崩溃,为了充分利用内存,可以采用响应快的简单的slab动态内存管理。

WSN通信

  通讯协议是WSNOS研究的另一大重点。通讯协议的好坏不仅决定通讯功耗的大小,同时也影响到通讯的可靠性(包的丢失率,包过载等)。TinyOS为满足这样要求的通讯协议提供了基于轻量级AM通讯模型的最小的通讯内核。

  1 AM通讯模型

  介绍了这种轻量级的AM通讯模型,它构成TinyOS极小内核的通讯系统,其他应用都建立在这个通讯系统之上。AM消息包含用户级处理函数名称和作为参数传送的有效载荷,为了避免网络阻塞和保证充分的性能,消息处理函数必须被很快地执行和异步处理。所有的这些措施都是为了实现低功耗的通讯。尽管AM源于大规模并行处理机和计算群集(Computing Cluster),但是一些基本概念也适用于资源受限的网络小设备。特别是轻量级的AM体系结构可作为杠杆来平衡扩展的通讯框架的需求和有效的灵活性。而且基于事件处理函数触发模型,使应用级的开发者得以避免对数据的忙等,使系统能交迭地同其他活动通讯(如,同传感器交互或执行其它的应用)。

  2 WSN通讯协议

  介绍了AM为基础的单跳协议和多跳协议,如S-MAC[ Sensor-MAC: Medium Access Control for Wireless Sensor Networks用于传感器网络的介质访问控制]是其中一种单跳协议的低功耗实现;介绍了多跳通讯协议,主要解决自组织的网络路由。简单介绍如下:

  S-MAC基于RTS/CTS[ Request to send/Clear to Send请求发送/清除发送协议]调度,并返回无线消息来减少监听的开销。S-MAC保持分段操作(split-phase)和无拷贝特性。所谓分段操作即:在TinyOS中由于任务之间不能互相占先执行,所以TinyOS没有提供任何阻塞操作。为了让一个耗时较长的操作尽快完成,一般来说都是将对这个操作的需求和这个操作的完成分开来实现,以便获得较高的执行效率。

  自组织(Ad hoc)的网络路由是一种不需要网桥(AP[ Access Point])的无线对等传输模式。任两个传感器若在彼此的通讯覆盖范围内,则这两个传感器可直接互相通讯,共享资源。它具有对称性,即B若在A的通讯范围内,则A也在B的通讯范围内;但往往由于某些外部条件的限制,可能会造成这种对称的不协调。若在两个相距较远的传感器之间通讯,可以寻找一个中间的传感器作为转发的节点,采用接力的方式来完成通讯过程。利用这种方式可以增加无线网络的通讯范围,但随着传输次数增加,数据的正确率会降低,传输过程的可靠性也降低。这种多跳路由一般可采用树状结构的集中,网络内部路由和分发(dissemination)3种形式。

  比较普遍的是基于树结构的路由。它包含父节点标识多跳数或从树根开始的深度(即:父节点的多跳数加1)。一个节点传送一个包给父节点,该节点再传给其父节点,直到包到达树根。设计的关键问题是怎样建立路由树和怎样维护以及怎样转发以便提高传输的可靠性并降低功耗。主要用到两种方法:邻节点发现和连接质量估计服务;支持包的封装和监视转发。WSN系统中,基站连接到PC,发出广播,接收到广播的节点更新路由信息,并重新广播给通过它自己可以连接到基站上的那些节点。这些节点记住第一次监听到的路由更新,就是相应的到基站的最短路径。为了防止路由循环,时间被分成多个时间段,每个时间段路由更新广播一次。

  3 低功耗监听协议

  针对能量消耗,有以下四个特点:(1)主机模块MCU[ Micro-Controller Unit 微处理器]和收发模块占据电源消耗的绝大部分比重;(2)Active(激活)状态耗能最多,相对而言Idle(休眠)状态耗能最少;(3)收发模块比MCU耗能要多很多。发送一个字节(byte)消耗的能量约等于11000个MCU计算周期所消耗的能量,或是收发一位(bit)消耗的能量相当于MCU处理100条指令;从总体的消耗来看,收发数据所消耗的能量也是最多的。如果我们能够让收发模块和MCU处于多数时间休眠,少数时间激活状态,那么就能明显地降低系统的总体功耗。

  介绍了两种典型的低功耗监听方式:周期性多跳监听(Periodic Multi-Hop Listening)和低功耗监听(Low Power Listening)。宏观上进行周期性多跳监听,设置周期性采样的时间间隔来减少主机和通讯模块的激活工作时间,例如:每100秒激活10秒,则减少了90%的能耗,但是限制了实际的带宽;微观上进行低功耗监听,增加监听频率,把每100秒监听10秒变成每300微秒监听30微秒,这样可以在监听不到任何信息的时候让无线收发器处于休眠状态,并且能够在传送1/3位信息的时间内唤醒,但是需要额外花费传送5位信息的时间来检测信息的有无。

  使用以上两种监听方式带来的降低功耗效果是显著的。两者都不采用时MCU和收发模块的功耗都很大;只采用微观的低功耗监听,MCU的功耗明显降低,但是,收发模块的功耗降低不是很显著;只采用宏观的周期性多跳监听,MCU和收发模块的功耗都显著降低;两者都采用,MCU的功耗几乎为0,收发模块功耗显著降低。可以用电池寿命数据来说明使用了以上两种监听方式带来的低功耗的效果。两者都不采用时电池只能使用3天;只采用微观的低功耗监听,电池可以使用6.54天;只采用宏观的周期性多跳监听,电池寿命明显增加至65天;两者都采用,电池寿命可以达到数年。可见,采用这两种监听方式把电池的寿命从3天延长到几年,对于应用来说是具有突破性意义的。Intel的下一代Mote原型便采用这种策略来使得整个系统维持操作任务周期不超过1%。

转载请注明出处累积网 » 无线传感器网络操作系统

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com