赵翊杰, 董增寿, 杨 勇
(太原科技大学 智能网新技术研究所,山西 太原 030024)
据不完全统计,在所有机械设备故障中,起重机械故障占比高达20 %[1],是特种设备中事故发生率最高的一种,因此,加强对塔机工况数据的实时采集,对实现安全监控,减少事故的发生有着重大的意义。目前,有多种方法可以实现对塔机的安全监控:采用数据总线的方式进行数据传输[2],但布线复杂;采用通用分组无线业务(general packet radio service,GPRS)进行通信[3],但功耗和成本高;利用单片机进行数据处理[4],当数据量很大时会出现延时。
本文在已有研究的基础上,结合ARM—STM32平台,设计了基于ZigBee无线传感器网络的监控方案,即由安装在塔机各个关键部位的传感器对塔机的工况数据进行实时的采集,由单片机进行数据处理,通过ZigBee网络将数据发送至协调器端,在ARM终端进行存储和显示。该系统具有实时监控、数据存储、人机界面交互等功能,能及时有效地监控塔机的工作情况。
如图1,基于ZigBee的塔机数据采集系统主要分三部分:采集端、协调器和ARM监控端。采用的传感器类型为称重传感器、起升高度传感器、回转角度传感器以及风速传感器。数据经过采集模块处理后由ZigBee模块的射频发送器发送。协调器是各个终端节点的汇聚点[5],将各节点采集到的信息通过UART口传送给ARM端,ARM监控端将数据的存储以及通过界面将各工况参数显示出来。
图1 数据采集系统整体结构
数据采集模块由数据采集单元、信号处理单元以及数据发送单元组成,其硬件结构如图2所示。数据采集单元主要为采集塔机工作参数的各类型传感器;信号处理单元主要将采集到的信号进行A/D转换,数据临时存储和任务调度[6];数据发送单元主要负责加入ZigBee网络,将数据缓冲、加密发送给协调器。
图2 数据采集终端结构
本文ZigBee[7]节点采用的芯片为德州仪器(TI)公司生产的CC2530F256芯片能够以非常低的成本建立强大的网络节点[8],完全满足本系统设计对于ZigBee的要求。
本文选用意法半导体公司生产的STM32F103芯片[9]作为主控制器,能够很好地满足嵌入式领域对高性能、低功耗、实时性的要求。系统中,数据通过ZigBee协调器进行接收,协调器通过UART串口与ARM板进行连接,ARM上的LCD显示屏实时显示采集的工况参数,同时将数据存储到SD卡中。监控终端的总体结构如图3所示。
图3 终端总体结构
ZigBee与ARM板连接时,协调器上的CC2530的P0口配置为外设I/O模式,P0口的2~5引脚分别映射为UART模式下的RX,TX脚,并分别连接ARM板子上UART1口的TXD,RXD引脚。UART 通信参数设定[10]为比特率为115 200 bit/s,数据位为8 bit,停止位为1 bit, 校验位为无,硬件流控制为无。
ZigBee工作时会受到工作在该频段的其他设备的干扰,其中,WiFi是最主要的干扰源。因此,在ZigBee工作过程中主要考虑如何避免或者减少WiFi的干扰。本文提出了一种基于多信道检测干扰规避(multi-channel detection interference avoidance,MDIA)算法,该算法首先通过误码率(bit error rate,BER)和丢包率(packet loss rate,PLR)来判断ZigBee网络受到干扰的程度,设定门限值,当超过这个值时,系统会进行多信道的检测,直到找到合适的信道为止。
针对ZigBee设备在工作中面临的干扰问题,本文研究了原有的载波监听多路访问/冲突规避(carrier sense multiple access/contention avoidance,CSMA/CA)机制,并在此基础上提出MDIA算法。图4为MDIA算法流程。系统首先会判断关键节点的BER值,如果值过高导致节点无法正常通信,此时设备会检查数据包的丢包率,然后根据结果决定是否开启链路质量检测,若链路质量不佳,则对信道进行进一步扫描,根据接收信号强度指示(received signal strength indication,RSSI)的平均值来判断设备是否正受到电磁干扰。
图4 干扰检测流程
通过研究对比ZigBee和WiFi子信道分布如图5,可以看到,802.15.4下的ZigBee设备可以使用的信道为11~26共16个信道,每个子信道的带宽为5 MHz,同时,WiFi工作在1,6,113个子信道,每个子信道带宽为22 MHz。可以看到,一个WiFi信道与4个ZigBee信道重叠[11],因此,工作在这12个子信道内的ZigBee设备最容易受到WiFi干扰,丢包率也最为严重。但ZigBee子信道上的15,20,25和26信道,却并没有WiFi子信道分布,即这4个ZigBee子信道上的WiFi信号能量将会很弱,受到的干扰也较小[12]。如果ZigBee在检测到干扰之后能够优先检测受WiFi影响最小的15,20,25,26信道,如果这4个信道不满足条件再扫描其他信道,不但可以快速找到合适的信道,同时降低了干扰的影响。
图5 WiFi与ZigBee子信道分布
对于剩余的信道,MDIA算法采用的是“左右轮询”的方式,ZigBee的信道为11~26,除去第一步中优先检测的15,20,25,264个信道,然后将信道11,26相连接,使得剩余的12个信道形成循环。算法会首先检测当前信道左侧的信道,若PLR的值低于门限值,则说明该信道可用,此时系统跳转到该信道继续工作。反之,算法会检测当前信道右侧的信道。算法检测的原则为由近及远,成对进行。系统的跳频扫描在这个环上进行。假设当前系统使用的是信道13,当发生电磁干扰时,算法会首先扫描信道12,然后扫描信道14,如果信道都不可用,系统会紧接着扫描11,16信道(信道15在第一步中被优先扫描),假设此时还没有合适的信道,系统就会检测信道11左侧的信道24,然后右侧为信道17,以此类推,最后整个信道的检测顺序为:12,14;11,16;24,17;23,18;22,19;21。和传统依次递增检测的方式相比,“左右轮询”法能够让系统更快找到WiFi信号干扰较弱的频段,从而可以快速转换信道,提升系统性能。
在前文分析的基础上,本文构建了系统模型,如图6所示,采用MATLAB/Simulink搭建,模拟了1路ZigBee信号,默认信道为13,模拟了2路WiFi干扰信号,占用信道1和信道6,两者信源都是由伯努利(Bernouli)信号发生器随机产生。本文中算法主要通过MATLAB代码实现,并通过代码控制Simulink模型得出相应的结果。
图6 系统模型
图7所示为误码率的仿真结果,设定干扰时间开始于0.2 s,结束于0.7 s,ZigBee数据包的个数为2 048,每个数据包的大小为1 024 bit。通过图中的对比可以看出,在初始的0.2 s内,由于没有受到干扰,系统均可以正常运行。0.2 s出现干扰时,没有MDIA算法的设备误码率迅速上升到接近为100 %,表明此时系统已经无法正常工作。而采用改进算法MDIA的设备,在受到干扰的0.1 s内,误码率会有上升,达到门限值之后,设备检测到干扰并开始进行信道选择,之后从0.3 s开始,误码率再次降到正常水平,表明此时设备已经找到合适的信道并实现转换,继续正常工作。
图7 PLR分析
图8所示为有无MDIA算法的设备在受到干扰时数据吞吐量的对比结果,干扰时间设为0.2~0.7 s。可以看出,在WiFi干扰下,没有MDIA算法的的设备吞吐量几乎为0 kbps,此时设备已经不能正常工作。而采用MDIA算法的设备先进行干扰的检测和信道的转换,因而在一开始吞吐量也几乎为0 kbps,在跳转到新的信道之后,设备吞吐量回归正常值。
图8 吞吐量分析
本文根据塔机安全监控的需要,设计了一种基于ZigBee的数据采集系统。针对ZigBee设备在工作中面临的WiFi干扰的问题,本文研究了原有的CSMA/CA算法,并在此基础上,提出了MDIA算法。该系统具有组网方便、抗干扰能力强、成本低、功耗小的特点,具有重要的实际意义和一定的运用推广价值。