基于SD-WSN的高危仓储无线监测系统
2018-11-01闫连山李洪赭张晓薇
郭 鑫,闫连山,李洪赭,张晓薇
(西南交通大学信息科学与技术学院,四川 成都 611756)
0 引 言
高危仓库是存储和保管易燃、易爆、有毒、有害等危险品的场所,一般位于环境偏僻的地区,而且存储的物品大多对人体有害,故通常采用无线传感网络对其进行监测[1-2]。
针对无线传感网络中网络功能难以管理和部署后再利用困难等固有问题,当前学术界研究的热点是将软件定义技术应用于无线传感网络中,即软件定义无线传感网络[3](Software Defined Wireless Sensor Networks, SD-WSN)。董玮等[4]将SD-WSN网络划分为软件定义感知、软件定义路由和软件定义测量等类型,从能耗、灵活性和编程便捷性的角度对现有的SD-WSN架构进行分析,提出将无线重编程与远程调试结合的观点,对设计需求做了理论上的分析;任万里[5]提出新型SD-WSN架构,并给出基于SD-WSN架构的混合型路由算法,但只在Matlab下进行理论仿真,未涉及架构的具体实现设计;秦凯伦[6]提出一种基于SD-WSN系统的网络路由重配置算法,在Cooja网络仿真平台和Contiki操作系统上完成了SD-WSN软件架构和功能模块的设计,同样缺乏具体硬件平台的支持;李媚[7]重构SD-WSN传感节点模块,通过空中下载技术分发节点镜像以实现路由功能的无线重编程,但节点镜像的产生必须依靠PC端的编译环境,无法灵活配置网络,实用性较差。
上述工作大部分是在SD-WSN架构中对路由性能进行分析与改进,未体现无线传感网络感知测量的特点。同时,在具体实现上未考虑实际嵌入式硬件有限的计算及存储能力对系统性能的影响。针对以上问题,本文给出一种基于SD-WSN的高危仓储监测系统设计与实现方案,其创新点在于:
1)节点在执行路由传输的同时加入具体的感知应用,根据流表规则实现路由转发和传感监测。
2)改进流表生成与下发流程,以指令配置的方式实现节点功能的更新,简化匹配执行过程。
3)通过嵌入式技术设计SD-WSN传感节点和控制器,并给出具体的软硬件实现方案,降低对服务器设备的依赖性。
1 系统总体结构及原理
如图1所示,本文设计的基于SD-WSN的高危仓储监测系统采用层次型网络结构[8-9],主要由传感网络层、控制层和应用层这3层构成。其中,传感网络层由多个可重构的SD-WSN传感节点相互连接构成,负责环境参数的采集和传感数据的转发;控制层由SD-WSN控制器构成,负责网络拓扑的管理和传感任务的编排,并向终端提供网络状态信息和传感任务的接口;应用层由终端监控软件构成,负责实时显示仓库环境信息和制定传感任务。系统包含传感监测和节点配置2个功能。
图1 系统结构图
在执行传感监测功能时,传感节点根据接收的控制包查询流表,配置无线模块数据和执行预编译生成的传感任务,并将数据上传给控制器。控制器对数据进行处理,生成网络状态信息和节点任务信息,传输给终端。终端将节点部署情况和环境参数实时显示在监控页面上,供用户查询。
在执行节点配置功能时,用户通过监控软件制定传感任务,并发送给控制器。控制器根据网络拓扑与传感任务筛选传感节点,制定路由路径,同时生成新的流表,下发给指定节点。传感节点接收配置包,以更新流表的方式实现功能的重新配置。
2 系统硬件设计
2.1 无线模块硬件设计
无线模块作为可编程的RF收发器,通过串口与主控芯片连接实现无线通信,负责控制层与传感网络层间南向接口以及传感网络层中东西向接口的数据传输。
图2 无线模块结构图
设计选用MG2470芯片,该芯片工作在2.4 GHz ISM频段,兼容ZigBee/IEEE802.15.4协议,发射功率+8 dBm,接收灵敏度-98 dBm,官方自带调用API函数的控制指令,便于实现节点路由的灵活配置[10]。为保证无线模块的可靠通信,在MG2470芯片后端加入集成功率放大器RFX2401C,并设计巴伦滤波电路,如图2所示。经测试,无线模块的发射功率提高至+22 dBm,通信频段为2.405 GHz~2.480 GHz,配合5 dbi的全向天线,可实现1 km的视距传输。
2.2 传感节点硬件设计
传感节点选用STM32F407作为主控芯片,该芯片的工作频率可达168 MHz,包含CAN、I2C、I2S、USART、USB、EARTHNET等工控总线[11]。
传感节点结构及实物如图3所示,STM32F407通过TTL串口与无线模块连接,以调用控制指令的方式实现无线模块工作模式、目标地址、通信速率等路由信息的重新配置。为采集环境信息,节点连接RS-485总线的温湿度传感器PKTH-100B、IIC总线的光强传感器TSL2561、RS-485总线的CO2传感器JXBS-3001-CO2[12],并将传感任务预编译生成可执行程序,通过查询总线接口编号和传感器ID进行调用。在执行流表的查询匹配工作时,STM32F407根据控制指令配置无线模块和调用传感任务函数,分别实现路由转发和传感监测功能。
同时,传感节点预留SPI、IIC、RS-485等多种工业接口。当存储物资改变需要更新传感任务时,可以通过预留的接口连接新的传感器,并根据控制器下发的流表重新配置节点,从而实现对新指标的感知测量。
图3 传感节点结构框图及实物图
2.3 控制器硬件设计
控制器选用基于ARM Cortex-A53内核的S5P6818作为核心处理器,搭载512 MB DDR内存和1 GB的Nand Flash。
控制器结构及实物如图4所示,S5P6818通过无线模块与传感网络层进行通信,包括节点的传感数据、任务控制数据和功能配置数据;通过以太网口与应用层的终端通信,使用TCP/IP协议传输网络状态信息和节点任务数据。在系统运行时,控制器通过拓扑发现操作收集网络状态信息,结合网络拓扑和任务信息生成流表并下发,完成传感监测或更新配置功能。同时,控制器也是网络数据信息的存储中心,包含网络拓扑信息、节点任务信息和路由传输流表等数据库,并为终端提供查询接口。
图4 控制器结构框图及实物图
3 系统软件设计
3.1 传感节点软件设计
本文所设计的传感节点不仅能按照控制器的配置进行数据转发和传感监测,还能以更新流表的方式实现功能上的重新定义,其软件流程如图5所示。
图5 传感节点软件流程图
传感节点上电后,先初始化UCOSII系统及硬件端口,通过WLT协议的通信指令将无线模块设置为路由节点模式。然后搜索附近的邻居节点和节点间的信号强度,建立路由信息包,并上传给控制器。之后等待控制器下发数据包,节点根据所接收数据包的类型执行不同的任务,若为控制包则执行传感监测任务,若为配置包则执行节点配置任务。
在传感监测任务中,节点通过match_flow()函数查询内部的流表,以控制包中的接口编号和传感器ID数据进行匹配。若匹配成功,则调用预先生成的传感任务程序,并将传感数据和任务编号上传给控制器;若匹配失败,根据Table Miss机制[13-14],节点需向控制器发送请求包,交由控制器处理。
在节点配置任务中,节点根据无线模块配置指令和任务编号,将配置包中的数据写入流表,实现功能上的重新配置。当节点接收到能够匹配该流表项的控制包后,即可执行对应的传感任务函数。
3.2 控制器软件设计
SD-WSN中控制器的软件流程如图6所示,负责网络拓扑的管理和传感任务的编排,同时向终端提供网络状态信息和传感任务的接口,包含路由发现与维护、任务制定、流表生成、流表下发功能。
图6 控制器软件流程图
控制器上电后,先初始化Linux系统内核,开启与无线模块相连的/dev/ttySAC3驱动文件,设置波特率为115200。同时建立TCP连接,将设备设置为服务器端,使用IPv4协议,端口号为8000,允许任何地址接入。然后,控制器等待接收传感节点的路由信息包,建立网络拓扑,并计算最短距离矩阵。在网络拓扑建立完成后,控制器将进入监测运行阶段,根据监控软件下发的命令分别执行传感监测任务和节点配置任务。
在传感监测任务中,传感节点定时向控制器发送监测数据,控制器根据节点编号和任务编号对接收到的数据进行分类。之后,控制器对同一库房中的节点数据求平均值,汇总各库房的环境参数,建立网络拓扑信息、节点任务信息和路由传输流表数据库,并通过网口上传给监控软件。
在节点配置任务中,监控软件通过网口下发任务信息至控制器,控制器根据路由拓扑和库房编号筛选任务节点,并将传感任务分配给选中的节点。然后,控制器在目标节点的流表中查询该项任务,若流表中包含该任务,则将其封装为控制包,提取路由路径并下发;若流表中不包含该任务,则根据节点发送的请求包和网络状态信息生成新的流表,将其封装为配置包,并通过Flow_Mod()函数下发给对应节点,实现节点的重新配置。
3.3 终端软件设计
SD-WSN终端用户可以通过监控软件接收、显示仓库环境信息,并可以根据控制器提供的任务接口实时制定传感任务,其工作流程如图7所示。
图7 终端软件流程图
系统开启后,先图形化显示仓库布局,等待控制器上传网络状态文件/bin/Net_info,在界面上显示节点部署情况。然后接收各库房的环境数据,根据数据类型和传感器ID将获取的传感数据转换为用户可读的信息。当存储物资改变,需要对新的安全指标进行监测时,用户可以在监测页面输入具体的库房编号、工控接口编号和传感器ID实现传感任务的更新。该项任务的测量结果会在图形界面中指定库房的上方以窗口形式显示。此外,系统还具有将监测信息导出为表格形式保存的功能。
4 系统性能测试
4.1 功能测试
在建筑面积为500 m2的仓库中放置9个传感节点设备,节点固定在水平高度为2 m的货架上。控制器设备安放在监控室内,便于用户通过监控软件对系统进行数据查询和任务管理。
监控系统正常工作时的界面如图8所示,界面左方显示仓库的布局简图和节点的部署情况,右方分别为任务制定栏和数据显示栏。PC端与控制器连接成功后,可在数据显示栏中通过切换库房编号查看各个库房的环境参数,包括温度、湿度、光强、CO2浓度等信息[15-16]。为测试系统的任务更新功能,在2号库房中添加CO浓度监测任务。在传感节点上安装RS-485接口的CO浓度传感器ECS000264,并在界面中的任务制定栏输入库房编号(“仓库2”)、接口编号(“RS-485-3”)和传感器ID(“ECS000264”)。之后,等待任务下发以及传感节点的重新配置,CO的监测结果会以窗口形式显示在2号库房上方。由实时监测结果可知,此时2号库房的CO浓度为0 ppm。点击页面右下方的“保存”按键,系统会自动读取当前时间,将接收的传感数据绘制成表格并保存,如图9所示。
图8 监测软件界面
图9 仓库参数表格
4.2 通信测试
路由传输的可靠性是评估工业现场的无线监测系统的重要指标[17]。为测量基于SD-WSN的高危仓储监测系统的通信可靠性,将传感节点和控制器按4.1节中位置放置。将控制器作为源节点,节点1作为目的节点,分别通过本文设计的SD-WSN网络和ZigBee Mesh网络进行数据传输。实验中截取200帧数据,每帧数据60 Byte(传感数据包长度),改变数据帧之间的时间间隔,依次为10 ms、20 ms、25 ms、30 ms和40 ms,根据目的节点接收的字节数来评估网络的通信可靠性,结果见表1。
表1 SD-WSN与ZigBee通信成功率对比
由实验结果可知,当数据帧间隔为30 ms时,SD-WSN网络的通信成功率为98.35%,ZigBee网络的通信成功率仅为91.69%;当数据帧间隔为40 ms时,ZigBee网络通信成功率为97.62%,SD-WSN网络近似完整接包。因为在SD-WSN网络中,控制器根据路由环境的变化更新流表,集中管理所有传感节点的路由路径,使得传感节点不需要自主寻路就能获取高质量的传输链路。所以在相同的网络环境下,相比ZigBeeMesh网络,SD-WSN网络具有更高的通信可靠性。
5 结束语
本文设计了一种基于SD-WSN的高危仓储无线监测系统,其中传感节点负责基于流表的环境监测和数据转发,控制器负责网络拓扑的管理和传感任务的编排,终端监控软件负责实时显示传感数据和发布传感任务。实验结果表明,本文设计的系统具有可编程的特点,能够根据仓储物资的改变实时更新传感任务。同时,相比ZigBee Mesh网络,本文设计的SD-WSN网络具有良好的通信可靠性,能满足实际应用的需求。