无线传感网络人工免疫智能诊断分析系统设计与实现

2017-09-03 10:57贵阳学院数学与信息科学学院
电子世界 2017年16期
关键词:网关数据包基站

贵阳学院数学与信息科学学院 何 翼 刘 云

贵阳学院科技处 刘合财

无线传感网络人工免疫智能诊断分析系统设计与实现

贵阳学院数学与信息科学学院 何 翼 刘 云

贵阳学院科技处 刘合财

故障诊断是无线传感器网络面临的一个共性关键技术问题。人工免疫系统具有自适应、自学习特征,通过算法优化和系统设计可以满足WSNs资源(带宽、能量等)有限前提下的故障诊断需求。文章基于一个多节点的物理原型系统采用人工免疫原理研制一个无线传感器网络诊断系统,进行节点组网测试分析。

无线传感网络;人工免疫;智能诊断

引言

无线传感网络(WSNs)具有动态拓扑变化、能量约束和传输计算能力受限等特性[1,2],容易出现网络能耗不均、路由质量差和数据传输不稳定等现象.导致WSNs故障的原因较多,如节点失效,负载不均衡和路由算法相关等。运行良好的WSNs应具有故障检测、诊断与容错,能自适应地处理多种网络异常现象。故障检测是WSNs面临着的一个共性的、亟待解决的关键性技术问题[3]。

人工免疫系统(AIS)提供了许多信息处理机制,具有记忆学习、反馈机制、无中心控制的分布自治机理等,近年来开始被应用于WSNs的故障检测与诊断方面。如Hwang等[4]提出了一种基于生物免疫机制的无线传感器网络容错结构SASHA,将淋巴结机制用于产生检测器对故障进行检测, 胸腺机制完成对故障的确诊。Jabbari等模拟生物免疫系统或神经免疫系统的自学习、自组织、记忆和信息处理等机理,开展无线传感器网络检测、系统协调和故障容错研究[5-6]。这些研究大多是理论层面的研究,缺乏设计与实现层次的研究。

本文首先搭建了一个WSNs物理原型平台,然后运用人工免疫系统的研究成果采用C#实现一个WSNs诊断系统。该系统主要由故障知识库、故障诊断、故障分类等模块构成,不但能识别已知故障, 对未知故障具有良好的自适应学习和进化能力。本研究可以为WSNs故障检测系统的开发提供有益的借鉴。

1.WSNs原型硬件设计

本文为实现智能诊断系统,搭建了一个WSNs物理原型平台。该平台为三层结构:底层为采集层或传感层,传感器节点与基站相连,每10个传感器节点与1 个基站组成局部网络单元,使用TI 星型拓扑结构的多跳自组织网络;中间层为传输层,基站采集的实时数据通过CAN总线传输至网关,网关完成与 Internet 协议的转换,与后台管理节点对接;最上层为应用层,通过 Internet 网络实现管理节点与网关的连接,从而实现对采集数据的实时查询与展示,故障查询。系统结构见图1。

1.1 传感器节点设计

传感器节点由传感器、微处理单元(MCU)、通信模块和电源组成。MCU和通信模块采用模块化芯片CC1110实现, CC1110是一款低电压、低功耗的无线通讯应用设备。传感器采用了DHT11温湿度、MQ-2烟雾传感器,传感器与MCU的IO接口连接。电源模块采用9v电池供电,通过LM 7805三端稳压器转化为5V电源给传感器供电,5V电源经由TPS73HD301转换为3.3V后给CC1110供电。

传感器节点与基站相连,通过Simplici TI 协议实现一个基站与多个传感节点的无线通信。

实现的功能包括:(1)完成基站和节点的组网和双向数据传输;(2)基站与总线数据传输的功能。传感器节点集成了DHT11温湿度、MQ-2烟雾传感器,可实现数据主动上传、数据请求上传和定时上传功能。

图1 WSNs网络结构

1.2 CAN总线

由于对电气干扰的鲁棒性,自我诊断能力,数据错误修复,适合苛刻环境,传输层采用CAN总线(Controller Area Network)。CAN总线是一种用于短消息传输的串行通信总线,采用MCP2515芯片实现。MCP2515是一个独立的控制器区域网络(CAN网络)协议控制器,带有两个接受掩码和六个接收滤波器,可以过滤错误的信息。对MCP2515芯片进行初始化配置,使该模块成功接收数据后产生中断信号,中断信号与主控芯片外部中断引脚相连,该中断信号需要手动清零。MCP2515 模块与主控芯片通过SOC的SPI接口通信,由主控芯片提供MCP2515的 SPI 接口时钟信号,数据读写严格遵守 SPI接口读写操作指令规则。对AP 与网关移植Modicon Mod Bus协议。Modbus协议是一种应用层的基于分组的传输协议,使用一个主机的一个或多个从机的通讯,使用命令/应答模式实现网关对基站(点对点)、各基站对网关(多点对一点)以及网关广播等通信方式,能有效保证基站数据主动上传和被动查询两种数据采集方式。

1.3 网关

传感器网络有自己的协议,最常用连接IP网络的方法是在两者之间部署网关。网关设备使用ARM9 Cortex A8嵌入式开发版开发,安装了嵌入式Linux操作系统+嵌入式数据库sqlite,搭建嵌入式网关设备。网管实现原理如下:

从IP主机(主机A)到传感器节点(节点x)的数据包流程。①初始状态,网关的映射表为空。网关为每个传感器节点分配一个虚拟IP地址,并分配从传感器节点接收无线传感器网络包的时间。此外,网关给每个IP主机的生成一个虚拟传感器节点ID,一旦网关从IP主机接收到一个IP包。网关在映射表存储分配的虚拟IP地址和ID(图2);②然后主机A建立一个IP包。该数据包含IP地址作为源地址和节点x的虚拟IP作为目的地址,数据包需遵循WSN运行的应用层协议规范;③该数据包被路由到无线传感器网络,并到达网关。网关分贝映射源和目标地址到主机A的虚拟ID和节点XID(图3);④网关建立一个WSN数据包,该包包含映射的IDS和IP数据包相同的内容。使用WSN路由协议传递该包给到节点X。网关过滤冗余传输协议包(例如TCP SYN和SYN-ACK包)。

图2 网关映射表

图3 TCP/IP包从主机A到节点X

从传感器节点(节点x)到IP主机(主机A)的数据包流过程。①节点X建立一个WSN数据包,该包使用它的ID作为源地址,主机A的虚拟ID为目的地址。根据以前的源于从主机A连接,网关已经知道主机A的虚拟ID;②使用WSN路由协议数据包被路由到网关节点;③网关分贝映射源和目标ID到节点X的虚拟IP和主机A的IP(图4)。网关建立了一个新IP包,该包包含映射的IP地址和无线传感器网络包指定的相同内容。网关过滤冗余WSN传输协议包。

图4 WSN包从节点X到主机A

图5 WSNs故障检测程序架构

1.4 后台管理节点

后台管理接口采用UDP协议与网关设备的通信,主要功能是部署故障检测程序和故障检测结果的存储。客户端软件采用C#,主要显示故障检测结果。

2.WSNs故障检测程序的设计与实现

WSNs故障检测程序基于opt-IA算法,是一种基于免疫原理的仿生算法,具有自适应、自学习的特征。我们采用分布式设计,见图5。故障检测包括客户端故障检测程序与故障显示、基站故障识别和分类程序。

2.1 后台管理端程序

2.1.1 故障识别库生成

后台客户端故障识别库生成程序包含4个基本类。分别是:1.主要窗体类,提供了简单的图形用户界面;抗体库生成控制类Opt-IA;抗体类Ab;适宜度函数类Fitfunc。抗体类Ab试图模拟生物抗体细胞,具有克隆自己的方法Cloning()发现与另一种抗体的亲和力、基于亲和突变Hypermutation()、选择方法Selection、老化方法Aging()。适应度函数类使静态方法evaluatefuncation()返回节点特征向量的适宜度值。每个抗体代表一个候选解,在此代表的故障节点特征向量。免疫算法的控制器类允许参数定义,并有一个Initial_Pop()产生抗体的初始种群。生产抗体库的代码如下:

Opt-IA(l,d,dup,TB,c,h,hm)

{t=0

P(t)=Opt-IA.Initial_Pop()

Fitfunc.evaluatefunction (P(0))

while(Fitfunc.evaluatefunction(P(0))<threshold) do

P(clo)= Ab.Cloning(P(t),dup)

If(H is TRUE)then

P(hyp)= Ab.Hypermutation(P(clo),c,l)

Fitfunc.evaluatefunction (P(hyp))

If(M is TRUE)then

P(macro)= Ab.Hypermutation(P(clo))

Fitfunc.evaluatefunction ( P(macro))

Ab.Aging(P(t),P(hyp),P(macro),TB)

P(t+1)=(μ+λ)- Ab.Selection(P(t),P(hyp),P(macro))

end while}

2.1.2 故障识别库更新

一旦后续基站节点检测抗原(任意一个节点的特征向量)的过程,发现落入抗体库更新区域,就会向后台管理节点发送信号让其重新启动Opt-IA更新抗体库。相应的代码如下:

raduis1=CompuRaduis1(Lib);\由簇头节点计算抗体库的内圆半径值

raduis2=CompuRaduis2(Lib);\由簇头节点计算抗体库的外圆半径值

v=CompuV(Lib);\由簇头节点计算抗体库的中心

for(i = 1;i<=n;i++);

CompuDis(agi,v;)\计算节点 i 与抗体库圆心的欧氏距离div

if radius1<div<radius2

SendUpdate(管理节点);\发送信号让管理节点重新启动Opt-IA更新抗体库

end if

end for

2.1.3 故障显示

故障显示定义了一个故障库类FaultLib,该类存储着发生故障节点的ID和故障类型,该类showfault()方法,将故障节点的ID、故障类型显示在客户端程序出来。只有当调用该方法时,才由客户端向基站节点发出查询指令,基站节点反馈各自管理区域的故障节点信息。

2.2 基站故障检测与分类

2.2.1 故障检测

故障检测程序由基站节点运行。故障库类FaultLib,还具有一个故障节点存储的方法input()方法,该方法将故障节点的ID、类型存储起来。主要代码如下:

n = 传感节点数量

k = 故障节点的数量

CompuDis(agi,v);\计算节点 i 与抗体库圆心的欧氏距离div

raduis1=CompuRaduis1(Lib;)\由簇头节点计算抗体库的内圆半径值

for(i = 1;i<=n;i++);

if div<radius1

FaultLib.input();

k++;

end if

end for2.2.2 故障分类

故障检测程序由基站节点运行。具体的方法为,计算故障节点与各个抗体的距离,与何种抗体相邻距离近,则被将故障节点视为该类故障。故障检测的结果是由基站节点保存。相应代码如下:

b = 抗体库包含抗体的数量

for(i =1,i<=k,i++)

for(j=1,j<=b,j++)

D[i,j]=ComputDis2(i,j)\计算各故障节点与抗体j的距离

end for

Min(D[i,j])\求出距离最小,即为该类故障

end for

3.结论

文章基于搭建的小型WSNs原型平台和人工免疫原理,采用C#实现一个无线传感器网络智能诊断系统,可以为建立类似WSNs故障诊断平台提供参考。为了节省能量,延长WSNs的寿命,采用了分布与集中相结合的方式,由管理节点生成和更新故障库,然后传递给各个基站节点,由各个基站节点负责管理区域(10个传感器节点)的故障检测与分类。该系统仅可以反馈检测区域的温湿度和烟雾浓度数据,后期可以根据需要在传感器节点连接其他类型传感器进行扩展。

[1]I.F.Akyildiz,W.Su,Y.Sankarasubramaniam,E.Cayirci. Wireless sensor networks: a survey: Computer Networks[J].Computer Networks,2002, 38(4):393–422.

[2]Jennifer Yick,Biswanath Mukherjee, Dipak Ghosal. Wireless sensor network survey[J].Computer Networks, 2008 (52) :2292–2330.

[3]Lilia Paradis and Qi Han. A Survey of Fault Management inWireless Sensor Networks[J].Journal of Network and Systems Management, 2007, 15(2):171-190.

[4]Soyoung Hwang,Gwang-Ja Jin, Bongsoo Kim. Lightweight Fault Tolerant Time Synchronization in Wireless Sensor Networks[C].5th International Conference on Networked Sensing Systems(INSS 2008),2008,pp.131-134.

[5]Jabbari,Amir;Lang,Walter. Advanced Bio-Inspired Plausibility Checking in a Wireless Sensor Network Using Neuro-Immune Systems. The Fourth International Conference on Sensor Technologies and Applications,2010,108-114.

[6]Barron,J.W.,Moustapha,A.I.,Selmic,R.R..Real-Time Implementation of Fault Detection in Wireless Sensor Networks Using Neural Networks[C].Fifth International Conference on Information Technology: New Generations(TNG 2008), 2008,pp.378-383.

项目来源:贵州省科学技术基金资助项目(黔科合J字LKG【2013】46号。

猜你喜欢
网关数据包基站
SmartSniff
可恶的“伪基站”
基于GSM基站ID的高速公路路径识别系统
小基站助力“提速降费”
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
基站辐射之争亟待科学家发声
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计
视觉注意的数据包优先级排序策略研究