导言
无线传感器网络是由布置在监测区域内的很多廉价微型传感器节点,经过无线通讯方法组成一个多跳的自组织的网络体系,其意图是协同感知、收集和处理网络覆盖区域中感知目标的信息,并发送给观测者。无线传感器网络技能研讨涉及到多个热门学科的前沿范畴,比方传感器技能、现代网络技能、嵌入式核算机技能、无线通讯技能等。因为无线传感器网络在工业监测、环境检测、医疗监护、军事侦查等很多的范畴都有着宽广的运用远景,因而引起了世界各国工业界,学术界和军事部分的注重,并且敏捷成为当今世界研讨的热门之一。
1、无线传感器网络的首要特色
传感器网络节点硬件一般都由数据收集、数据处理、数据收发和电源等四个单元组成。数据收集单元经过传感器收集外界数据并将其转化为数字信号;数据处理单元是节点的中心模块,担任和谐节点各部分的作业,如对数据收集单元收集的数据进行必要的处理和保存,以及数据收发单元作业形式的设置等;数据收发单元担任数据的无线传输以及与数据处理单元的数据交互。上述四大根本模块与相应的操作体系、协议栈和运用程序一起构成一个根本的无线传感器网络节点,很多的网络节点散布在一起,就可以完结无线传感网络的根本功用。
在软件规划方面,本体系以专用嵌入式实时操作体系为依托,来办理、和谐传感器节点各硬件部分的作业。上层运用以及各层的通讯协议都以节能为中心,必要时可以献身其他的一些网络性能指标来取得更高的电源功率。图1所示是一个传感器网络节点的根本组成。
传统的无线网络规划根本上都是为了一起满意人们各式各样的需求,如语音、视频、图画等。而无线传感器网络一般是为了某个特定的需求而规划的,它是一种根据运用的无线网络,与移动通讯网、无线局域网、Bluetooth比较,无线传感器网络具有以下首要特色:
(1)电源能量有限:无线网络中,每个节点的电源都是有限的,网络大多作业在无人区或许对人体有损伤的恶劣环境中,一般替换电源简直都是很困难的事。
(2)核算才干有限:传感器网络节点都选用具有嵌入式特性的处理器,但嵌入式处理器的处理才干,使传感器节点的核算才干比较有限。
(3)无线传感器网络节点数量大,散布规模广,网络中的传感器节点非常密布,数量巨大,有时或许抵达几百,几千,乃至更多。
(4)动态性拓扑:传感器网络的拓扑结构或许因为环境或节点电能耗尽等要素而改动,这就要求传感器网络体系可以习惯这种改变。
2、TinyOS操作体系
因为无线传感器网络节点的资源非常有限,传统的嵌入式操作体系难以正常有用地运转和作业,特别对能量和内存的需求对立比较突出。因而,需求一种全新的嵌入式操作体系来满意无线传感器节点的根本需求。TInyOS操作体系便是美国加州大学伯克利分校的研讨人员针对无线传感器网络规划的开源嵌入式操作体系。TInyOS操作体系首要运用了轻量级线程、主动音讯通讯、事情驱动形式、组件化编程等技能。
TInyOS操作体系开始运用汇编和C言语。但经研讨人员进一步的研讨及运用后发现,C言语并不能有用和便利地支撑无线传感器网络运用程序的开发。因而在经过细心研讨和规划,并在对C言语进行了必定扩展的基础上,提出了支撑组件化编程的nesC言语,该言语可以把组件化、模块化思维和根据事情驱动的履行模型结合起来。因为TInyOS操作体系和根据TinyOS操作体系的运用程序悉数运用nesC言语编写,因而,在介绍TinyOS操作体系之前,首要介绍一下nesC言语。
3、nesC言语
TinyOS和在其上运转的运用程序可以看成是一个大的“履行程序”,它由许多功用独立且彼此有联络的软件组件构成,图2所示是nesC言语的一般程序结构。该体系中的一个组件一般会供给一些接口(假定组件名为ComA),接口可以被认为是这个软件组件完结的一组函数的声明,是独自界说的一组指令和事情,其他组件经过引证相同接口声明来运用这个组件(ComA)的函数,然后完结组件间功用的彼此调用,即组件的接口是完结组件间互连的通道。但若组件中完结的函数并未被它在接口中阐明,就不能被其他组件所运用。nesC言语的界说中存在两种不同功用的组件:其间组件接口中的函数功用专门在模块的组件文件中完结,而不同组件之间的联络则是专门经过称为配件的组件文件来描绘的。
本体系中的接口一般指一系列声明的有名函数的调集,一起,接口也是衔接不同组件的枢纽。组件的接口一般是双向的,这种接口实际上是供给者组件和运用者组件之间的一个多功用交互通道。接口的供给者所完结的接口的一组功用函数称为指令;接口的运用者需求完结的一组功用函数称为事情。
组件是nesC程序的根本单元,组件可分为模块与配件两种。
其间模块是组件的逻辑功用实体,首要包含指令、事情、使命的详细完结。在TinyOS中,指令都对错堵塞的,它们完结后会告诉相关的事情调用。一般情况下,指令调用都是向下的,即运用组件调用那些与硬件紧密结合的组件,事情调用则正好相反。一些特别的根本事情的调用有必要绑定在硬件中止上。nesC言语中还有一类特别的函数称为使命。在TinyOS体系中,使命是一个可以被调度的实体,类似于传统操作体系中的进程或线程概念。
配件一般可经过一系列其他组件来完结一个组件标准,它首要完结组件间的彼此拜访方法。配件包含组件列表和衔接阐明,组件列表界说了完结配件的组件,衔接一般可将界说的元素(接口、指令、事情等)联络在一起,以完结组件之间功用的调用。
4、TinyOS体系的作业原理
为了习惯无线传感器网络的特色,TinyOS操作体系运用了四个首要技能,组件化编程、轻量级线程、主动音讯通讯和事情驱动模型。
4.1 组件模型
TinyOS操作体系中的组件有四个彼此相关的部分:一组指令处理程序句柄、一组事情处理程序句柄、一个经过封装的私有数据帧和一组简略的使命。使命、指令和事情处理程序在私有数据帧的上下文中履行并切换帧的状况。
TinyOS操作体系中的组件一般分为硬件笼统组件、组成组件、高层次的软件组件三类。其间硬件笼统组件用于将物理硬件映射成为TinyOS操作体系中的组件,无线发送模块是这种组件的代表,它可供给指令以操作与射频收发器相连的各个独自的I/O引脚,并且发信号给事情以将数据位的发送和接纳告诉其他组件,图3所示是天线传感器运用程序的组件结构:组成组件可以模仿高档硬件的行为,这种组件的一个比方是图3中的Radio Byte组件,它以字节为单位与上层组件交互,并以位为单位与基层无线发送模块组件交互,最终将无线接口映射到UART设备接口上;高层次的软件组件可完结操控、路由以及数据传输等功用,图3中的主动音讯处理模块是这种组件的代表,它可履行在传输前填充包缓存区以及将收到的音讯分发给相应的使命的功用。
4.2 轻量级线程
在TinyOS操作体系中,一般的轻量级线程task(即TinyOS操作体系中的使命)可依照FIFO方法进行调度,轻量级线程之间不允许抢占。使命一旦履行,就有必要履行结束,不能被其他使命中止。而硬件处理线程(即中止处理线程)则可以打断用户的轻量级线程和低优先级的中止处理线程,故可对硬件中止快速呼应。
4.3 主动音讯通讯
主动音讯通讯是一个面向音讯通讯的高性能通讯模型。在无线传感器网络中选用主动音讯机制的首要意图是使无线传感器节点的核算才干和通讯堆叠。为使主动音讯更适用于无线传感器网络的需求,主动音讯供给了三个最根本的通讯机制,其一是带承认的音讯传递,其二是有清晰的音讯地址,其三是音讯分发。在TinyOS操作体系中,主动音讯通讯被视为一个体系组件,它屏蔽了基层各种不同的通讯硬件,然后为上层供给了共同的通讯原语,可便利开发人员完结各种功用的高层通讯组件。
在TinyOS的主动通讯中,当数据抵达传感器节点时,首要进行缓存,然后由主动音讯把缓存中的数据分发到上层运用。TinyOS操作体系不支撑动态内存分配,所以要求每个运用程序在其所需的音讯被开释后,要可以回来一块未运用的音讯缓存,以用于接纳下一个即将来到的音讯。因为在TinyOS操作体系中,各个运用程序之间的履行是不能抢占的,所以不会呈现多个未运用的音讯缓存产生冲突,因而,TinyOS操作体系的主动音讯通讯组件只需求保持一个额定的音讯缓存以用于接纳下一个音讯。假如一个运用程序需求一起存储多个音讯,则需求在其私有数据帧上静态分配额定的空间以保存音讯。
一般情况下,因为TinyOS操作体系中只供给best-effort音讯传递机制.所以需求接纳方供给承认反应信息给发送方,以承认发送是否成功。承认音讯可由主动音讯通讯组件生成,这样比在运用层生成承认音讯包更能节约开支,并且反应时刻短。
4.4 事情驱动模型
TinyOS操作体系是事情驱动的操作体系,故当一个使命完结后,就可以使其触发一个事情,然后由TinyOS操作体系主动调用相应的处理函数。事情驱动分为硬件事情驱动和软件事情驱动。硬件事情驱动也便是一个硬件宣布中止,然后进入中止处理函数;而软件驱动则是经过signal关键字来触发一个事情。
5、结束语
虽然TinyOS已被广泛运用,并且也得到了适当的认可,但这并不意味着TinyOS可以适用于WSN的一切运用场景。事实上,在某些场合下,TinyOS并不能很好的作业,它也存在缺乏的当地,比方或许呈现过载、导致使命丢掉、通讯吞吐量下降等。无线传感器网络节点的三个典型使命一般是传感器收集、本地数据发送和作为中继节点转发数据包。当本地使命产生频率过高时,使命行列很快就满了,这时发送或接纳使命就或许丢掉,然后导致数据包丢掉;别的,假如本地使命运转时刻过长,则发送或接纳数据包的使命也要等候较长时刻才干得到处理,这样,会下降通讯速率。因而TinyOS的调度战略或许导致问题的呈现。而FIFO的调度机制也或许引起一些重要的使命得不到实时呼应的问题。关于这些问题的处理,将在今后的文章中进行评论。
责任编辑:gt