4.2.3设施农业无线传感网设计2_第1页
4.2.3设施农业无线传感网设计2_第2页
4.2.3设施农业无线传感网设计2_第3页
4.2.3设施农业无线传感网设计2_第4页
4.2.3设施农业无线传感网设计2_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《农业装备物联网技术》机电工程学院第四章设施农业物联网技术与应用务本崇实修德精业4.2.3设施农业无线传感网设计2第四章

设施农业物联网技术与应用4.2.3 设施农业无线传感网设计4.2.3 设施农业无线传感网设计32.操作系统设计TinyOSContikiMANTISSOS3.上位机系统设计与开发上位机系统设计显示网络拓扑显示通信路径查看单个节点状态实施传感器数据观测历史数据查询远程管理主流的上位机系统Mote-ViewSpyGlassSNAMP2.操作系统设计4无线传感器网络的操作系统是运行在每个传感器节点上的基础核心软件,它能够有效地管理硬件资源和任务的执行,并且使应用程序的开发更为方便。一方面,传感器网络操作系统的目的是有效地管理硬件资源和任务的执行,并且使用户不用直接在硬件上编程开发程序,从而使应用程序的开发更为方便。这不仅提高了开发效率,而且能够增强软件的重用性。2.操作系统设计5另一方面,传统的嵌入式操作系统不能适用于传感器网络,这些操作系统对硬件资源有较高的要求,传感器节点的有限资源很难满足这些要求。2.操作系统设计6无线传感器网络操作的设计必须是面向具体设施农业环境应用的,这是与传统操作系统设计的主要区别。在设计传统操作系统时,一般要求操作系统为应用开发提供一些通用的编程接口,这些接口是独立于具体应用的,只需调用这些编程接口就能开发出各种各样的应用程序。2.操作系统设计7然而,这样设计出来的传统操作系统需要实现复杂的进程管理和内存管理等功能,农业无线传感器网络的特征和应用需求对硬件资源有较高的要求。2.操作系统设计8农业无线传感器网络操作系统的设计需要满足以下一些要求:低能耗:由于农业传感器节点分布在设施环境中,只有非常有限的能量、计算和存储资源,所以传感器网络操作系统的代码量必须尽可能小,复杂度必须尽可能低,从而尽可能降低系统的能耗。2.操作系统设计9适用性高:类似于联动温室的设施农业传感器网络的规模可能很大,涉及几十个温室,网络拓扑高度动态变化,因此传感器网络操作系统必须能够适应网络规模和拓扑高度动态变化的应用环境。快速响应:设施农业对环境要求比较苛刻,一旦作物环境不适合作物生长,要求传感网必须对监测环境中发生的事件快速实时地进行响应,并迅速执行相关的处理任务,保障农业设施环境的稳定。2.操作系统设计10支持并发:必须有效地管理计算资源、存储资源、通信资源,并且高效地管理多个并发任务的执行,从而使应用程序能够快速地切换并执行频繁发生的多个并发任务。支持多传感器节点协作:由于每个传感器节点只有非常有限的资源,多个传感器节点必须协同工作,形成分布式的网络系统才能完成复杂的监测任务。因此,传感器网络操作系统必须能够使多个节点高效地协作完成监测任务。2.操作系统设计11能提供方便的编程方法:基于传感器网络操作系统提供的编程方法,开发者应该能够方便、快速地开发应用程序,无需过多地关注对底层硬件的操作。2.操作系统设计12支持在线动态编程:由于传感器网络被部署在农业设施环境中不易到达区域,而且某些应用要求对大量的传感器节点进行动态编程配置。在这种情况下,传感器网络操作系统必须通过可靠传输技术对大量的节点发布代码,而且能够对大量的字点进行在线动态重新编程。2.操作系统设计13目前,典型的无线传感器网络操作系统包括TinyOS、Contiki、MANTIS、SOS、MagnetOS、PeerOS、NanoRK、SensorOS、SenOS、Nano-Qplus、LiteOS等操作系统。(1)TinyOS14TinyOS是美国加州大学伯克利分校(U.C.berkeley)针对元线传感器网络设计的开源操作系统。TinyOS主要使用了轻量级线程、主动消息通信:事件驱动模式、组件化编程等技术。TinyOS科研人员经过仔细研究和设计,对C语言进行了一定的扩展,提出了支持组件化编程的nesC语言,把组件化/模块化思想和基于事件驱动的执行模型结合起来。(1)TinyOS15TinyOS和基于TinyOS的应用采用nesC语言编写,和以前相比,提高了应用开发的方便性和应用执行的可靠性。TinyOS的程序采用模块化设计,所以它的程序核心往往都很小,能够突破传感器存储资源少的限制,能够让TinyOS有效地运行在无线传感器网络上。(1)TinyOS16TinyOS的体系结构如图4.21所示,主要由主程序、应用程序、硬件表达层(执行模块、感知模块、通信模块)和硬件抽象层组成。主程序是一个简单的先进先出任务调度器,应用程序结合具体的应用实例进行编写,硬件表达层为应用层提供与硬件无关的各种功能。硬件抽象层组件将硬件提供的各种功能以函数形式表达,供上层调用。层与层之间通过接口完成互访。17(1)TinyOS(1)TinyOS18TinyOS是由许多功能独立且相互联系的软件组件 (component)构成的,一个组件一般会提供一些接口(interfaces)。接口可以看作这个软件组件实现的一组函数声明。接口既可以是命令和事件,也可以是单独定义的一组命令事件。其他组件通过引用相同接口声明,就可以使用这个组件的函数,从而实现组件间的相互调用。(1)TinyOS19TinyOS的组件有四个相互关联的部分:一组命令处理程序句柄,一组事件处理程序句柄,一个经过封装的私有数据帧,一组简单的任务。为了易于实现模块化,每个组件还声明了自己使用的接口及其要用信号通知的事件,这些声明将用于组件的相互连接。组件通常分为三类:硬件抽象组件、合成组件、高层次的软件组件。(1)TinyOS20硬件抽象组件将物理硬件映射到TinyOS组件模型,合成组件模拟高级硬件的行为,高层次软件完成控制、路由以及数据传输等。TinyOS的组件模型使硬件/软件边界能够比较方便地迁移。另外,在TinyOS设计中采用的固定数据结构大小、存储空间的预分配等技术都有利于硬件化软件组件。(1)TinyOS21为了支持TinyOS的模块化特性,TinyOS工作组开发了一整套工具用于帮助开发者将组件连接起来。在TinyOS中,组件在编译时被连接在一起,消除了不必要的运行期间的系统开销。(1)TinyOS22为了便于组合,在每个组件文件的开始描述该组件的外部接口。从逻辑上讲,可把每个组件的输入输出看成I/0引脚,就好像组件是飞种物理硬件。组件的向上和向下接口的这种完整性描述被编译器用于自动生成组件的头文件。(2)Contiki23Contiki是瑞典计算机科学研究所AdamDunkels等人开发的一个开源、可移植、支持多任务的无线传感器网络操作系统。Contiki操作系统支持实时应用程序,体系结构如图4.22所示。u1P协议校是一种可以实现极小的TCP/IP协议枝,可以用于8位或者16位微处理器构建传感器节点。24(2)Contiki(2)Contiki25Loader是一段小程序,用于初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。ProtoThreads是由Contiki操作系统团队编写的基于C语言的宏函数库,通过该宏函数库为C语言模拟了一种轻量级的无堆核线程环境,从而实现类似多线程的程序。(2)Contiki26Contiki同时支持IPv4和IPv6,其中包括uIPv6协议栈、IPv4协议栈(原uIP协议栈),支持TCP/UDP。Contiki还提供了诸如线程、定时器、随机数发生器、时钟、文件系统和一个命令行shell的操作系统功能。Contiki是针对小内存微控制器设计的,一个典型的Contiki配置是2KB的RAM和40KB的ROM。(2)Contiki27Contiki的特点如下:低功率的无线通信:Contiki同时提供完整的IP网络和低功率无线通信机制。对于无线传感器网络通信,Contiki使用低功率无线网络。在传感器网络协议核实现了收集大范围可靠数据并尽力为网络提供多跳批量数据传输和数据传播。(2)Contiki28网络互动:使用相关命令,可以Web浏览传感器节点采集到的数据。电源效率:为了延长一个传感器网络的寿命,关键是要控制和减少每个传感器节点的功率消耗。Contiki提供以软件为基础的能量分析机制,记录了每个传感器节点能量消耗。Contiki的能量分析机制是用来作为传感器网络协议的实验评价研究工具,并以此来估计一个传感器网络的生存时间。(2)Contiki29Contiki软件开发:Contiki的开发都使用C程序设计语言。为了Contiki软件发展,Contiki即时提供单文件下载,其中包含Contiki软件开发所有必要的工具和编译器。(3)MANTIS30MANTIS是美国科罗拉多大学开发一个多线程、轻量级、能量高效的无线传感器网络操作系统。MANTIS操作系统可以很方便地实现跨平台移植,比如在PDA或者PC上进行开发和测试,然后移植到传感器节点上。(3)MANTIS31简单易用是Mantis操作系统的主要特点,在设计和编程上它沿用常用的方法,主要采用了经典分层的多线程体系结构和标准C语言编写的内核和API,使用C语言作为编程语言。Mantis操作系统的设计支持远程管理传感器节点,用户可以通过主机远程对传感器节点进行编程、程序调试,查看传感器节点当前的运行情况。(3)MANTIS32Mantis操作系统以很小的内存需求实现了典型的分层操作系统结构,支持多线程、抢占式调度和同步信号量、设备驱动的典型服务。MANTIS操作系统支持抢占式任务调度器,采用节点循环休眠策略来提高能量利用率,目前支持的硬件平台有Mica2、Mi2caZ以及Telos等,其对RAM的最小需求可到500B,对Flash的需求可小于14KB。(3)MANTIS33Mantis采用分层的体系结构,如图4.23所示。应用程序线程与底层操作系统API相互独立,所以MANTIS操作系统通过提供不同平台的API就可以实现对多个平台的支持。Mantis操作系统由内核/调度器(kernel/scheduler)、通信层、设备层、系统API、网络协议枝、命令服务器组成。Mantis使用了一个类似于Unix风格的调度器,它提供了基于优先级的多线程调度和在同一优先级中进行轮转调度的服务。34(3)MANTIS(3)MANTIS35内核的主要全局数据结构是线程表,每一个线程占一个条目。线程的状态有五种:空闲状态、运行状态、就绪状态、阻塞状态、休眠状态。操作系统为线程设置了五个优先级:内核级、休眠级、高优先级、正常级、空闲级。操作系统的通信层为通信设备的驱动程序定义了统一接口,如串口、五级通信设备等,它实现了异步的I/O操作。(3)MANTIS36通信层也管理数据包缓冲和同步设备驱动程序(如读取传感器数据),高层的网络协议或用户线程可以使用通信层提供的统一接口函数与通信设备交互。设备层涵盖了同步I/O设备的驱动程序(如传感器、外部存储器等)和异步通信设备的驱动程序(如无线电、串口等),每一个设备都为上层用户提供了系统调用函数。(3)MANTIS37系统API层与核心层进行交互,向上层提供应用程序接口。网络协议枝作为一个或多个用户级线程执行,它支持网络的第三层及三层以上,如路由层、传输层和应用层。MAC协议由通信层提供。网络协议校的各层都被设计成了最小化内存缓冲区,一个数据包的数据负载通常在一个线程内经历网络协议梭的所有层,从而避免了数据拷贝。(3)MANTIS38Mantis操作系统提供了标准的接口,用来控制外部设备的能量状态,它支持三种不同的能量设备状态:开启、关闭和空闲。它的微处理器能量管理与线程调度是紧密结合的,并且它支持两个级别的节能。当调度器就绪队列空闲了,调度器就会隐式地使微处理器进入空闲状态。在这种状态下微处理器比在活跃状态下消耗更少的能量,但是它仍然支持所有的外设操作。(4)SOS39SOS是美国加州大学洛杉矶分校开发的一个事件驱动式的无线传感器哥络操作系统。SOS最大的特点就是提供了很好的动态增加和删除模块的功能,它在设计过程中采用的许多技术都是为这一目的服务的。(4)SOS40SOS在它的内核和应用程序模块中都使用了动态存储,并实现了优先级调度。SOS操作系统使用标准的C语言作为编程语言,减少了学习新的编程语言的难度,并且也可、以充分利用C语言的许多编译器、开发环境、调试器和其他设计工具。(4)SOS41SOS操作系统的体系结构如图4.24所示,由可以动态加载的模块和静态内核组成。静态内核可以先被烧写到节点上,节点运行过程中用户还可以根据任务的需要动态地增加或删除模块。42(4)SOS(4)SOS43静态内核实现了最基本的服务,包括底层硬件抽象、灵活的优先级消息调度器、动态内存分配等功能。模块实现了系统大多数的功能,包括驱动程序、协议、应用程序等。这些模块都是独立的,对模块的修改不会中断系统的操作。(4)SOS44在SOS操作系统中,每一个应用程序都包含一个或多个模块,模块本身是一个独立的代码实体,实现一项具体的任务或功能。SOS中的大部分应用开发都是基于模块进行的,包括驱动程序开发、协议和应用程序组件等。只有在需要改变底层的硬件资源管理功能时才会修改SOS内核。(4)SOS45在模块内部,使用函数调用实现交互。模块间通过传递消息实现交互。传感器管理使多个模块间共享传感器数据,它为多种不同的传感器提供了一致的数据访问API,隐藏了不同设备的实现细节。(4)SOS46SOS操作系统使用了非抢占的优先级队列调度。优先级队列分为两种:高优先级和低优先级。高优先级队列用于实时性比较强的事件,包括硬件中断和敏感定时器等。低优先级队列用于调度大多数普通的事件。优先级队列的使用使得对时间有重要要求的消息可以得到优先调度,从而可以较好地改善系统的中断响应服务性能。(4)SOS47SOS操作系统使用了动态内存。它采用了简单的最佳适应固定内存分配策略,内存块的大小有三种。大多数的内存分配只分配最小的块,空闲的内存按照块的大小组成空闲链表。动态内存块带有少量注释的数据,这些数据用于检测内存溢出。SOS操作系统通过使用运行时动态分配和回收内存的方法提高了内存的利用率。3.上位机系统设计与开发48选定传感器网络的硬件平台和操作系统之后,通过设计相应的网络通信协议,将这些硬件设备组建为网络,在这个过程中需要对网络进行分析,了解传感器网络的拓扑结构变化、协议运行、功耗和数据处理等方面的情况。这些都需要获取关于传感器网络运行状态和网络性能的宏观和微观信息,通过对这些信息进行处理,就能对网络进行定性或定量分析。3.上位机系统设计与开发49设施农业无线传感器网络本质上是一种资源受限的分布式系统,大量的传感器节点相互协作分工,完成数据采集、处理和传输。从微观角度看,无线传感器网络节点状态的获取难度远大于普通网络节点;从宏观角度看,无线传感器网络的运行效率和性能也比一般网络难以度量和分析。因此,设施农业无线传感器网络的分析与管理是应用中的一个重点和难点,需要上位机系统的支持。3.上位机系统设计与开发50无线传感器网络采集农业环境数据并通过传输网络将数据传输到上位机系统,上位机系统对这些数据进行分析、处理、存储,以得到元线传感器网络的相关信息,对元线传感器网络的运行和环境状态进行监测。另外,上位机系统也可以发起任务并通过传输网络告知无线传感器网络,从而完成特定的任务。3.上位机系统设计与开发51上位机系统如图4.25所示,通常由数据库、数据处理引擎、图形用户界面和上位机组件四个部分组成。3.上位机系统设计与开发52数据库用于存储所有数据,包括无线传感器网络的配置数据、节点属性、传感数据、上位机系统的一些数据等。数据处理引擎负责传输网络和上位机系统之间的数据交换、数据分析、数据处理,将数据存储到数据库。另外数据处理引擎还负责从数据库中读取数据,将数据按照某种方式传递给图形用户界面,以及接收图形用户界面产生的数据等。3.上位机系统设计与开发53上位机组件利用数据库中的数据实现一些逻辑功能或者图形显示功能,它可能包括网络拓扑显示组件、节点显示组件、图形绘制组件等。图形用户界面是用户对无线传感器网络进行监测的窗口,通过它用户可以了解无线传感器网络的运行状态,也可以给无线传感器网络分配任务等。(1)上位机系统设计54上位机系统主要用来解释网络中产生的大量数据以及管理整个网络。利用定制的上位机系统观测网络内部的活动,辅助使用者监测网络行为。一般而言,上位机系统主要提供以下功能:①显示网络拓扑55上位机系统的首要问题是网络拓扑发现。如果要管理一个网络,那么首先必须知道这些传感器节点在什么地方,知道所部署的方位,只有这样才能更好地监测网络与定位错误。拓扑结构对于研究数据的流向、诊断错误、评估网络性能都有着很大的作用。但是由于无线传感器网络的特性使网络拓扑的获取往往不那么容易。①显示网络拓扑56首先是环境的影响和节点能量的受限,使得网络拓扑始终是动态变化的。另外一方面,节点的定位问题也不容易解决,使得显示的拓扑很难与实际网络节点建立对应关系。②显示通信路径57在显示拓扑的基础上,可以通过显示数据包的发送过程来可视化网络内部的活动。建立数据源到目的地的通信路径图有助于分析相关的网络协议,了解节点发送数据消耗的能量。②显示通信路径58在网络规模较小的情况下,可以非常方便地观察网络的活动情况,但是当网络规模较大时,每秒发送的大量数据包一方面不能及时被显示出来,另一方面也不利于人眼观测。这里更多的应该是采用统计方法,显示网络的统计数据。③查看单个节点状态59虽然无线传感器网络强调的是整体的监测效果,并且通过节点的冗余满足可靠性要求,但是在研发的过程中,有时候需要了解单个节点的一些情息,以便调试。或者在管理网络时,设置单个节点的一些诸如采样率之类的工作参数,以使网络更好地工作。查看单个节点状态可以直接由收集到的数据包进行统计分析即可,设置节点工作参数则需要网络本身的支持。④实时传感器数据观测60无线传感器网络一般是为了监测某个区域的某种环境参数,如温度、湿度、压力、光强等。对传感器数据的观测是必不可少的。在设计上位机系统时,用户应该可以选择地显示感兴趣的数据,并且当监测到的传感数据超过某一阔值时要给出报警信息。⑤历史数据查询61确定网络以前的活动情况与监测网络当前的活动同等重要。通过历史数据不仅可以统计分析网络以前的性能,也可以用于诊断问题所在,为提高网络性能提供参考。⑥远程管理62远程管理可以方便各地的用户同时了解同一个网络的状况,真正地让人们可以足不出户了解外面环境的变化。63上位机系统在设计的过程中还需要考虑到通用性,如当传感器数据包结构变化之后有可能导致解析全部改变,在这种情况下将数据解析与上位机系统分离是个不错的选择;另外,还需要考虑可扩展性,方便根据需求增加新的功能模块。(2)主流的上位机系统64目前,在无线传感器网络领域出现了一些相关的上位机系统,如克尔斯博公司的Mote-View、加州大学伯克利分校的TinyViz(与TinyOS配套)、加州大学洛杉矶分校的EmStar、DaintreeNetworks公司研发的SensorNetworkAnalyzer(SNA)、德国吕贝克大学(universityofLubeck)的SpyGlass、中国科学院开发的SNAMP等都在无线传感器网络的分析和管理中得到了应用。①Mote-View65Mote-View是Windows平台下支持传感器网络系统的可视化监控软件。无线传感器网络中所有节点的数据通过汇聚节点储存在PostreSQL数据库中,Mote-View能够将这些数据从数据库中读取并显示出来,也能够实时地显示汇聚节点接收到的数据。①Mote-View66通过Mote-View,网络管理者能随时掌握目标监测的情况。管理者可以通过数据、图表或节点拓扑结构的直接形式,快速整理、搜寻或查阅每个节点的数据信息。Mote-View还可以根据管理者的设置采用于机短信或电子邮件的方式提供报警信息。①Mote-View67Mote-View可以提供实时数据和历史数据显示功能、可视化网络拓扑图功能、数据输出功能、图表打印功能、节点编程程序MoteConfig,支持对传感器网络的命令发送。Mote-View支持节点自动发现功能,它还具有显示节点列表、数据、服务器消息,以及管理系统、数据库等功能。①Mote-View68节点列表能够显示部署的所有节点和它们的状态,并且可以对节点进行操作,如添加节点、修改节点属性、排序等;数据可以通过多种视图方式显示,包括数据视图、命令视图、图形视图和拓扑视图;服务器消息显示部分包括服务器消息、数据库错误以及一般状态消息的显示。②SpyGlass69SpyGlass的目的在于通过将传感器网络、拓扑结构、传感器节点状态及传感器数据形象化而简化传感器网络的调试、评估及对软件的理解。SpyGlass的可视化框架包括三个重要的功能实体:传感器网络、网关和可视化软件。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论