专利名称::基于中间件思想实现节点软件的传感器网络及通信方法
技术领域:
:本发明涉及基于中间件思想实现节点软件的传感器网络及通信方法,属于无线传感器网络领域。技术背景无线传感器网络(WirelessSensorNetwork——WSN)是由大量密集部署在检测区域的自治节点构成的自组织网络及无线通信系统。它综合了大量复杂的技术和学科,如传感器技术、嵌入式计算技术、网络及通信技术、分布式系统及分布式计算技术。它既是多学科高度交叉的具有高度挑战性的前沿研究领域,也是国内外公认的具有广阔发展前景的高技术产业。近年来,随着传感器技术、嵌入式技术以及低功耗无线通信技术的发展,无线传感器网络在环境监测、建筑物结构监测、工业智能控制、战场监视以及交通流量监测等诸多方面的应用广泛地使用了无线传感器网络技术。传感器网络具有可靠、准确、灵活、低廉、易于部署等优良特性,使其具有广阔的应用前景,因此,传感器网络得到越来越多的关注。但是,目前的无线传感器网络仍存在下列问题需要解决1.传统的传感器网络节点,将微处理器同传感器探头集成在一块电路板上,这样虽然增加了节点的可靠性,但是降低了系统功能的灵活性。当需要检测的数据类型发生改变,或者传感器节点部署环境发生改变时必须重新制作电路版,将新的探头和微处理器整合到一起,并需要重写相应的传感器节点软件。2.当前的传感器节点,有些直接在嵌入式系统中实现相应接口的驱动程序,并按照探头所提供的通信协议进行数据采集和解析,还有一些节点在嵌入式系统中移植了已有的一些嵌入式操作系统如MC/0S,TinyOS等等,之后利用操作系统提供的一些API对接口进行操作,并实现相应探头的通信协议完成数据采集工作。这两种方式下,上层应用程序都需要随着传感器探头的改变而修改代码,从而为系统的扩展带来了极大的麻烦。3.传感器网络的重要应用是监测应用,比如农田作物监测、建筑物监测、湖泊水质监测等。在这些应用中,节点需要每隔一定时间间隔对被监测对象进行感知,并将所采集的数据以多跳的方式发送到汇聚节点上去。在同一无线广播区域,可能会导致严重的包碰撞、网络拥塞、包丢失,在最严重的情况下甚至发生拥塞崩溃。而节点间负载的不平衡会进一步加重这种不良效应的程度,造成能量消耗热点。负载过高的节点会因迅速消耗完它们的电能而过早死亡,而且可能使整个网络过早死亡或陷于瘫痪。为了解决这个问题,必须要从网络的底层加以解决。4.目前国内已有的传感器网络,例如中科院计算技术研究所开发的EZ210节点,在组网过程中传感器节点同汇聚节点直接相连,整个网络是一个图7所示的星型结构,其网络层过于简单,不能适合大规模的无线传感器节点组网,不适用于复杂环境下的实时检测目标
发明内容本发明的发明目的是解决大规模传感器网络下的传感器节点多跳路由组网问题,提升传感器网络系统扩展便捷性,以及降低多种类型数据检测的处理复杂度。本发明采用的技术方案为一种基于中间件思想实现节点软件的传感器网络,是由汇聚节点和多个传感器节点组成的网络,其中传感器节点的硬件由处理器、射频模块、存储器、传感器探头和电源模块组成,射频模块、存储器、传感器探头和处理器相连,电源模块为各模块提供电源;传感器节点的软件包括网络协议栈、标准接口驱动模块、信息交换处理模块及上层应用相关逻辑模块,其中,由标准接口驱动模块构成的标准接口驱动程序层在网络协议栈之上,每一个标准接口对应一个驱动程序模块;由信息交换处理模块构成的信息交换处理层负责从各个标准接口读取数据,对数据进行格式转化,对多个传感器传来的数据进行数据融合处理,并且在一定时间间隔之后对传感器节点进行时间同步,之后将处理好的数据上传给应用层进行进一步处理;底层硬件同上层应用之间以中间件层进行隔离;传感器节点之间以及传感器节点与汇聚节点之间以多跳形式构成网络。一种在上述无线传感器网络中的通信方法,包括如下步骤当传感器节点通过探头采集环境数据后,首先由处理器将数据读入存储器中,将数据划分成帧,附加帧头信息,传递给无线射频模块,由该模块以无线的形式发送出去;在汇聚节点或其他负责转发的传感器节点处,通过无线射频模块将数据接收进来,并生成中断,通知该节点上的处理器读数据,处理器读取无线射频模块的接收缓存;如果是转发的传感器节点接收数据,则按照自己本地的路由表将报文转发出去;如果是汇聚节点接收到数据,则将数据读入并去掉帧头,进行解析,最后将数据通过RS232接口提供给上位机处理,完成整个通信过程。在本发明的实施措施中所述中间件层包括CommMapping层、SensorMapping层、socket模块、Local模块、Remote模块、RoutingModule模块,其中不同的硬件接口协议通过CommM邵ping层进行屏蔽,使得不同接口的操作可以以统一的方式进行操作;socket模块向上层应用提供统一的操作接口,向下则调用CommMapping层提供的针对不同接口屏蔽后使用的统一的一套操作接口;对于不同传感器探头所使用的通信协议通过SensorMa卯ing层进行映射,使之映射到标准socket的操作上;-Local模块负责处理socket模块接收的针对本地资源的相应操作;Remote模块负责处理socket模块接收到的对远程资源的使用请求;RoutingModule模块根据路由算法生成路由表,负责将远程资源使用请求路由转发到指定节点。所述网络协议栈由物理层、媒体接入控制层、负责报文路由转发的网络层、传输控制层组成,其中-物理层负责完成无线链路的连接,确保原始的数据可在物理媒体上完成传输;媒体接入层负责判断当前是否可以向物理层发送数据,如果可以发送,则向数据报文添加控制信息,将数据和控制信息以规定的格式发送到物理层,在接收数据时首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息再发送至上层;网络层根据获取到的无线传感器网络拓扑信息生成路由表,在接收到报文后,根据目的地址和本地路由表对报文进行转发,完成点到点可靠传输;传输控制层的作用是将数据报文加上必要的报文头部,包括源地址、目的地址、报文序列号、确认报文序号等传输控制信息,保证端到端的可靠传输。与现有技术相比,本发明的有益效果为1.对于上层应用来说,底层硬件接口以及传感器探头相关的实现全都不用关心,只需要在中间件middleware和应用Application之间定义用于交互的数据结构即可完成对传感器数据的使用,极大地提高了无线传感器网络节点的扩展能力。2.传感器节点的探头可以以即插即用的方式进行更换,根据要检测的数据类型不同,可以调整传感器节点上连接的传感器探头。图1是传感器节点的硬件体系结构框架;图2是基于中间件思想的传感器网络节点软件结构图;图3是传感器节点软件总体结构图;图4是传感器节点网络协议栈;图5是本发明传感器节点同汇聚节点形成的网络拓扑;图6是传感器节点同汇聚节点通信过程。具体实施方式本发明的基于中间件思想实现节点软件的传感器网络,是一种由汇聚节点和多个传感器节点组成的网络。其硬件的总体结构图如图1所示,传感器节点由图中所示的以nRF905为核心芯片实现的射频模块、以ARM7为内核的处理器芯片、片载存储器ROM和RAM、多类型的传感器探头、以及电源模块组成。射频模块、存储器、传感器探头和处理器相连,电源模块为各模块提供电源。传感器节点的处理器芯片选用由Philip公司生产的ARM7内核的微处理器LPC22節,无线通信部分的核心芯片选用Nordfc公司生产的nRF9—05芯片,具体的制版及编程方法见这两款芯片的用户手册。其中利用ARM7芯片提供的I/0管脚可以实现RS232、SPI、UART以及RS485等标准接口。无线通信方面,nRF905芯片带有C—Sense管脚,可以利用这个管脚实现载波侦听;并且nRF905芯片还可以灵活地设置通信频点、发送功率等参数,为传感器节点的良好通信提供了可能。本发明将传感器探头同处理器电路版作为两个独立的部分进行处理,两部分通过标准接口进行连接。这样可克服现有技术中的第一个问题。为克服现有技术中的第二个问题,我们将中间件思想用到无线传感器网络领域,将上层应用同底层的传感器操作以及接口协议隔离开,使得传感器的改变不影响应用程序代码的修改,为整个系统的扩展提供极大的便捷。因此在其软件方面引入了中间件思想,设计middleware层用来隔离底层的硬件同上层的应用,使得上层应用能够以透明的方式对底层的数据进行访问。本节点中间件层结构图如图2所示。硬件接口协议的不同通过CommMapping层(通信映射层)进行屏蔽,使得不同接口的操作如打开、关闭、读、写、查询状态等操作可以以统一的方式进行操作。例如RS232串口,根据其通信协议以及A固7的指令系统、接口涉及到的寄存器、编码规则,实现RS232接口的通信协议。数据接收以中断方式实现。当有使用RS232接口与处理器通信的传感探头接入节点时,当中断产生后,在中断处理函数中可以接收到数据,并且能够感知有一个探头通过RS232接口连接进入节点。中断处理函数将数据封装并调用SensorMapping(传感映射层)模块的Receive接口通知SensorMapping模块有数据从底层RS232接口传入SensorMapping模块。对于不同传感器探头所使用的通信协议则通过SensorMapping进行映射,使之映射到标准socket的操作上。首先,在SensorMapping初始化时读取传感器探头的数据格式描述文件,该文件需要包含所有在该应用中可能连接到传感器节点的传感探头。其次,当SensorMapping模块接收到Co誦Mapping模块发送来的数据后,对数据进行解析,识别出接入节点的探头类型。再次,第一次通过某个硬件接口接收到特定探头的数据时需要在模块内记录如表1所示的SensorMapping模块探头信息,并分配节点内部唯一的标识,32位IP地址。IPPhysicalInterfaceSensorType192.168.0.1RS232nultraSonic表l<table>tableseeoriginaldocumentpage7</column></row><table>表2<table>tableseeoriginaldocumentpage7</column></row><table>器、CPU、各种接口,RF模块)的相应操作,Remote模块(远程请求模块)负责处理socket模块接收到的对远程资源的使用请求。socket模块向上层应用提供统一的操作接口,向下则调用CommMapping层提供的针对不同接口屏蔽后使用的统一的一套操作接口。RoutingModule(路由模块)根据路由算法生成路由表,负责将远程资源使用请求路由转发到指定节点。传感器节点的软件总体结构如图3所示,主要由网络协议栈、标准接口驱动、信息处理以及上层应用相关逻辑几个模块组成,这些模块均对应到中间件中相应模块的具体实现。以上图2和图3均说明了本发明的软件结构,其中,图2重点从中间件思想角度阐述软件结构,突出中间件思想,屏蔽应用和底层硬件的差异性。针对本节点所采用的芯片,传感器探头,硬件接口来阐述各个模块的设计,将图3中阐述的通用传感器节点软件结构具体化,在中间件层还提出将对各种资源的访问操作统一的socket上的思想。这些都需要将中间件层的软件结构进行细化阐述。图3则重点从功能角度阐述软件结构,突出一个传感器节点软件所需要具备的必要的功能,图3为传感器节点的通用结构,通用结构中的各个模块所具有的功能都可以在中间件层中找到相应的对应模块网络协议栈由图4所示的物理层(在nRF905芯片中已经包含了物理层协议的相关功能)、媒体接入控制层、负责报文路由转发的网络层、传输控制等协议组成。其中物理层负责完成无线链路能够连接,确保原始的数据可在物理媒体上完成传输;媒体接入层的主要功能是判断当前是否可以向物理层发送数据,如果可以发送需要向数据报文添加控制信息,最终将数据以及控制信息以规定的格式发送到物理层,在接收数据时MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至上层;网络层的主要功能是,根据获取到的无线传感器网络拓扑信息,生成路由表,在接收到报文后根据目的地址和本地路由表对报文进行转发,完成点到点可靠传输;传输控制层,将数据报文加上必要的报文头部,包括源地址、目的地址、报文序列号、确认报文序号等传输控制信息,保证端到端的可靠传输。在网络协议栈之上是标准接口驱动程序层,每一个标准接口对应一个驱动程序模块,完成对该接口的读写等操作,以便从相应的接口连接的传感器探头读取数据。信息交换处理层,负责从各个标准接口读取数据,对数据进行格式转化,对多个传感器传来的数据进行数据融合处理。并且在一定时间间隔之后对传感器节点进行时间同步,还可以根据应用的需要对传感器的物理位置进行定位。之后将处理好的数据上传给应用层进行进一步处理。本发明采用图5所示传感器网络的拓扑结构,传感器节点之间以及传感器节点同汇聚节点以多跳形式构成复杂的网络拓扑。在这种拓扑结构下,传感器节点不仅要负责检测环境数据,向外发送,而且还要接收其他传感器节点传来的数据,并负责路由转发,在每个传感器节点中都要保存一份整个传感器网络的拓扑信息或路由表。也就是说,在本发明中传感器节点除了承担传统传感器网络中节点所要承担的感知数据的职责外,还要承担路由器的职责。本发明采用多跳路由的方式进行组网,不仅扩大了传感器节点同汇聚节点之间的距离,而且使得传感器网络节点在部署时受到的限制更少,扩大了整个传感器网络能够覆盖的区域。图6为传感器节点同汇聚节点之间的通信过程。当传感器节点通过探头采集环境数据后,首先由处理器将数据读入片载ROM、R層中,将数据划分成帧,附加帧头信息,传递给无线射频模块,由该模块以无线的形式发送出去。在汇聚节点或其他负责转发的传感器节点处,通过无线射频模块将数据接收进来,并生成中断,通知该节点上的处理器读数据,处理器读取无线射频模块接收缓存。如果是转发的传感器节点接收数据,需要按照自己本地的路由表将报文转发出去,如果是汇聚节点接收到数据则将数据读入并去掉帧头,进行解析,最后将数据通过RS232接口提供给PC或其他上位机处理。完成整个通信过程。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域:
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。权利要求1.一种基于中间件思想实现节点软件的传感器网络,是由汇聚节点和多个传感器节点组成的网络,其特征在于-传感器节点的硬件由处理器、射频模块、存储器、传感器探头和电源模块组成,射频模块、存储器、传感器探头和处理器相连,电源模块为各模块提供电源;传感器节点的软件包括网络协议栈、标准接口驱动模块、信息交换处理模块及上层应用相关逻辑模块,其中,由标准接口驱动模块构成的标准接口驱动程序层在网络协议栈之上,每一个标准接口对应一个驱动程序模块;由信息交换处理模块构成的信息交换处理层负责从各个标准接口读取数据,对数据进行格式转化,对多个传感器传来的数据进行数据融合处理,并且在一定时间间隔之后对传感器节点进行时间同步,之后将处理好的数据上传给应用层进行进一步处理;底层硬件同上层应用之间以中间件层进行隔离;传感器节点之间以及传感器节点与汇聚节点之间以多跳形式构成网络。2.如权利要求1所述的基于中间件思想实现节点软件的传感器网络,其特征在于所述中间件层包括Co,Mapping层(通信映射层)、SensorMapping层(传感映射层)、socket模块(套接字模块)、Local模块(本地请求模块)、Remote模块(远程请求模块)、RoutingModule模块(路由模块),其中不同的硬件接口协议通过CommMapping层进行屏蔽,使得不同接口的操作可以以统一的方式进行操作;socket模块向上层应用提供统一的操作接口,向下则调用CoramMapping层提供的针对不同接口屏蔽后使用的统一的一套操作接口;对于不同传感器探头所使用的通信协议通过SensorMapping层进行映射,使之映射到标准socket的操作上;Local模块负责处理socket模块接收的针对本地资源的相应操作;Remote模块负责处理socket模块接收到的对远程资源的使用请求;RoutingModule模块根据路由算法生成路由表,负责将远程资源使用请求路由转发到指定节点。3.如权利要求1或2所述的基于中间件思想实现节点软件的传感器网络,其特征在于所述网络协议栈由物理层、媒体接入控制层、负责报文路由转发的网络层、传输控制层组成,其中物理层负责完成无线链路的连接,确保原始的数据可在物理媒体上完成传输;媒体接入层负责判断当前是否可以向物理层发送数据,如果可以发送,则向数据报文添加控制信息,将数据和控制信息以规定的格式发送到物理层,在接收数据时首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息再发送至上层;网络层根据获取到的无线传感器网络拓扑信息生成路由表,在接收到报文后,根据目的地址和本地路由表对报文进行转发,完成点到点可靠传输;传输控制层的作用是将数据报文加上必要的报文头部,包括源地址、目的地址、报文序列号、确认报文序号等传输控制信息,保证端到端的可靠传输。4.一种在基于中间件思想实现节点软件的传感器网络中的通信方法,其特征在于包括如下步骤当传感器节点通过探头采集环境数据后,首先由处理器将数据读入存储器中,将数据划分成帧,附加帧头信息,传递给无线射频模块,由该模块以无线的形式发送出去;在汇聚节点或其他负责转发的传感器节点处,通过无线射频模块将数据接收进来,并生成中断,通知该节点上的处理器读数据,处理器读取无线射频模块的接收缓存;如果是转发的传感器节点接收数据,则按照自己本地的路由表将报文转发出去;如果是汇聚节点接收到数据,则将数据读入并去掉帧头,进行解析,最后将数据通过RS232接口提供给上位机处理,完成整个通信过程。全文摘要本发明涉及多类型探头具有路由组网能力的多信息融合无线传感器网络及通信方法,属于无线传感器网络领域。其传感器节点的硬件由处理器、射频模块、存储器、传感器探头和电源模块组成;传感器节点的软件包括网络协议栈、标准接口驱动模块、信息交换处理模块及上层应用相关逻辑模块,其中,由标准接口驱动模块构成的标准接口驱动程序层在网络协议栈之上,每一个标准接口对应一个驱动程序模块;由信息交换处理模块构成的信息交换处理层负责从各个标准接口读取数据,对数据进行格式转化,对多个传感器传来的数据进行数据融合处理,并且在一定时间间隔之后对传感器节点进行时间同步,之后将处理好的数据上传给应用层进行进一步处理;底层硬件同上层应用之间以中间件层进行隔离;传感器节点之间以及传感器节点与汇聚节点之间以多跳形式构成网络。本发明可提升传感器网络系统扩展便捷性,以及降低多种类型数据检测的处理复杂度。文档编号H04L29/08GK101146129SQ20071017663公开日2008年3月19日申请日期2007年10月31日优先权日2007年10月31日发明者威吴,忠周,靖曹,赵沁平,健高申请人:北京航空航天大学