基于Ad Hoc的微震监测数据传输系统设计
   来源:现代电子技术     2017年11月01日 08:48

张法全 王泰麟 叶金才 黄桂强 王国富

摘 要: 微震监测网络具有节点间距大、分布范围广、数据量大的特点,其数据传输方式仍以有线传输为主,存在线缆铺设困难和成本高等问题。设计基于Ad Hoc的微震监测数据传输系统,利用远距离无线网络模块和Ad Hoc技术,结合AODV无线路由协议,在无需其他基础设施的情况下即可实现数据的多跳转发,从而实现整个网络的数据传输。实验结果表明,该系统布置灵活方便、成本低,同时具有传输时延短、数据传输速率高的特点。

关键词: 微震监测; 数据传输; Ad Hoc; AODV

中图分类号: TN931+.3?34; TN92 文献标识码: A 文章编号: 1004?373X(2016)24?0128?04

Design of microseismic monitoring data transmission system based on Ad Hoc

ZHANG Faquan1, WANG Tailin1, YE Jincai1, HUANG Guiqiang2, WANG Guofu1

(1. School of Information and Communication, Guilin University of Electronic Technology, Guilin 541004, China;

2. Geological Survey Institute of Guangxi Zhuang Autonomous Region, Nanning 530023, China)

Abstract: The microseismic monitoring network has the characteristics of wide node spacing, wide distribution and large volume of data, whose the main way of data transmission is still wire transmission that will result in cable laying difficulty and high cost. Therefore, a microseismic monitoring data transmission system based on Ad Hoc is designed in this paper, in which a remote wireless module, Ad Hoc technology and AODV(Ad hoc on?demand distance vector) wireless routing protocol are used to complete multi?hop data forwarding in the case of no other infrastructure, and achieve the network data transmission. The application result shows that the system can be arranged flexibly and has the characteristics of low cost, short transmission time delay and high transfer rate.

Keywords: microseismic monitoring; data transmission; Ad Hoc; AODV

现有的针对矿区工矿活动的微震监测系统具有网络节点多、节点分布范围广、数据量大的特点,其数据传输还主要采用有线的方式[1],但这种方式在矿区往往面临着布置不方便、成本高的问题。因此本文设计了一种远距离无线网络模块,并在此基础上设计了基于Ad Hoc的微震监测数据传输系统。

1 系统概述

Ad Hoc网络是一种多跳的、无中心的、自组织无线网络,整个网络没有固定的基础设施,每个节点都是可以移动的,并且能够以任意方式动态地与其他节点保持联系[2?3]。网络中各节点地位平等,拓扑可变,节点的移动、加入和退出并不会影响整个网络的正常工作。当节点需要与其通信覆盖范围之外的节点进行通信时,将借由中间节点进行多跳转发,各节点将兼任路由器的角色。因此,本文拟将Ad Hoc网络应用于数据传输系统,其系统模型如图1所示。

若节点布置区域离服务器较近,则各节点及服务器可通过工作在Ad Hoc模式的无线网卡组成Ad Hoc网络,网络内各节点通过中间节点进行数据传输;若服务器无法布置到节点附近,数据则可通过一个或者多个边沿节点的以太网卡将数据转送到外部网络,完成数据的传输。

此外,为了实现各节点的路由功能,本文采用计算量小,带宽资源占用少的AODV(Ad Hoc On?Demand Distance Vector)路由协议。其工作流程为:当源节点需要和目的节点进行通信而路由表中无相应表项时,源节点发送RREQ消息,进行路由请求,当RREQ逐跳广播至目的节点或者到有目的节点路由表项的节点,则沿最先到达的路径反向应答RREP消息至源节点,从而获取达到目的节点的路由,使用HELLO及RERR消息来维护链路[4]。

2 系统节点硬件设计

微震监测网络节点硬件主要由数据采集和数据传输两部分构成,数据传输系统主要涉及数据传输部分。本文中,节点数据传输部分由嵌入式平台和无线网络模块两部分构成。

节点的嵌入式平台主要为数据读取、收发提供接口,为操作系统提供硬件环境。其主要包括:ARM11核心板FET6410、数据及地址总线接口、USB接口和以太网接口,框图如图2所示。

其中数据及地址总线用作从FIFO中读取缓存的监测数据,USB接口做为无线网络模块接口,以太网部分采用以太网芯片DMP9000AEP和集成网络变压器的RJ45接头,用作整个Ad Hoc网络接入外部网络的出口。

在整个数据传输系统中,节点网络模块性能的优劣将在很大程度上决定了整个系统的稳定性。因此本文针对微震监测网络节点分布广、间距远、数据量大的特点,设计了以RT3070 WIFI芯片为核心的USB接口无线网络模块,针对WIFI传输距离有限的缺点,模块在输出输入回路上分别增加了功率放大器(PA)和低噪声放大器(LNA)来提高信号的有效覆盖距离,整体框图如图3所示。

在输出回路中选用了功率放大芯片RTC6691H,其最大输出功率可达30 dBm,其输入端内建立了匹配电路因此可以直接采用50 Ω微带线和RT3070射频输出脚RF_RF2G_OUT相连;此外,在PA输出端还设有一个Π型匹配网络电路进行阻抗匹配,以及低通滤器来滤除PA产生的高次谐波。整个输入回路由带通滤波器(BPF)、LNA以及巴伦(balun)组成。带通滤波器采用LFL152G45TC1A219,其最大插入损耗仅为0.45 dB,且尺寸小,便于安装;LNA采用RTC5602B,其提供13 dB的增益和0.8 dB的低噪声系数,在2.4 GHz时的一阶增益压缩点(IPldB)是3 dBm , 三阶交调截取点(IIP3)是10 dBm。再通过巴伦将接收到的单端信号转化成RT3070所需要的差分信号。当收发器处于发送状态时,收发器控制单刀双掷(SPDT)射频开关打向PA通路;当处于接收状态时,开关打向LNA通路。

在IEEE 802.11b 11 Mb/s Infrastructure模式下,模块整体发射功率可达30 dBm,接收灵敏度达-87 dBm,在户外实测传输距离可达400 m左右,能很好满足本微震监测网络的数据传输速率和节点布置间距的要求。

3 系统节点软件设计

本文在嵌入式平台上采用的操作系统是嵌入式Linux(版本为3.0.1)操作系统,因此所有的软件设计都是在嵌入式Linux下实现的。

无线网络模块驱动采用联发科提供的RT3070驱动程序有源码,修改其Makefile:

PLATFORM = SMDK

ifeq($(PLATFORM),SMDK)

LINUX_SRC = /home/6410/linux3.0.1/

CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm?linux?

针对工作在PC平台上的模块,修改Makefile:

PLATFORM = PC

执行make,编译成内核模块rt3070sta.ko后,将其复制到平台的/lib/modules/目录下,再修改配置文件RT2870STA.dat:

#NetworkType=Infra

NetworkType=Ad Hoc

将其复制到/etc/Wireless/RT2870STA/目录下,从而使模块工作在Ad Hoc模式。平台启动后,加载驱动模块和进行网络配置,各节点即可组成一个Ad Hoc网络。但此时网络中各节点仅能与相邻节点进行通信,要实现多跳通信和完成与服务器之间的数据传输,还必须实现分组转发与分组寻路功能。

分组转发是指操作系统根据路由表的信息,将数据分组送往相应的网络接口,在Linux内核中, 分组转发是基于内核路由表工作的,每次发送数据分组时,都向内核路由表查询,取得对应的下一跳邻居节点的地址和对应的网络接口[5]。分组寻路则通过与其他节点交换信息,根据特定路由协议算法来计算和维护路由表。

本文利用Linux内核的分组转发功能来实现分组转发,在用户空间采用AODV路由算法来实现分组寻路功能。分组寻路实现结构如图4所示。

本文采用AODV路由协议源码aodv?uu?0.9.6实现路由算法[6]。路由算法部分在编译后,以Daemon进程的形式运行在后台。在内核模块Kaodv.ko中,将hook函数kaodv_hook寄存在Netfilter的NF_INET_PRE_ROUTING,NF_INET_LOCAL_OUT和NF_INET_POST_ROUTING三个点上,当数据流经这三个点时,内核模块调用hook函数kaodv_hook。函数根据数据包目的IP查找路由表:若查找到,更新相应路由的最后使用时间,并根据情况将数据转送到上层协议、转发或者发送到下一节点;若未发现相应路由,或者相应链路断开,则通过Netlink向用户空间的AODV Daemon进程发送通知消息,并缓存数据。AODV Daemon根据通知发起路由发现或者路由修复:若发现路由或者修复成功,则通知更新路由表,将缓存的数据重新发送;若不成功,则丢弃缓存数据。

4 测试与结果

选择校内空旷的马路一侧,各节点以250~300 m的间距进行串联布置,4个节点和模拟服务器的PC的具体布置如图5所示。

在PC端加载无线网络模块的驱动:

insmod rt3070sta.ko

配置网络(测试网络名TX?TEST):

ifconfig ra0 inet 192.168.1.2 up

iwpriv ra0 set NetworkType=mode ad?hoc

iwconfig ra0 essid TX?TEST

insmod kaodv.ko #加载AODV内核模块

./aodvd #运行AODV进程

在各节点上,将如下配置信息写入开机启动文件

/etc/init.d/rcS:

insmod rt3070sta.ko

ifconfig ra0 inet 192.168.1.X up

iwpriv ra0 set NetworkType=mode ad?hoc

iwconfig ra0 essid TX?TEST

insmod kaodv.ko

./aodvd

其中,192.168.1.X对应4个节点的IP地址。各节点在上电后即可自动加入到TX?TEST网络,待网络稳定后利用ping先进行网络时延测试。在192.168.1.6节点端分别向另外3个节点和PC的IP地址ping 200个包,具体测试结果如表1所示。结果表明,4个节点及PC之间的Ad Hoc网络组网正常,各节点可相互通信,在可直接通信范围内,时延较小;而直接通信范围外,由于路由发现和转发节点增加,时延也会有一定程度的增加。

由4个节点分别向PC端发送一个4 MB大小的文件来进行传输速率测试,测量5次,结果如表2所示。

由结果可知,节点直接通信时,数据的传输速率在2 Mb/s左右,但数据经中间转发时,转发每增加1次,数据传输速率降低约[12]。造成此情况的主要原因是IEEE 802.11采用的CSMA/CA(载波侦听/冲突避免)机制控制传输媒质的访问。

5 结 论

由于采用无线模块及Ad Hoc技术,本传输系统相对传统的数据传输系统具有布置灵活方便、成本低的优点。而微震监测网络的时延一般要求控制在1 s以内即可,节点若以1 kHz频率进行三分量24位高精度数据采集,则要求节点至少具有100 Kb/s数据传输能力。测试结果表明,与目标节点相距4跳时,时延在40 ms左右,平均速率仍可达300 Kb/s以上,可见本设计在传输时延及数据传输速率方面能很好地满足微震监测网络的要求。

注:本文通讯作者为王泰麟。

参考文献

[1] 翟宏.微震监测系统中数据传输技术研究[D].阜新:辽宁工程技术大学,2009.

[2] 张希婕.Ad Hoc网络混合路由协议的研究[D].北京:北京邮电大学,2015.

[3] 徐年,沙宏武.Ad Hoc技术在地震监测系统中的应用[J].电脑学习,2010(1):5?6.

[4] 梁绍芳,武穆清.Linux平台下AODV的实现分析[EB/OL].[2011?06?11].http://www.docin.com/p?218932965.html.

[5] 谢世欢.Linux系统上AODV路由协议的实现[D].成都:电子科技大学,2004.

[6] 李家振.Ad Hoc网络AODV路由协议在S3C6410中的研究与应用[J].大众科技,2012,14(4):1?3.

[7] 张少博,王乃世,陈海峰,等.基于声压测量的阀门故障检测方法研究[J].火箭推进,2015(4):100?104.

节点 文章 数据传输