APP下载

基于ZigBee的矿井监测系统中以太网网关设计

2015-06-23王文庆亢红波

西安邮电大学学报 2015年3期
关键词:网关以太网串口

王文庆, 唐 轩, 亢红波

(西安邮电大学 自动化学院, 陕西 西安 710121)

基于ZigBee的矿井监测系统中以太网网关设计

王文庆, 唐 轩, 亢红波

(西安邮电大学 自动化学院, 陕西 西安 710121)

针对矿井监测系统中将无线传感网络节点接入工业以太网的需求,提出一种ZigBee/以太网网关的设计方案。该方案使用CC2530作为传感节点、路由节点及协调器节点,组成树型网络拓扑结构;使用STM32F103做主控制器,ENC28J60做网络控制器,实现ZigBee数据和以太网数据的相互转换和传输。设计了网关硬件电路,ZigBee无线组网、数据帧转换以及驱动程序。测试结果表明,该网关能正常传输数据,性能可靠,实现了不同数据帧之间的转换。

ZigBee无线传感器网络;工业以太网;无线收发模块CC2530;树型拓扑

在矿业生产中,由于矿井环境比较恶劣,因而通过无线网络采集环境参数,经过网关传输到监控中心,以此来建设高效、安全的矿业生产监测系统。目前基于无线采集的矿井监测系统的网关研究中,文献[1-3]设计实现了ZigBee传感网络与有线网络结合的网关系统,该类系统具有体积小、功耗低、井下便于安装的特点,但是不能接入以太网从而可以通过WEB方式监测;文献[4]提出了ZigBee和GPRS相结合的网关设计方案,这类网关采用两种不同无线技术兼容的方式,灵活性好、易于布线安放,但其传输速率较低;文献[5]提出了ZigBee星型拓扑组网接入工业以太网的矿井环境监测与定位系统的设计方案,此类系统中网关具有低成本、结构简单以及较强抗干扰能力的特点,但是星型拓扑组网决定了监测范围不足;文献[6]设计了基于WIFI的无线网关矿井采集定位系统,此系统中无线网关应用灵活、成本低,但功耗高,组网能力差。

针对以上各类网关系统中存在的缺点,本文从某金属矿井环境对功耗、灵活性、抗干扰能力、监测范围等因素的实际需求出发,将ZigBee无线传感网络接入工业以太网,提出了一种ZigBee/以太网网关的设计与实现方案,采取树型拓扑多级采集方式组网,完成不同数据帧之间的转换与传输。

1 网关总体设计方案

1.1 网关设计原理

ZigBee/以太网网关中的协调节点、路由节点、传感节点组建树型拓扑结构,每一个路由节点下的传感节点采集到的数据通过本路由转发到协调器,采用点对点的数据发送方式。协调器作为数据汇集节点,将ZigBee数据转换为串行数据,并通过串行接口发送给主控制器进行数据处理,最后封装成以太网帧,通过以太网控制器以及网络接口发送到以太网。

1.2 网关总体结构

总体结构包括协调器节点、路由器节点、传感节点,都使用CC2530无线收发模块,STM32F103C8T6作为主控制器,ENC28J60作为以太网控制器。ZigBee/以太网网关结构,如图1所示。

图1 ZigBee/以太网网关结构

2 网关硬件设计

2.1 主要芯片和模块的选择

网关主控制器芯片采用32位微控制器STM32F103C8T6,支持通用同步/异步串行接收/发送器(Universal Synchronous/Asynchronous Receiver/Transmitter,简称USART)和串行外设接口(Serial Peripheral Interface,简称SPI)外设。相对于8位单片机具有更强大的数据处理能力,性价比和实用性更高。满足ZigBee/以太网网关的设计要求。

无线收发芯片采用CC2530,CC2530是作为ZigBee技术开发的一款片上系统芯片[7-8],使用高性能、低功耗的8051CPU内核,具有8KB RAM,具有2个支持多种串行通信协议的强大USART,实用性能较为成熟。

以太网控制器采用ENC28J60芯片,兼容IEEE802.3标准协议,能够移植开源的精简协议栈uIP协议[9-10]进行开发,采用SPI方式与主控制器通信。

2.2 ZigBee模块硬件设计

本设计采用3块CC2530模块,作为协调器节点、路由器节点、采集终端节点,协调器节点与STM32控制器通过USART接口相连,CC2530的P0_2和P0_3引脚分别连接STM32的PA9和PA10引脚。CC2530协调器节点外围电路,如图2所示。

图2 CC2530协调器节点外围电路图

2.3 以太网控制硬件电路

以太网控制器ENC28J60负责将STM32处理的串行数据帧转化为以太网数据帧,同样以太网数据帧也可以通过此接口转化为串行数据,该部分硬件电路与STM32控制器通过4线SPI实现通信,即CS引脚接SPI1_NSS,SCK引脚接SPI1_SCK,SO引脚接SPI1_MISO,SI引脚接SPI1_MOSI。ENC28J60网络控制器外围硬件电路,如图3所示。

图3 ENC28J60外围电路

3 网关软件设计

3.1 ZigBee无线组网设计

ZigBee无线组网包括协调节点、路由节点、终端节点初始化,协调节点建立网络并开启绑定功能,传感节点加入网络并发送绑定请求,路由节点加入网络发送路由请求事件。

组网程序流程如图4所示。

(a) 协调器程序流程图 (b) 路由节点程序流程图 (c) 传感节点程序流程图

图4 组网程序流程图

3.1.1 协调节点软件设计

协调器节点启动时首先进行任务初始化osalInitTasks(),具体工作包含任务ID号,设置绑定标志位,初始化端点描述符,设置进入事件,相关程序如下:

/*任务初始化*/

void SAPI_Init(byte task_id)

sapi_TaskID = task_id;

/*绑定标志位,默认不允许绑定*/

sapi_bindInProgress = 0xffff;

/*sapi层注册网络地址响应事件*/

ZDO_RegisterForZDOMsg(sapi_TaskID,NWK_addr_rsp);

/*进入事件*/

UINT16 SAPI_ProcessEvent(byte task_id, UINT16 events)

/*读取配置信息*/

zb_ReadConfiguration(ZCD_NV_STARTUP_OPTION,sizeof(uint8),&startOptions)

3.1.2 路由器节点软件设计

当路由节点加入网络时候,将给予设备对象层反馈信息,相关程序如下:

/* ZDO启动设备,即ZDO的节点描述符的配置,逻辑类型的定义,以及启动模式*/

ZDO_StartDevice((uint8)ZDO_Config_Node_Descriptor.LogicalType,devStartMode,DEFAULT_BEACON_ORDER,DEFAULT_SUPERFRAME_ORDER);

/* ZDO设置延迟*/

uint8 ZDOInitDevice(uint16 startDelay)

/*点对点发送数据*/

void SampleApp_SendPointToPointMessage()

3.1.3 终端节点软件设计

当终端节点加入网络后,发送绑定请求,接受并处理绑定响应,数据发送函数和处理函数分别为

AF_DataRequest((dstAddr),afFindEndPointDesc((srcEP)), (cID), (len), (buf), (transID), (options), (radius))

ZDApp_ProcessOSALMsg((osal_event_hdr_t*)msg_ptr)

3.2 数据帧格式处理软件设计

ZigBee数据转串行数据,协调器节点接收到的数据为ZigBee帧结构,经过处理转化为串行数据发送到主控制器,软件实现程序如下:

/*任务初始化、ID号、端口初始化*/

void SampleApp_Init(uint8 task_id)

SampleApp_TaskID = task_id;

SampleApp_NwkState = DEV_INIT;

SampleApp_TransID = 0

/*串口初始化*/

MT_UartInit();

/*登记任务号*/

MT_UartRegisterTaskID(task_id);

/*任务事件处理函数*/

uint16 SampleApp_ProcessEvent(uint8 task_id, uint16 events)

void SampleApp_MessageMSGCB(afIncoming MSGPacket_t *pkt)

switch (pkt->clusterId)

case SAMPLEAPP_PERIODIC_CLUSTERID:

/*复制内存的数据信息*/

osal_memcpy(&rftx,pkt->cmd.Data,sizeof(rftx));

/*向串口发数据*/

HalUARTWrite(0,,rftx.databuf,sizeof(rftx));

3.3 CC2530串口驱动设计

CC2530模块若要实现与STM32相互通信的功能,需要对CC2530编写串口驱动,包括驱动初始化、数据发送和接收等,采用串口和DMA结合的方式进行串口驱动设计,这样可以降低CPU的负担,增强系统整体运行速度。相关初始化程序如下:

/*串口初始化函数*/

void HalUARTInit(void)

/*打开串口,配置串口波特率,端口等*/

uint8 HalUARTOpen(uint8 port, halUARTCfg_t *config)

向串口发送数据时,数据存放在DMA接收缓冲区,系统调用HAL层中的HalUARTRead()函数读取DMA缓冲区的数据,包括缓冲区端口,数据长度等,调用HalUARTWrite()函数将数据写入DMA缓冲区。Hal_UART_RxBufLen()函数的作用为串口接收缓存,相关程序如下:

uint16 Hal_UART_RxBufLen(uint8 port)

{(void)port;

#if (HAL_UART_DMA == 1)

if (port == HAL_UART_PORT_0) return

HalUARTRxAvailDMA();

#endif}

3.4 串网数据转换软件设计

串行数据转以太网数据部分,开发环境为Keil MDK,程序设计包括ENC28J60初始化、数据收发模块,SPI串口驱动程序等。程序流程如图5所示。

图5 串网转化器程序流程图

ENC28J60驱动程序可实现数据收发,当它收到一个串行数据帧时,首先判断帧格式,将帧长度、地址等量写入寄存器,然后添加MAC控制字符构成以太网帧,最后发送数据包到以太网,具体发送数据函数为enc28j60PacketSend(),ENC28J60接受数据接收函数为enc28j60PacketReceive()。

4 系统测试

整个测试系统有ZigBee/以太网网关、ZigBee路由器节点、ZigBee终端节点、USB线、双绞线、PC机以及ZigBee/以太网上位机软件组成,网关实物,如图6所示。

根据PC机的网络IP,对ZigBee/以太网接口的网络IP地址、子网掩码以及端口号进行配置,经过配置后的网络IP为:192.168.1.123,目的端口号为502。ZigBee/以太网接口ping状态,如图7所示。

图6 网关与PC机连接实物图

打开多功能调试助手进行通信测试,选择16进制数据发送。ZigBee/以太网网关测试界面,如图8所示。

图7 ZigBee/以太网接口ping状态

图8 ZigBee/以太网网关测试界面

测试界面里的数据接收区内分别是数据帧头、长度、ZigBee节点地址、ID开始标志、ZigBee节点ID号、温度标志位、温度数据、校验值,信号强度值等13字节数据,第9、10、11字节表示温度的16进制值。

本系统采用定时采集,通过一段时间的观察,采集数据每隔5 s传输到监控中心,TCP监控器采集到数据,如图9所示。

图9 数据监控界面

5 结语

以STM32为主控制器,设计出的ZigBee/以太网网关能够实现ZigBee与以太网数据帧之间的传输以及数据帧的格式转换,ZigBee数据可以通过树型拓扑网络传输到网关节点,再通过以太网传输到PC机。系统测试显示,该网关在实验室环境下性能稳定,能够实现不同帧格式数据之间的通信。

[1] 薄英强,欧阳名三,李业亮,等.基于ZigBee的矿井水文信息监测系统[J].工矿自动化,2014(10):84-87.

[2] 齐立磊,王超.基于Zigbee的矿井无线传感器网络监测系统设计[J].煤矿机械,2013(9):252-254.

[3] 董文浩,郭森,刘希高,等.基于Zigbee的矿井移动机器人环境监测系统研究[J].煤矿机械,2012(9):84-86.

[4] 史丽娟,包亚萍,田峰.基于GPRS和ZigBee的矿井无线监测系统的设计[J].煤炭技术,2010(3):43-46.

[5] 滕志军,李国强,何建强.基于ZigBee的矿井环境监测与定位系统[J].自动化与仪表,2013(1):22-25.

[6] 黄伟力,李增翠.一种基于WiFi的煤矿通信采集定位系统[J].科技信息,2012(7):212-213.

[7] Reen-Cheng Wang, Ruay-Shiung Chang, Jei-Hsiang Yen, and Pu-I Lee. A Dynamic Topology Reformation Algorithm for Power Saving in ZigBee Sensor Networks[J]. International Journal of Distributed Sensor Networks, 2013(2):1-10.

[8] 郑茂全,侯媛彬.基于CC2530的井下人员信息采集模块设计[J].工矿自动化,2012(6):7-10.

[9] 李伟勤,李新献,施岱松.uIP协议在CC2430芯片上的移植研究[J].微计算机信息,2012,28(9):177-179.

[10]刘健,薛吉.工业以太网EtherNet/IP性能分析[J].低压电器,2010(16):17-19.

[责任编辑:汪湘]

Design of ethernet gateway for monitoring system in underground mine based on ZigBee

WANG Wenqing, TANG Xuan, KANG Hongbo

(School of Automation, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)

There are great demand for wireless sensor network nodes to be accessible to industrial Ethernet in mine monitoring system. A design of ZigBee/Ethernet gateway is proposed in this paper. In this design, CC2530 is used as sensor node, routing node and coordinator node which is made up of a tree network topology, and STM32F103 is used as master controller, ENC28J60 as network controller to implement mutual data conversion and transmission between ZigBee and Ethernet. Gateway hardware circuit, ZigBee networking, data frame conversion, and the drivers are also implemented in this design. Systematic test results show that the gateway could accomplish data transfer, provide a reliable performance normally, and achieve the conversion between different data frame.

ZigBee, industrial Ethernet, CC2530, tree topology

2015-02-07

王文庆(1964-),男,教授,从事智能信息处理研究。E-mail:wwq@xupt.edu.cn 唐轩(1988-),男,硕士研究生,研究方向为嵌入式系统设计与开发。E-mail:497556687@qq.com

10.13682/j.issn.2095-6533.2015.03.021

TP212

A

2095-6533(2015)03-0113-07

猜你喜欢

网关以太网串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
信号系统网关设备的优化
谈实时以太网EtherCAT技术在变电站自动化中的应用
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式
LTE Small Cell网关及虚拟网关技术研究
浅谈EPON与工业以太网在贵遵高速公路中的应用
应对气候变化需要打通“网关”