1 引言
随着人们对煤矿生产安全工作的日益重视,煤矿企业对应用于煤矿生产环境中的工业技术也提出了更高的要求,目前对瓦斯气体浓度、温湿度等现场物理环境参数的信号传送很多是采用有线传输方式,即采用光缆、电力线缆或信号线缆等。这种传统的有线布设方式存在着本质的缺陷:布线繁琐、线路依赖性强、安装布设维护成本较大等。矿井一旦出现事故,特别是当发生爆炸事件时,传感器设备及线缆往往会受到致命的破坏,不能为搜救工作及事态检测提供信息。无线传感器网络是由部署在监测区域内大量的廉价微型传感器组成,通过无线通信方式形成的一个多跳的自组织的网络系统,能够协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者。无线传感器网络的这些特点使其适合于煤矿生产过程中对矿井环境的监测。
2 系统结构
应用于矿井环境监测的无线传感器网络基本结构由传感器节点和中心节点组成,不同的监测区域均有中心节点,每个中心节点负责处理本区域内的传感器节点传送过来的无线数据,而基站模块负责接收来自各个监测区域内的中心节点发送出的无线信号,基站模块最终可接入互联网,使得无线传感器网络的信息能够被远程终端访问到,系统结构如图1所示。
图1 无线传感器网络系统结构
在煤矿生产过程中,矿井中的物理环境可以由瓦斯传感器、温湿度传感器、粉尘传感器等进行感知[3],这些传感器的输出信号由msp430f1611单片机(文中采用telosb硬件平台)接收,经过cpu的处理后,利用rf收发模块cc2420可将输出信息进行无线发送,传感器节点的电源由电池提供。传感器网络节点的硬件结构如图2所示。
传感器网络节点的硬件结构
3 传感器网络的拓扑结构
拓扑结构的设计具有很强的针对性,设计何种拓扑结构是根据所需的应用场景而提出的。矿井开拓即从地面向地下开掘一系列井巷,通至采区,随着开采的进行,井下巷道的形状和位置不断变化。依据传感器节点之间的位置,将网络中的所有节点划分为一个个的簇单元,每个簇单元采用星型拓扑结构并且有一个簇头节点(中心节点)。因此,在整个无线传感器网络中就存在着两种类型的传感器节点:普通的传感器节点和簇首节点(中心节点)。我们将矿井监测系统分成两个子系统,第一个子系统由低传输范围的和能量受限的簇节点组成,而另一个子系统由传输范围较远并且具有更多能量供给的簇首节点(中心节点)组成。第一个子系统形成了无线传感器网络的底层网络,而第二个子系统则形成了该传感器网络的上层网络[4]。整个传感器网络的拓扑结构如图3所示。
拓扑结构逻辑图
4 软件设计
软件系统的主要功能包括传感器数据采集与处理、无线收发和节点定位等。传感器数据采集与处理模块主要设置瓦斯信号的采集参数并控制采集、读取温湿度传感器的数据等;无线收发模块控制对命令或数据的接收和发送;节点定位模块对节点进行实时定位。节点系统要支持传感器网络,需要考虑网络层的支持,方便系统扩展,因此系统软件的实现是在嵌入式操作系统上进行的,无线传感器网络中节点使用的操作系统为tinyos。tinyos是由加州大学伯克利(berkeley)分校开发的开放源代码操作系统,是一种专门为嵌入式无线传感器网络设计的操作系统,其特点是体积小、结构高度模块化、基于组件的架构方式、低功耗等,这使得它能够突破传感器节点各种苛刻的限制,可快速实现各种应用,非常适合wsn的特点和应用需求。
4.1 现场传感器数据获取
通过各种传感器,如瓦斯传感器、温湿度传感器可以感知矿井现场的物理环境,分布在现场的节点需要获取传感器的数据进行处理并无线发送出去。下面以笔者实现的test程序为例,分析获取传感器数据的方法[5]。该程序实现了传感器节点无线接收其他节点的命令,根据该命令控制本节点是否获取传感器数据并无线广播出去。其中,确定adc通道的代码为:
enum
{ tos_adc_gio0_port = unique("adcport"),
tosh_actual_adc_gio0_port = associate_adc_channel(
input_channel_a0,
reference_vrefplus_avss,
refvolt_level_1_5 ), };
根据程序的功能确定所需的组件为:main,testm,timerc,genericcomm,ledsc,adcc。在本文中,genericcomm组件的功能是接收上级节点发送来的命令,决定是否获取传感器的数据并将获得的数据无线发送出去;timerc组件的功能是触发节点adc采集传感器数据且可设定采集频率;adcc组件实现对模/数转换器的控制;ledsc组件的作用是控制传感器节点上led灯的显示。该程序的程序结构组件图如图4所示。
test的程序结构组件图
4.2 节点定位研究
(1)telosb节点的rssi值:telosb节点的无线通信模块采用的是cc2420无线收发芯片,该芯片内置了一个8bit 的 rssi寄存器,通过采样8个符号周期的rss获得rssi的均值。在tinyos2.x下cc2420activemessagec组件提供的cc2420packet接口中定义的getrssi()命令能够实现获取接收信号的rssi。根据cc2420的规格说明书[6](datasheet)中的描述,cc2420所提供的rssi的存储器是一个带正负号的寄存器,实际上是将一个字节分为正负两部分,从寄存器读出的值还需要加上一个偏移量,对应于每次获得的原始rssi其转换方法如下:
if (rssi_raw < 128)//正值
{ //错误取值,不处理 }
else if (rssi_raw > 127)//负值
{ rssi = -1 *((rssi_raw -1)^(0xff))-45;// rssi 转换公式,单位 dbm }
上述转换方法中rssi_raw为通过getrssi()命令获得的寄存器中的原始rssi值,经过转换公式转换后的实际rssi值为rssi,单位为dbm。由于telosb节点的最大发射功率0dbm,因此经过传输损耗的接收信号的rssi值不可能为正,即当rssi_raw为正值时是没有意义的[7]。
(2)基于rssi值的节点定位:根据3.2.1中的方法可获得rssi值,然后采用基于接收信号强度指示(rssi)定位算法[2]实现节点的精确定位,具体方法为:已知发射节点的发射信号强度, 接收节点根据收到信号的强度计算出信号的传播损耗,然后根据信号传播模型公式(1)将传输损耗转化为距离,再利用三边测量法计算出未知节点的位置。在实际定位中,要保证未知节点处于三个以上发射信号强度和位置坐标已知的参考节点的通信范围内,未知节点根据接收信号强度计算出信号的传播损耗,进而计算出节点位置。
其中,p(d)为接收信号强度(dbm);p(d0)为发送信号强度(dbm);n为路径长度和传输损耗之间的比例因子;d0表示参考节点和基站间的距离;d为未知节点和基站间的距离;γ为修正因子,根据经验进行修正。
5 结束语
本文介绍了无线传感器网络在矿井环境监测中的系统结构、网络节点硬件结构和应用于矿井监测的网络拓扑结构;在软件设计方面,分析了基于telosb硬件平台的传感器信号获取方法并给出了具体实现,最后对基于rssi值的节点定位技术进行了研究。本文提出的无线传感器网络矿井监测系统对于提高煤矿的安全生产能力和管理水平具有较高的实用价值。