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网络具有组网简单、开销小、自组织能力强,非常适合于煤矿井下特殊的环境。因此煤矿井下无线传感器节点的应用将使得煤矿井下的安全监控更加的自动化、网络化和智能化,进一步有效地保障井下工作人员的安全。
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网络具有组网简单、开销小、自组织能力强,非常适合于煤矿井下特殊的环境。因此煤矿井下无线传感器节点的应用将使得煤矿井下的安全监控更加的自动化、网络化和智能化,进一步有效地保障井下工作人员的安全。
举报