摘要:针对目前煤矿井下有线监控系统存在的问题,在此设计了一种无线传感器节点,其特点是无线的、移动性强、可靠性高、低功耗、实时性强等,能够实时监测煤矿井下的环境参数,包括温度、湿度和瓦斯浓度,并将采集到的信息通过ZigBee无线传输方式进行发送。以CC24 30作为无线网络处理器,负责建立网络和传输数据,采用SHT11温湿度传感器和MJC4/3.0L瓦斯浓度传感器采集煤矿井下数据,用CC2591芯片作为无线发送前端,增强无线发送功率;软件架构采用Z-Stack协议栈,它是基于一个轮转查询式操作系统。最后通过实验测试表明,该无线传感器节点能实时准确地采集环境参数,有效地实现实时监测煤矿井下的环境情况。
0 引言
随着国家对煤矿安全生产工作的日益重视,煤矿现代化管理的需求,煤矿安全监测系统越来越体现出其重要性。目前,我国很多矿山生产现场还处于有线传感器接到一个终端进行监测和控制,不仅增加了成本而且不利于整体的检测和控制,有些地方由于环境因素无法铺设有线传感器和控制终端,因此容易出现监控盲点。所以大多的矿山生产现场需要一个无线的、移动性强、可靠性高、低功耗、实时性强的监控装置。因此,本文设计了一种基于ZigBee无线传感器节点,能实时监测煤矿井下的环境参数,主要监测井下的温度、湿度和瓦斯浓度,并通过ZigBee无线传输方式进行发送。
1 传感器节点的硬件设计
无线传感器节点的硬件总体框图如图1所示,该系统由数据采集模块、CC2430处理器模块和CC2591无线模块及其电源模块组成。
其中采集模块由温湿度传感器SHT11、瓦斯浓度传感器MJC4/3.0L和功率放大器组成。温湿度传感器SHT11将湿度传感器、A/D转换电路、信号放大电路、I2C总线接口全部集成于一个芯片,可以给出全校准相对湿度和温度值输出,带有工业标准的I2C总线数字输出接口,具有可靠的CRC数据传输校验功能,监测得到温湿度信息,并转化为数字信号,传输到CC2430 I/O口。MJC4/3.0L属于热效式瓦斯传感器,精度高,抗干扰能力强,适合用于煤矿井下特殊环境。MJC4/3.0L是经过桥路后输出模拟电压信号,并且为毫伏级的电压信号,因此必须经过放大电路放大后再进行A/D转换。为了提高系统的精度,放大器应该选择具有差动输入,且性能比较稳定的器件。这里选用ANALOG DEVICES公司生产的AD623放大芯片。本设计选用P0.0口作为A/D转换的接口。
CC2430处理器模块由CC2430处理器和相关外围电路组成。该模块主要包括3.3 V和1.8 V电源电路、晶振电路、复位电路。电源电路采用TP63001直流降压芯片,把锂电池的电源转换为3.3 V电压给系统供电。
晶振电路的本振时钟信号选择内部电路提供,外围电路由晶体振荡器和2个负载电容组成。系统由2个时钟信号,分别为32 MHz和32.768 kHz。32 MHz的晶振电路由1个32 MHz的石英谐振器XTAL1和2只电容构成,32.768 kHz的晶振电路由1个32.768 kHz的石英谐振器XTAL2和2个电容构成。
虽然CC2430内部集成无线收发器和8051内核,但容易受到干扰,而且通信距离有限。因此在CC2430器件与天线之间加一级接口电路即CC 2591无线模块,用来放大接收和发送信息的功率,确保数据传送的距离。
2 传感器节点的软件设计
2.1 Z-Stack协议栈
系统的软件结构采用TI的Z-Stack协议栈Z-Stack在硬件上支持CC2430芯片,并采用了操作系统的概念,包含了信息管理、任务同步、定时器管理、中断管理、任务管理等功能,无线模块上电后,Z-Stack执行对应的初始化操作,根据节点的角色组建/加入ZigBee网络,并进入OSAL事件轮询,根据消息响应转到对应的结构层执行具体操作,具体过程如图2所示。
2.2 协调器的设计
协调器主要负责无线网络的创建,数据的接收、处理以及发送控制指令。协调器最初发动并创建ZigBee无线网络。首先由协调器的API层通过NIME-NET-WORK-FORMATION.request原语启动新的网络;NWK层向MAC层请求进行信道能量扫描,具体通过原语MLME-SCAN.request进行,在获得信道干扰情况后MAC层通过MLME-SCAN.request原语返回;NWK层根据信道能量检测值的大小对信道进行排序,通过修改MLME-SCA N.request原语参数,再次对信道进行扫描,记录可利用的信道列表,扫描结果由MAC层通过MLME-SCAN.request原语返回;NMK层在选择一个合适的信道后,根据扫描结果选择PANID,并且将自己的短地址设为0x0000,并通过MLME-SET.Request原语完成MAC层中的相关设置,完成后通过MLME-SET.confirm原语返回;设置好相关网络参数后,NWK层向MAC层发送原语MLME-START.request正式启动运行ZigBee网络,MAC层通过MLME-START.confirm原语反馈网络的启动状况;NWK层将获得的网络启动状况向API层报告,通过原语NIME-NETWORK-FORMATION.con firm完成,最后完成网络的建立。
协调器节点在创建ZigBee无线网络后,开始收发数据及发送各种操作指令。首先协调器判断当前是否有新的节点加入自己建立的网络,如果有则主动分配一个短地址给新加入的节点;然后接收节点发送过来的数据信号,并通过串口传给上位机显示和处理。其程序流程如图3所示。
2.3 传感器的设计
传感器节点的主要任务是采集温湿度、瓦斯浓度等数据且发送给协调器,同时接收执行控制指令。首先传感器节点开启初始化,接着主动扫描有效的网络信道,寻址最佳的的父节点,NWK层向MAC层发送MLME-ASSOCIATION.request,由MAC层实现网络的物理连接,MAC层将返回MLME-ASSOCIATION.confirm原语,报告连接状态,若连接成功,NWK层将记录父节点分配的16位短地址,设置邻接表信息,并向API层发送确认原语NLME-JOIN.confirm。
设备在加入网络后,调用osal_start_timerEx()函数启动定时器,周期触发APP_SEND_PERIODIC_MSG_EVT事件的发生,相当于周期采集煤矿井下的环境参数,如果定时器没溢出,事件没有被触发,则节点进入休眠状态,以便节省能源。如果节点在休眠期间,外部中断或定时器中断发生,节点会恢复到工作状态,开始执行任务。其程序流程如图4所示。
2.4 节点的通信
Z-Statck协议栈中,都是通过调用ProcessEvent()函数来处理每一个应用层的任务事件,在ProcessEvent()函数中有一个定时器事件处理循环检测事件的发生。其中传感器节点(发送端)直接调用AF_DataRequest()函数来发送数据,而接收端(协调器)则是通过调用AF_INCOMING _MSG_CMD消息事件来判断是否收到传感器发送过来的数据。
传感器节点首先将测量的温湿度、瓦斯浓度等数据转化为ZigBee协议包,然后通过多跳方式将数据包传送给协调器。当协调器接收到传感器发送过来的数据包之后,解析出数据源的短地址,将温湿度、瓦斯浓度等信号值上传给上位机,上位机实时显示当前节点的采集到的数据,同时协调器按原路径返回确认信息给传感器节点。具体的数据通信流程如图5所示。
2.5 数据传输协议
本系统涉及数据在井下无线传感器网络中的传输,以及井下数据到地面监控系统的传输。需要传输的数据包括有通过ZigBee网络计算的环境参数监控数据(如温度、湿度、瓦斯浓度等)。
数据以字节为单位,根据不同节点承担的具体任务觉得实际数据包的内容和长度,用表1所示格式表示。
其中数据类型以及其对应数据长度如表2所定义。
Z-Stack协议栈采用分层的结构,以事件为驱动,符合操作系统的消息机制,ZigBee节点间的数据传输,首先需要确定接收数据所处的结构层以及所属的事件ID,OSAL才能将数据传送到正确的位置。
本系统ZigBee节点的嵌入式代码在Z-Stack的基础上进行编写,每一结构层的操作中看作一个任务,定义任务ID;每一层中分为不同的事件,定义事件ID,系统任务ID的定义以及应用层中的事件ID如表3和表4所示。
3 实验研究与分析
在实验中,将设计的节点组成测试网络,在实验室的不同位置放置了协调器节点和传感器节点,协调器通过串口与PC机相连,将接收到的数据在串口中显示出来。首先打开协调器的开关,几秒钟后,绿色LED灯点亮,表明协调器建立无线网络成功。然后打开传感器节点的开关,几秒钟后,绿色LED灯点亮,表明协调器节点加入网络成功,传感器节点加入网络后将自己的短地址和采集到的数据发送给协调器,协调器通过串口上传到上位机。图7是通过串口调试工具查看采集数据。
通过以上实验测试分析,得到无线传感器节点的性能指标如表5所示。
4 结语
本文设计了一种煤矿井下无线传感器节点,采用CC2430芯片为核心处理器,采集模块采用高集成度的温湿度传感器SHT11和瓦斯传感器MJC4/3.0L,能实时监测煤矿井下的环境参数。ZigBee网络具有组网简单、开销小、自组织能力强,非常适合于煤矿井下特殊的环境。因此煤矿井下无线传感器节点的应用将使得煤矿井下的安全监控更加的自动化、网络化和智能化,进一步有效地保障井下工作人员的安全。