专利名称:一种基于无线传感器网络的气象数据观测系统的中间件的制作方法
技术领域:
本发明属于无线传感器网络中间件技术领域,尤其是涉及一种基于无线传感器网络的气象数据观测系统的中间件。
背景技术:
目前气象数据观测系统按照数据传输方式分为有线和无线两种。有线的传输方式能够很好地实现气象数据的采集,但是具有线路成本高,在山区铺设困难,维修繁琐等缺点。而无线传输方式在节省成本的同时能够提供高服务质量和高效带宽利用,因此目前多数采用无线传输方式进行数据采集。气象数据观测系统中通常包含无线传感器网络,无线传感器网络由大量的静止或移动的传感器构成的无线网络,以协作地感知、采集、处理和传输网络覆盖地理区域内被感知对象的信息(比如温度、声音、振动、压力、运动或污染物等等),并最终把这些信息发送给网络所有者。无线传感器网络是继计算机和互联网之后世界信息产业的第三次浪潮,已成为新一轮全球经济和科技发展的战略焦点。随着研究的不断深入,无线传感器网络会逐渐融入人们的日常生活和社会活动的各个领域。如果说互联网构成了逻辑上的信息世界,改变了人与人之间的沟通方式,那么无线传感器网络这将逻辑上的信息世界与客观上的物理世界融合在一起,改变了人与自然界的交互方式。人可以在任何时间、任何地点甚至是任何环境条件下,通过无线传感器网络获取客观世界的大量信息,极大地扩展了网络的功能和人类认识世界的能力。无线传感器网络一般包括传感器节点(sensor node)、汇聚节点(sink node)。无线传感器网络形成之后,各种 传感器节点采集数据,但是各个传感器节点由于资源的有限性,不可能拥有足够大的网络通信能力,采集到的数据更不可能传递给远处的数据监测中心。但是仍然存在高功耗、数据获取不方便、可操作性差、智能化水平低、数据通信不稳定等诸多问题。
发明内容
为解决上述问题,本发明公开了一种应用于气象数据观测系统的中间件架构,作为连接无线传感器网络与互联网的桥梁,能够快速在传感器网络端和气象数据观测中心之间进行数据的往来传输,操作灵活,适应范围广。为了达到上述目的,本发明提供如下技术方案:
一种基于无线传感器网络的气象数据观测系统的中间件,包括与气象无线传感器网络相连接的CWSN子系统以及与气象数据观测中心连接的CPC子系统,CWSN子系统和CPC子系统之间通过AD HOC网络进行通信;
所述CPC子系统包括CPC网络连接模块、网络自适应模块、CPC自动升级模块和指令处理模块,
其中,
CPC网络连接模块与CWSN子系统通过AD HOC网络连接,和气象数据观测中心通过Internet连接,接收CWSN子系统发来的数据并将其转发至服务器端、接收服务器发来的数据并将其发送至CWSN子系统;
网络自适应模块在CPC子系统与internet首次连接时启动,根据CPC系统与网络的当前连接状态调整接入网络的方式;
指令处理模块用于对气象数据观测中心发送过来指令进行判断与处理;
CPC自动升级模块获取气象数据观测中心的可以在嵌入式平台上直接运行的可执行文件,更新现有的运行的程序,或者添加嵌入式平台上没有的运行程序;
所述CWSN子系统包括串口通信模块、CWSN网络连接模块、WSN包处理模块、XML文件处理模块和CWSN自动升级模块:
其中,
串口通信模块用于接收无线传感器网络发来的数据并将该数据传输至WSN包处理模块进行处理、接收从CPC子系统的指令并将其传输至无线传感器网络;
WSN包处理模块用于解析从串口通信模块接收到的WSN数据包并将解析后数据传输至XML文件处理模块,将从XML文件处理模块传输来的数据封装成WSN数据包后发送给串口通信模块;
XML文件处理模块用于解析从CPC系统发来的XML文件并将其传输给WSN包处理模块,将从WSN包处理模块传输来的数据生成XML文件后发送给CWSN网络连接模块;
CffSN网络连接模块用于连接CPC子系统并与CPC子系统之间进行数据通信;
CffSN自动升级模块,通过CPC子系统获取气象数据观测中心的可以在嵌入式平台上直接运行的可执行文件,更新现有的运行的程序,或者添加嵌入式平台上没有的运行程序。作为本发明的一种优选方案,所述网络自适应模块按照以太网、无线局域网、3G网络的顺序,自动选择通畅的网络进行连接。与现有技术相比,本发明具有如下优点和技术效果:
1.使用中间件作为传感器网络端和气象数据观测中心,具有效率高、响应实时、可靠性高、功耗低、抗干扰能力强等特点,同时具有很好的通用性。2.中间件中的CWSN子系统和CPC子系统形成Ad Hoc网络,在这类网络中所有的节点地位平等,无需设置中心节点,这样在两个节点无法直接通信的时候,就可以通过多个中间节点的转发来实现数据交换,所以具有很强的抗毁性。3.中间件中的各个系统可以根据需要快速地移动,以实现网络拓扑的动态变化来满足不同场合的要求。4.不管是CPC系统,还是CWSN系统都能实现程序的自动更新,为部署在无人监测区域的中间件自动升级提供了 一种途径。5.中间件能够根据物理链路的存在与否,进行物理链路的选择,最后选择最为实用的通道,具有很强的自适应性。
6.中间件是在嵌入式平台上进行开发和运行的,由于嵌入式设备的本身特性,因此中间件具有高度的集成性。
图1为本发明提供的中间件结构原理 图2为CPC网络连接模块的工作流程示意 图3为CPC自动升级模块与数据观测中心之间的信息交互示意 图4为CPC自动升级模块的工作流程示意 图5为CWSN自动升级模块与数据观测中心之间的信息交互示意具体实施例方式以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式
仅用于说明本发明而不用于限制本发明的范围。本发明是在嵌入式平台上进行开发和运行的,本发明使用的是基于S3C6410内核的ARMll开发板,但是其他的嵌入式设备也可以进行开发和运行。基于无线传感器网络的气象数据观测系统的中间件的结构原理如图1所示,包括与气象无线传感器网络相连接的CffSN子系统以及与气象数据观测中心服务器连接的CPC子系统,CWSN子系统和CPC子系统之间通过AD HOC网络进行通信。本发明提供的中间件在气象无线传感器网络和气象数据观测中心服务器之间起到桥梁作用,实现他们之间的信息交互。CWSN子系统和CPC子系统之间为多对一的关系,大量CWSN系统向CPC子系统发出连接请求,CPC子系统通过判断一一响应这些客户端,并且能够实现客户端数据转发至数据观测中心的功能。相反观测中心也可以通过相同的原理发送消息至CWSN系统。 所述CPC子系统包括CPC网络连接模块、网络自适应模块、CPC自动升级模块和指令处理模块:
其中,CPC网络连接模块与CWSN子系统通过AD HOC网络连接,和气象数据观测中心平台通过Internet连接。具体地说,CPC网络连接模块在执行时包括三个线程,主线程、收发客户端线程和连接PC服务器线程,还创建用于存储客户端上传数据的缓冲区I和用于存储自服务器端传来数据的缓冲区2,其流程图如图2所示。下面对这三个线程的工作流程进行详细的说明:
$主线程。主线程主要负责和CWSN子系统连接,及两个子线程的创建。程序运行时首先获取登录远程服务应用层的服务器地址,如果没有得到地址,程序打印错误消息并退出程序;如果得到正确的地址,则创建连接远程服务器线程,然后再创建收发客户端数据线程。通过socket, bind, listen , accept函数建立本地服务器并不断地监听CWSN子系统的连接请求,一旦有客户端请求,主线程就会发送一个字节的随机码,然后验证客户端发送过来的验证码,如果验证成功则将相应客户端的套接字存储到套接字数组,如果不成功则断开连接并返回到监听CWSN子系统连接的部分。收发客户端线程。当CPC子系统接收到客户端(即CWSN子系统)上传的数据时,CPC将会进入收发客户端线程部分,判断数据缓存区I中是否有数据,如果有则等待数据缓存区中数据的处理,如果没有则把数据存储在数据缓存区I中。然后判读数据缓存区2中是否有数据,如果没有则返回判断缓存区I是否有数据部分,如果有则进入判断该数据里的内容是否针对CPC子系统,如果不是针对CPC子系统的则发送数据到每一个CWSN子系统,最后清空数据缓存区2,并返回到收发客户端线程开始部分。如果是针对CPC子系统的则把缓存区2中的数据发送给指令处理模块,让指令处理模块进行相应的处理。S连接PC服务器线程。相反CPC接收到服务应用层(即数据观测中心)数据时会判断数据缓存区2中是否有数据,如果有数据则等待,如果没有数据则存储数据到数据缓存区2中。然后判断数据缓存区I中是否有数据,有则调用sendO函数,发送数据到远端的服务器,然后清空数据缓存区I中的内容,返回到判断数据缓存区2是否有数据部分,反之直接返回到判断数据缓存区2部分。网络自适应模块在CPC子系统与internet首次连接时启动,该模块根据CPC系统与网络的当前连接状态调整接入网络的方式。在网络基本设施齐全的情况下,我们可以从以太网,无线局域网,3G网络中任选其中一种。以太网的稳定性比后两者网络都好,但是并不是所有的区域都有以太网的接口,比如说山区,岛屿或者是人烟稀少的地域。当基本设施不健全的情况下我们可以选择无线局域网,只要有连接着观测中心的无线路由器,我们CPC子系统的wifi模块都能够连接上服务应用层。如果上面这两种情况都没办法满足,那么我们就只有选择3G网络,虽然说网络的稳定性和性价比不如上面的两种类型,但是这种网络连接方便,覆盖广,完全能够满足我们系统的要求。网络自适应单元在执行过程中首先启动以太网卡,通过ICMP协议的ping命令,如果以太网卡与路由器之间的物理链接存在时会返回一个固定值,通过比较返回值与固定值,则可以判断CPC系统与远程中心信息展示控制平台的链路是否通畅,如果通畅该单元退出,如果不通畅,则设置wifi网卡参数,启动wifi网卡。然后再次使用ICMP协议进行网络的测试,如果成功这退出,如果不成功则运行3G网卡启动程序。3G网卡启动程序是一个用shell脚本语言写的可执行拨号程序。为了更好地实现USB 3G拨号功能,在后台运行了一个服务程序,当开机时这个程序被设置为自动运行,所以当我们执行3G网卡启动程序程序时,会自动通过这个后台服务程序发送指令来进行3G拨号。指令处理模块用于对气象数据观测中心发送过来指令的判断与处理,比如:升级指令,校时指令等等,如果指令处理模块解析出是对cpc子系统进行程序升级的指令,则CPC系统就会立即执行CPC自动升级模块并等待接收气象数据观测中心平台发送来的配置文件。CPC自动升级模块。由于相对于CWSN子系统而言,CPC子系统为服务器端,而相对于数据观测中心而言,CPC子系统为客户端,因此CPC子系统的程序更新升级主要涉及了两个方面,第一服务器端的程序,第二 CPC客户端的程序。CPC自动升级模块升级时与数据观测中心之间的信息交互如图3所示,对于服务器来说主要是ftp服务器的配置,数据观测中心平台向CPC子系统发送客户端程序更新指令,CPC子系统获取客户端指令后确认,数据观测中心平台接收到确认信息后发送ftp登录和更新程序信息到CPC子系统,CPC子系统根据接收到的配置信息进行相应的操作,如符合下载程序的要求则开始下载程序。下载程序后将会对下载的程序进行判断,工作流程如图4所示。当程序下载接收后,再次解析下载的xml文件,提取文件大小信息,即file_size节点的大小,计算被下载更新程序的大小并记为curr_size,比较file_size和curr_size:如果大小数值不相等则说明在程序下载的过程中出现了错误,则重新下载程序;如果数值相等则说明程序下载成功。如果程序下载成功则关闭正在运行的程序,修改旧程序名,然后直接启动刚刚下载的新程序:如果新程序能够成功的运行,则删除旧版本的程序和刚刚下载的xml格式的程序配置文件;如果新程序不能成功的运行,则重新启动旧版本的程序。所述CWSN子系统包括串口通信模块和CWSN网络连接模块,其中,串口通信模块与无线传感器网络进行通信,CffSN网络连接模块连接着CPC子系统。由于XML格式的文件具有其特有的优势,所以我们选择在CWSN子系统和CPC子系统之间通过XML格式的文件进行数据的传递,而无线传感器网络发来的数据为WSN数据包,因此CWSN子系统中还包含进行数据解析和封装的WSN包处理模块和XML文件处理模块。串口通信模块主要负责无线传感器网络与中间件之间的通信问题,当无线传感器网络中的气象传感器收集到数据时候会定时地发送数据到此网络中唯一的汇聚节点,再由汇聚节点发送刚刚接收到的气象数据至CWSN系统。该模块用于接收无线传感器网络中的汇聚节点发来的数据并将该数据传输至WSN包处理模块进行处理、将从CPC子系统接收的指令传输至无线传感器网络。具体地说,串口程序通信单元负责从无线传感器网络中的汇聚节点获取信息,主要包括传感器节点的工作状态,采集的环境参数,远程服务器命令的执行情况。通过open ()函数打开ttySACl串口文件,并根据是否正确打开的情况来进行下一步操作的执行,如果打开不成功,则程序会一直执行open()这个函数,如果打开成功则进行串口的参数设置,参数的设置主要包括波特率,数据位,停止位和校验位。CffSN网络连接模块,利用Adhoc网络,通过aodv路由协议使CWSN系统与CPC系统进行连接,并通过网络编程实现CWSN和CPC系统的信息交换。WSN包处理模块用于解析和封装WSN数据包;该模块解析从串口通信模块接收到的WSN数据包并将解析后数据传输至XML文件处理模块,将从XML文件处理模块传输来的数据封装成WSN数据包,在封装时添加ARM Node的相应信息到包中,其中ARM Node是用于标识每个CWSN子系统所在的硬件设备的唯一标记符(可以叫做CWSN地址),和用IP地址标识每个计算机的思想相同。无线传感器网络要想和CWSN子系统进行数据的交换必须要制定一种合理的数据包格式即WSN包。下表I为包格式的说明:
权利要求
1.一种基于无线传感器网络的气象数据观测系统的中间件,其特征在于:包括与气象无线传感器网络相连接的CWSN子系统以及与气象数据观测中心连接的CPC子系统,CWSN子系统和CPC子系统之间通过AD HOC网络进行通信; 所述CPC子系统包括CPC网络连接模块、网络自适应模块、CPC自动升级模块和指令处理模块, 其中, CPC网络连接模块与CWSN子系统通过AD HOC网络连接,与气象数据观测中心通过Internet连接,接收CWSN子系统发来的数据并将其转发至服务器端、接收服务器发来的数据并将其发送至CWSN子系统; 网络自适应模块在CPC子系统与internet首次连接时启动,根据CPC系统与网络的当前连接状态调整接入网络的方式; 指令处理模块用于对气象数据观测中心发送过来指令进行判断与处理; CPC自动升级模块获取气象数据观测中心的可以在嵌入式平台上直接运行的可执行文件,更新现有的运行的程序,或者添加嵌入式平台上没有的运行程序; 所述CWSN子系统包括串口通信模块、CWSN网络连接模块、WSN包处理模块、XML文件处理模块和CWSN自动升级模块: 其中, 串口通信模块用于接收无线传感器网络发来的数据并将该数据传输至WSN包处理模块进行处理、接收从CPC子系统的指令并将其传输至无线传感器网络; WSN包处理模块用于解析从串口通信模块接收到的WSN数据包并将解析后数据传输至XML文件处理模块,将从XML文件处理模块传输来的数据封装成WSN数据包后发送给串口通信模块; XML文件处理模块用于解析从CPC系统发来的XML文件并将其传输给WSN包处理模块,将从WSN包处理模块传输来的数据生成XML文件后发送给CWSN网络连接模块; CffSN网络连接模块用于连接CPC子系统并与CPC子系统之间进行数据通信; CffSN自动升级模块,通过CPC子系统获取气象数据观测中心的可以在嵌入式平台上直接运行的可执行文件,更新现有的运行的程序,或者添加嵌入式平台上没有的运行程序。
2.根据权利要求1所述的基于无线传感器网络的气象数据观测系统的中间件,其特征在于:所述网络自适应模块按照以太网、无线局域网、3G网络的顺序,自动选择通畅的网络进行连接。
全文摘要
本发明公开了一种应用于气象数据观测系统的中间件架构,作为连接无线传感器网络与互联网的桥梁,能够快速在传感器网络端和气象数据观测中心之间进行数据的往来传输,操作灵活,适应范围广。本发明提供的基于无线传感器网络的气象数据观测系统中间件,包括与气象无线传感器网络相连接的CWSN子系统以及与气象数据观测中心连接的CPC子系统,CWSN子系统和CPC子系统之间通过ADHOC网络进行通信;所述CPC子系统包括CPC网络连接模块、网络自适应模块、CPC自动升级模块和指令处理模块,所述CWSN子系统包括串口通信模块、CWSN网络连接模块、WSN包处理模块、XML文件处理模块和CWSN自动升级模块。
文档编号H04W84/18GK103200707SQ20131008568
公开日2013年7月10日 申请日期2013年3月18日 优先权日2013年3月18日
发明者杜景林, 刘荣, 周杰, 高超, 郑若钦 申请人:南京信息工程大学