文献标识码:A
文章编号: 0258-7998(2014)06-0020-03
无线多媒体传感器网络(WMSN)现在已经被广泛应用到各监控领域。WMSN具有自组织能力,不需要提前为其建立基础网络设施,可以根据实际应用的需要建立相应的通信系统,具有较高的灵活性,这对煤矿井下应急通信系统的建立意义重大[1-2]。由于煤矿环境复杂,在生产过程中存在多种安全隐患,多数煤矿事故的发生都是由于操作不规范、缺乏有效的监控措施而导致的;井下的有线摄像机体积笨重,一次布置后很难再次移动;受井下条件限制,会存在许多检测盲点,而且在灾害方发生时,有线网络较为脆弱,容易遭受破坏,在实际救灾中,能为搜求人员提供的有效信息有限。为此本文设计了应用DVC方案的传感器节点,结合煤矿物联网应用背景,完成了节点的软硬件整体设计,并在井下进行了实测。将该WMSN应用到煤矿应急救援通信系统中,将为灾后救援工作带来很大的帮助。
1 矿山物联网的介绍
矿山物联网基于WiFi的感知层无线Mesh网络的设计,为井上与井下人员、井下与井下人员之间的沟通(语音、视频、位置、环境参数等)搭建了一个宽广、快速的网络平台,为煤矿安全生产综合调度提供了新的指挥手段,也为煤矿的救援提供了快捷通信手段,可在灾变期间快速地恢复和投入运行,大大提高救援效率[3]。煤矿井下无线传输网络主要由交换机、AP控制器AC、接入点AP组成。无线网络最终要接入井下以太环网,通过井下以太环网与井上服务器进行通信。井下各种无线数据终端采集的各种数据通过井下无线网络和以太环网传到井上服务器,以供服务器进行后续处理以及供工作人员查看。应用场景如图1所示。
节点能够实时采集图像数据并对数据进行处理,用无线的方式将处理后的数据通过无线接入点传入现有工业以太环网,进而传到井上数据服务器,再由数据服务器将数据转发到各应用服务终端。
2 节点的硬件结构设计
2.1 硬件系统框图
节点硬件平台主要由主处理器、CMOS摄像头模块、存储器、WiFi无线模块、供电部分等模块构成。硬件系统的整体架构如图2所示。主处理器通过CMOS摄像头模块进行数字图像数据的采集,对采集到的数字图像数据进行编码处理,利用自身的硬件编码模块完成关键帧的编码,然后通过软件方式完成对Wyner-Ziv[4]的编码。编码后的数据通过WiFi无线模块转发到路由节点,最后传到井上服务器进行解码。
2.2 S3C6410核心模块设计
S3C6410核心模块主要包括S3C6410芯片、2片16 bit的128 MB DDR内存芯片、MLC型NandFlash芯片K9G8G08、电源管理单元、DIVACOM的100M以态网芯片DM9000等,配合供电电路及晶振、复位电路等外围电路组成。
2.3 摄像头模块设计
摄像头模块的组成部分有:感光芯片、数字信号处理器、镜头以及电源。其中最重要的部分是感光芯片,本设计选用MICRON公司的MT9P031(CMOS)传感器。MT9V031是支持较低照度的低功耗COMS图像传感器,寄存器配置接口是Serial Camera Control Bus(SCCB),它的总线时序与I2C兼容,可以利用S3C6410的I2C控制器配置MT9P031的寄存器,也可以使用I/O口模拟SCCB协议来完成配置工作。利用S3C6410的Camera接口控制器来获取MT9P031的原始图像数据。
2.4 WiFi无线模块设计
节点采用WiFi技术作为无线通信方案。WiFi能够提供WMSN需要的带宽量,并且可以通过休眠机制实现自身的低功耗,同时能够满足煤矿井下的安全要求。美国GainSpan的GS1011芯片具有集成度高、处理速度快、功耗低等优点,能够满足井下多媒体传感器节点的需求。可以利用S3C6410的SPI控制器与GS1011之间进行通信,将需要发送的数据通过SPI接口传递给GS1011,再利用GS1011将数据转发出去,在不需要进行数据发送时,可以控制GS1011进入低功耗的模式,降低节点的能耗。
3 节点软件设计
图像传感器节点选择了基于ARM的32位处理器平台,选择嵌入式Linux作为系统软件平台。首先进行系统软件平台的搭建,需要根据节点的硬件平台情况完成Linux操作系统的裁剪和移植,根据所选用的设备完成驱动程序的移植工作。在系统软件的基础之上,基于分布式视频编码算法完成应用软件设计,实现图像数据的采集,节点系统软件架构如图3所示。
3.1 嵌入式系统移植
首先搭建嵌入式Linux开发环境[5]。本文选择Red Hat企业版6.0作为宿主机。为了降低Linux操作系统的操作难度,在PC端的Windows系统中安装VMWare虚拟机,将Red Hat安装在虚拟机,以配合Windows下的一些工具完成系统的开发。接着进行Bootloader移植,选择U-Boot作为系统的引导程序,U-Boot是开放源码的引导程序,其大部分源码是参考Linux内核源码来实现的,所以在硬件和可移植性方面表现出很多优势[6]。最后进行Linux内核移植。图4是对Camera接口的驱动配置。
3.2 视频采集编码程序设计
视频的采集使用了Linux专门设计的视频层驱动V4L2,V4L2设计了统一接口标准的统一函数接口,只需要按照V4L2的标准定义V4L2的操作接口函数,应用平台就可以不考虑具体摄像头型号,直接调用V4L2提供的操作函数来换取摄像头数据[7]。利用Linux的V4L2层进行图像数据采集的流程如图5所示。
在煤矿井下的实际应用中,能量和带宽都相对有限,对图像的质量要求不会太高,帧率的设置也不会太高,这样图像帧之间的相关度不会很高,默认选择关键帧比较多的GOP2帧分类模式(IWIWIWIW模式,奇数帧为关键帧K帧,偶数帧为WZ帧W帧),也可以根据需求修改关键帧的密度。编码器首先根据需求对采集到的原始视频信号进行帧分类,对不同类型的帧信息进行独立编码,利用S3C6410内部的多媒体控制器对K帧进行H.264帧内编码,利用Wyner-Ziv编码器对W帧进行编码。W帧的编码过程不参考关键帧。首先对原始图像数据的矩阵按照宏块进行划分,对每一个宏块进行DCT变换,然后对DCT变换后的系数进行系数带的划分,提取系数带的每一个比特平面,送入LDPCA编码器进行编码。编码后的数据存入缓存器,根据解码端的反馈,将缓存器中的数据发送给解码端。编码端工作流程如图6所示。
3.3 视频传输模块设计
采集编码后的视频数据可以通过SPI接口传给GS1011模块,GS1011负责将数据转发到AP。由于WiFi射频部分即使在空闲模式下也会消耗大量的能量,因此,为了降低节点的整体能耗,GS1011模块没必要一直保持在工作状态,可以在适当的时间进入休眠模式,关闭射频部分,在长时间没有数据收发任务的情况下还可以进入待机模式,当需要输出时通过控制芯片进行唤醒。GS1011模块的工作流程如图7所示。
4 实验效果及结论
(1)实验地点:为了达到实际的应用效果,研究人员选择在徐州家河煤矿进行测试。
(2)实验室平台:分布式视频解码端在Windows的Visual Studio平台下开发,利用开源媒体库ffmpeg进行解码端的设计。ffmpeg具有先进的音/视频编解码库libavcodec,具有高可移植性和较高的编解码质量。
(3)实验结果:对井下的视频进行采集编码、解码显示实验的结果表明,视频画面流畅,画质较为清晰,可以满足井下监测的实际需求。
本文结合对煤矿井下应用场景的分析,完成了视频传感器节点的软硬件设计。井下实测结果表明,节点运行稳定,图像效果良好,基本能满足井下的视频监控要求,具有广阔的应用前景。
参考文献
[1] AKYILDIZ I F,MELODIA T,CHOWDHURY K R.A survey on wireless multimedia sensor networks[J].Computer Networks,2007,51(4):921-960.
[2] AKYILDIZ I F,MELODIA T,CHOWDHURY K R.Wireless multimedia sensor network: a survey[J].IEEE Transaction on Wireless Communication,2007,14(6):32-39.
[3] 张申.物联网与感知矿山专题讲座之一——物联网基本概念及典型应用[J].工矿自动化,2010(10):104-108.
[4] 贺红.基于Wyner-Ziv视频编码的高效编码算法研究[D].西安:西安电子科技大学,2010.
[5] 孙天泽,袁文菊.嵌入式设计及Linux驱动开发指南[M].北京:电子工业出版社,2009.
[6] 周书林.基于S3C2440A的bootloader设计与实现[D].镇江:江苏科技大学,2009.
[7] 王飞,孙聪.基于V4L2的Linux摄像头驱动的实现[J].电子技术,2012,25(2):86-92.