一种大规模异构无线传感网集群系统的设计与实现
2013-09-17陈子平夏勇明钱松荣
赵 坤,陈子平,夏勇明,钱松荣
0 引言
无线传感网(Wireless Sensor Network,WSN)结合了无线通信技术与传感器技术,采用专用的通信方式从而将感知从复杂的高成本的有线数据传输中解脱出来。WSN由大量的廉价终端传感节点和网络支撑节点组成,这些节点通过各种类型的传感器完成环境信息的搜集,通过无线网络来完成监控区域信息的传输、处理和响应,广泛于包括人员监控、战场感知、设施农业、安全监测和工业自动化等。
随着无线传感网应用中节点规模的增长,必须对节点与WSN网络状况进行有效的监控、管理和组织、实时响应故障、调整运行参数、提供安全的访问、以保证WSNs的资源有效分配、有效组织与有效维护。无线传感网管理系统(WSN Management System,WSNMS),是在无线传感网基础上的管理系统,是保障无线传感器网络灵活、有效、可靠和安全地满足系统设计目标的支撑技术,对于传感器网络具有重要的意义,是无线传感器网络大规模应用的关键技术之一。具体来说,WSN网络管理有两个功能,首先,它能够监视和控制WsN的运行状态,使之能够提供可靠、有效、安全和经济的服务;其次,它基于对运行状态的监视,提供WSN的状态控制。第一个任务的目标是发现系统瓶颈和系统隐患,第二个任务则是通过合理的控制和调整,提升系统性能以保证提供可靠的服务[1]。
需要指出的是,现在WSN仍然没有像数十年前想像的那样得到大规模推广,其原因大致可以归结为以下几点:
1) WSN节点的处理器-通信芯片和传感器件的成本仍然太高,并没有达到实现所谓的“一美元节点”的水平;
2) WSN技术仍然局限太大,以最广泛使用的ZigBee为例,尽管理论上支持65536个节点,但在PAN内节点超过数百个时,会发生信道阻塞情况,从而发生某些节点不可到达的状况,这种不可靠的状况可以部分归因于这些低功耗低成本器件工作于高度拥挤的ISM频段;
3) 很多应用部署起来太困难,使得其很难得到推广;
4) 缺乏通用的大规模系统架构。
应用现有的一些WSN协议标准在实际使用时,会很大地制约WSN应用的规模。
本文作者就上述问题的一部分,在一个具体涉及人员安防监控项目中,提出了一种大规模的空间高密度节点WSN集群的构建方法,并开发了名为Sumlock的原型系统,采用德州仪器(TI)的CC2530与CC430芯片作为WSN节点构建了异构WSN集群,分别使用了Z-Stack和底层开发,作为系统感知层,采用Friendly ARM mini2440在其上基于Linux 2.6.32用C++语言编写构建了WSN网关Agent作为系统网络层,以SQL Server 2008和C#.Net技术开发了系统应用层。
Sumlock架构的设计目标是:
a) 可扩展能力,特别地,Sumlock非常关注实现空间高密度特点的应用解决方案;
b) 异构WSN支持能力;
c) 通用性,独立于具体的WSN应用领域,抽象出统一指令集与传输协议和管理协议;
d) 快速部署能力。
囿于篇幅限制,本文无法阐述全部的技术细节,将会就一些重要的设计,特别是作者主要参与的感知层和网络层的设计实现方法进行讨论。文章将按下述结构组织第1章将介绍相关的技术背景。第2章介绍相关的硬件架构设计与组织。第3章介绍Sumlock的高层次架构和系统调试设计方法。第4章介绍Sumlock的感知层设计与实现。第5章介绍Sumlock的网络层设计与实现。最后,第6章给出相关的测试结果。
1 相关工作
L.B.Ruiz在2003年提出了WSNMS的概念,设计了MANNA架构,从3个层面对WSNMS进行了定义,包括功能架构,信息架构和物理架构,但并未具体实现,后续的一些研究也尚处于理论研究阶段。这篇文献指出,按照具体的拓扑结构,这种规模化的WSNMS大致可以分为集中式,分布式和分级式的架构[2]。
在集中式管理系统中,如BOSS、MOTE-VIEW、WSNView,和Sympath等等,管理站点从其他节点获取到信息并且控制整个WSN的运行。相对来说,管理站点可以有近乎无限的资源,因此它可以实施很复杂的管理任务,减少WSN内节点的运算和存储负担。另外,居于一个中央的地位,管理站点也可以轻易地获取关于WSN的一个全局的信息以作出正确的管理决策。但集中式的管理站点也会有一些缺陷,比如像在汇聚节点会造成很大的通信流量,汇聚节点与管理站之间会有很大的额外通信开销,而且一旦中央服务器发生故障,则会令整个WSN陷入瘫痪。
分布式网络管理系统,诸如Agilla和Sectoral Sweeper一类WSN节点级别的管理,它们具有多个管理站,每个管理站控制一个子网络,每个子网络的管理站可以跟其它的子网管理站通信来保持协作管理。
由于分布式系统的本地化管理策略降低了网络开销,避免了网络瓶颈,但是它的缺陷在于它过于复杂而且配置很困难,而在节点上直接进行的网络管理。
在分级式管理系统中,如TopDisc,STREAM,RRP,WinMS和PFMA等等系统架构上,也是有多个管理站,但是这些管理站分为一般管理站与中继管理站,一般而言,中继管理站负责分布网络管理的相关处理,但中继管理站之间不进行通讯。每个一般管理站负责该个子网的网络管理。每个一般管理站用于采集下层子网的数据并向上层转发,同时也接收上层管理站的命令解析发给下面的子网,很容易看到,分级式网络管理系统是介于集中式网络管理和分布式管理之间的一种管理方案。
随着WSN应用的增长,WSN的管理变得越来越重要。鉴于上述各类网络系统各有其优缺点,我们需要一种方法尽可能多地采用其优点而且尽可能多地回避其缺点。
在我们前面所做的研究[1]中提出一种3层异构网络管理的架构,但当时尚未对其系统实现和实证研究,本文依据其主要架构思想,实施了该架构,并进行相应的验证工作。
需要提及的是几个已经完成或者正在进行中的WSN项目:
EMMON[4],这是目前在欧洲最大规模的一个WSN试验项目,目前网络容纳超过300个节点,EMMON2架构也正在实施,EMMON的架构与本文有相关性,其对空间高密度的WSN的解决思路上与Sumlock是一致的,但是EMMON的架构是基于IEEE 802.15.4标准构建,其对协议的定义主要是针对是同构的无线传感网络的, Sumlock则对异构WSN进行了支持,对已存在的应用,可以进行相应的组件移植便可融合构造协同网络,这种前向兼容性使得Sumlock更适用于对一些已经存在的小规模WSN进行升级扩展整合。
ExScal使用瓶颈数量在200多个节点的WSN节点构建了包含了1000多个节点的LS-WSN,应用于入侵检测领域,该项目是迄今布署的最大的WSN项目,但其完全标准化的网络拓扑使得其应用非常局限。
VigilNet试图构建的是集成生存系统,着力在功耗控制方面,目标是在现有硬件的条件下,实现持续工作至少3~6个月,与本文关系不大。
Tenet关注于WSN应用开发的简化和软件重用技术,设计采用两层架构,分别是处理能力很弱的低层和处理能力较强的高层,Tenet的思想是底层的设备不参与处理,而只负责采集,由处理能力相对较强的高层设备来完成信息的处理工作,与本文关系不大。
2 硬件与基础软件架构的设计与组织
2.1 硬件架构概览
如图1所示:
图1 Sumlock的硬件框架
如图1所示,Sumlock的硬件架构包括3层,最上层为应用层,硬件上主要包括服务器、数据库与客户端,集中处理采集到的数据,响应用户请求,存储相关数据。对WSN事件进行快速响应。
网络层负责进行区域内的WSNs之间的协调、互联以及管理工作以及对数据的转发。
感知层主要是各种相对独立的WSNs,实验中采用了CC2530构建了两个ZigBee网络,CC430构建了一个非ZigBee网络,前者工作于2.4 GHz频段,后者工作于 433 MHz频段,其硬件实物,如图2所示:
图2 Sumlock系统Demo的硬件实物
2.2 感知层硬件设计与基础软件架构
感知层采用异构组网,其中,采用CC2530搭载ZStack协议栈组建了运行了2.4 GHz的ZigBee网络,该网络应用于安防监控与人员定位,采用CC430构建了无协议方式通信(点对点,广播)的网络[3],用于设施农业环境监测,能够实时地将各个标签捕获的信息存储并显示,并参照一些农作物生长模型合理提醒报警。
CC2530结合了一个完全集成的,高性能的RF收发器与一个8051微处理器,8 kB的RAM ,32/64/128/256 KB闪存,以及其他强大的支持功能和外设。射频部分采用巴伦匹配和外置高增益SMA天线,接收灵敏度高。
CC430网络用的芯片是TI公司生产的超低功耗CC430,该芯片集成了单片机MSP430和无线传输模块CCll01,比普通的两块芯片面积减少50%的覆盖面积[3]。
图展示的是项目DEMO中WSN汇聚节点的硬件实物,包括两个由CC2530构成的ZigBee协调器和一个由CC430构建的非标准网络的汇聚节点,终端节点的硬件实物,如图3所示:
图1 终端节点的硬件实物图
基础协议栈上,CC2530搭载了Z-Stack协议栈,Z-Stack采用操作系统的思想来构建,其硬件实物,如图4所示:
图4 Sumlock系统汇聚系统硬件实物图
采用事件轮循机制,当各层初始化之后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。这种软件构架可以极大地降级系统的功耗。Z-Stack采用分层的架构方法,主要的层次有OSAL层,NWK层,HAL层,MAC层和PHY层,以及辅助的ZDO接口和用于管理调试的MT层。Sumlock在实际架构的时候,对Z-Stack的一些细节进行修改,不关涉架构体系,不在此处赘述。
而CC430的部分则是采用的自定义协议,无线数据帧结构包括8*n的前导比特、16/32比特的同步字市、8比特的长度、8比特的地址字节、8*n比特的数据域和16比特的CRC 校验[3]。
2.3 网络层硬件设计
网络层的目标是提供相对一般化的无线传感网管理功能,提供对计算机网络信息转发,解析并执行相关的命令并进行有效的监控。网络层主要由WSN网关和相应的服务器中间件构成,如图5所示:
图5 Sumlock网络层的软件层次
WSN网关采用ARM+linux+yaffs的嵌入式系统的基础架构来完成主要功能。ARM板采用mini2440开发板,该板采用三星s3c2440为处理器,系ARM7内核处理器,板载DM9000网卡芯片和串口等外设。采用linux-2.3.26内核和yaffs2文件系统。bootloader选用了vivi,如图6所示:
图6 Sumlock系统WSN网关硬件与设备端口
为配置和系统调试上的便利,在系统中移植了包括FreeTDS,BOA服务器等在内的组件,其中,FreeTDS是为WSN网关直接访问SQL SERVER服务器而引入的,FreeTDS为Linux系统提供了TDS协议的开源客户端。由于Microsoft SQL Server使用的恰是TDS协议,所以在Linux中可以用FreeTDS连接Microsoft SQL Server,后文将会阐释引入FreeTDS的原因。
BOA是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右,源代码开放、性能高。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。BOA的引入,是为WSN在开发调试过程中引入用户配置环境,如图7所示:
图7 Sumlock的WSN的console模式
还有一些边缘的电路设计,包括串口电平转换,总线协议转换、操作系统的移植、驱动编写和组件移植等等技术细节,也是无关架构,就不在此处一一列举了。
3 Sumlock的高层次架构和系统调试设计方法
为避免歧义,术语WSN在下文中专指运行于单一信道的无线传感网。Sumlock架构设计的主要目标是解决在区域空间高密度节点的情形下,提供有效的解决方案,使得基于WSN的系统能够有效运行,在此基础上,提供对全域范围内WSNs的有效管控。其核心思想,是利用多信道覆盖节点密集区域,以避免单一信道所可能带来的节点上限瓶颈,而现有的WSN成熟技术和应用通常运行于单一信道,采用多信道的方案会面临多个WSN之间互联通信的问题,解决这一矛盾会有两种思路:
a) 利用WSN通信方式解决WSN间的通信问题;
b) 利用非WSN通信方式解决WSN间的通信问题。
对于a)方法,在我们前面的研究中已经指出,其实质是用一个公共节点作为网关,在运行周期内以分时方式加入各个WSN并对其进行数据采集和其他的管控工作,其问题是业务逻辑上的汇聚节点在协议上是一个公共子节点,其分时方式一方面会加剧WSN的通信负载,另一方面,这个网关汇聚节点在节点密集时得不到相适应的通信优先级。
因此,要根本解决WSN间通信问题,非WSN通信方式的WSN间通信解决方案更有效。Sumlock采用的是基于串口通信协议的多接口通信方案。
尽管Sumlock支持异构WSN架构,但是它同样具有一些同构WSN的功能,主要是汇聚节点的负载均衡,这是解决空间高密度应用的核心技术,提供了在区域内均衡各个同构WSN的负载的功能。
Sumlock的布署模式是“一区一网关多WSN”,在WSN启动,汇聚节点发起注册的时候,会向网关申报系统类型、设备类型与工作信道,网关将以此为基准来进行同构系统识别和负载均衡调整。
在开发的过程中,为实现相应的分离层次开发,在调试模式使用了数据库作为中间媒介,作为网络层与应用层的调试接口,这是前面在网络层中引入FreeTDS组件的原因,待逻辑层面的调试无误后再行转到Socket。采用BOA服务器是提供一个配置的接口,使得配置可视化,把配置工作从与系统开发相关的工作中分离出来。
4 Sumlock的感知层设计与实现
本项目将以CC2530上基于Z-Stack的开发举例说明感知层的设计。整体将在调用改进的Z-Stack的OSAL层、HAL层与MT层API基础上进行开发。
4.1 寻址空间
ZigBee分配的用户NV空间范围为0x0201~0x0FFF。其他地址由各层使用。在Sumlock-ZStack感知层设计中,扩展了这个地址,原来的NV空间地址为0x0010 0201~0x 0010 0FFF作为传感器等的读写地址,具体的地址解析工作是由具体应用来定义的。
作为所有的在同一系统内识别的基本信息(System Identify Information,SII),是Sumlock的设备必须进行定义的,用于识别系统类型、设备类型与设备唯一标识,包括以下部分,如表1所示:
表1 Sumlock-ZigBee的SII地址定义
4.2 汇聚节点与WSN网关间的指令集与数据帧格式
前文提到过,WSN网关与汇聚节点(Sink Node/Cluster Head),
感知层汇聚节点接受的串口指令集由以下部分组成:
1) WSN管理指令
2) WSN数据读写指令
3) 调试指令
WSN管理指令格式:
0xDA 数据长度 0x3x xx 数据内容 校验字节1byte 1 byte 2bytes N bytes 2 bytes
响应包/事件包:
0xDA 数据长度 0x4x xx 数据内容 校验字节1byte 1 byte 2bytes N bytes 2 bytes
WSN透明数据读写指令:
0xDA 数据长度0x71 xx目标地址扩展NV空间索引校验字节
1byte 1 byte 2bytes 8 bytes 4 bytes 2 bytes
响应包:
0xDA 数据长度0x72 xx目标地址数据(明文)校验字节1byte 1 byte 2bytes 8 bytes N bytes 2 bytes
WSN权限数据读写指令:
0xDA 数据长度0x73xx 目标地址扩展NV空间索引校验字节1byte 1 byte 2bytes 8 bytes 4 bytes 2 bytes
响应包
0xDA 数据长度0x74 xx目标地址数据(密文)校验字节1byte 1 byte 2bytes 8 bytes N bytes 2 bytes
调试指令:
0xDA 数据长度 0x01 xx 数据内容 校验字节1byte 1 byte 2bytes N bytes 2 bytes
4.3 感知层空中通信(OTA)协议与整体运作过程
Sumlock-ZStack的WSN汇聚节点亦即ZigBee的协调器(Coordinator),在启动后自行组网,并向默认的UART口周期性地(默认是5s)发起连接请求(0x4030包),在网关正确响应请求后建立起一个空的域内节点映射表。WSN网关随后会发出节点信息搜集指令(0x3002包)。
汇聚节点在收到该命令后,其OTA模式进入域内标签发现模式,将广播一个无线RSSI与SII请求(OTA,0x80簇),标签/路由将自己的System ID,DeviceType,DeviceID和IEEE Addr用公钥加密后给Coordinator(OTA,0x81簇),Coordinator解析相关信息,填写串口0x4031帧信息,送给上位机,返回给标签一个回执(OTA,0x82簇),确认入网。
搜集标签超时事件发生后,Coordinator转入空闲状态。如有网络状态发生变化,则再次广播(OTA,80簇),保持上位机的网络状态表更新。
其它的管理指令响应过程类似,大体的流程,如图8所示:
图8 Sumlock-Zigbee的Coordinator主要工作流程
5 Sumlock的网络层设计与实现
网络层采用消息驱动架构,如图9所示:
图9 Sumlock网络层的主要层次
具体地,使用了select/pool查询文件描述符,这种架构较好地适应了上位机和下位机事件。采用select/pool而非epool的原因是,考量实际应用的状况,接入WSN个数超过select所能接受的1024个的上限是完全足够的,而在上位机,接入的是LAN,且是对单一的客户请求进行响应,所以并不会产生大量的socket请求。
在协议驱动层上,设计采用了协议标准化的方法,即将消息进行格式标准化提供给事件处理层处理。而业务逻辑层则定义了与应用相关的一些业务逻辑,并将其交给协议驱动层进行相应的转发工作,业务逻辑层的另一个功能是进行相应的配置管理工作,还有一个功能则是执行一些定时任务,如设置一些定时查询任务等等。
6 总结
Sumlock架构的实现证明可以显著地提升空间高密度WSN系统的性能。具体体现在以下几个方面:
1) 可靠性。Sumlock通过多信道复用技术显著提升了高密度节点应用的可靠性。在服务端故障状况下,仍然能够进区域内的各PAN交互,能够对区域内的紧急状况采取域内响应措施,并能够在服务器恢复后利用PAN快速建网能力迅速恢复系统运行。
2) 异构WSN兼容能力。Sumlock能够对现有小规模WSN进行集成而只需升级各个汇聚节点的固件。使已有的PAN加入Sumlock架构扩展其能力更加容易。
3) 通用性。Sumlock抽象统一了感知层与网络层数据封装,提供了良好的应用一致性与可扩展性。
[1]赵坤,钱松荣.“LS—Sumlock:高密度异构无线传感网管理”[J]2012《微型电脑应用》第28卷第11期.
[2]Ruiz,L.B.,Nogueira,J.M.,Loureiro,A.A.F.“MANNA:A ManagementArchitecture for Wireless Sensor Networks”,Communications Magazine, [J]IEEE(Volume:41,Issue:2),Feb 2003
[3]范庭芳,钱松荣,“一种应用于设施农业的有源RFID系统设计”[J]2012《微型电脑应用》第28卷第4期.
[4]Tennina,S;CISTER Res.;Bouroche,M.等,“EMMON:A WSN System Architecture for Large Scale and Dense Real-Time Embedded Monitoring,” [C]in Proc.Embedded and Ubiquitous Computing(EUC),2011 IFIP 9th International Conference on,2011
[5]Zhonghua Zhao,Wei Huangfu,Yan Liu,Linmin Sun Design and Implementation of Network Management System for Large-scale[C]Wireless Sensor Networks.
[6][6]H.Song,D.Kim,K.Lee,and J.Sung,“Upnp-Based Sensor Network Management Architecture,”[C]in Proc.ICMU Conf.,Apr.2005
[7]Bellifemine,F.L.G.Fortino“ASPINE:An Agent-oriented Design of SPINE,”[OL]www.aspine.net
[8]P.Javier,D.Cid,Danny Hughes,J.Ueyama,et al.DARMA:adaptable service and resource management for wireless sensor networks[C].proc of the 4th International Workshop on Middleware Tools,Services and Run-Time Support for Sensor Networks.New York:ACM,2009:1-6