根据统计,在所有机械设备故障中,起重设备故障占比高达20 %,是特种设备中事故发生率最高的一种,因此,加强对塔机工况数据的实时采集,实现塔机安全监控,减少事故的发生有着重大的意义。目前,有多种方法可以实现对塔机的安全监控: 采用数据总线的方式进行数据传输,但布线复杂; 采用通用分组无线业务( general packet radio service, GPRS) 进行通信,但功耗和成本高; 利用单片机进行数据处理,当数据量很大时会出现延时。
本文在已有研究的基础上,结合 ARM—STM32 平台,设计了基于 ZigBee 无线传感器网络的监控方案,即由安装在塔机各个关键部位的传感器,由单片机进行数据处理,通过 ZigBee网络将数据发送至协调器端,在ARM 终端进行存储和显示。该系统具有实时监控、数据存储、人机界面交互等功能,能及时有效地监控塔机的工作情况。
系统总体设计
如图1,基于ZigBee 的塔机数据采集系统主要分三部 分:采集端、协调器和 ARM 监控端。采用的传感器类型为称重传感器、起升高度传感器、回转角度传感器以及风速传感器。数据经过采集模块处理后由 ZigBee 模块的射频发送器发送。协调器是各个终端节点的汇聚点,将各节点集中,由单片机进行数据处理,通过ZigBee 网络将数据发送至协调器端,在ARM 终端进行存储和显示。该系统具有实时监控、数据存储、人机界面交互等功能,能及时有效地监控塔机的工作情况。
硬件设计
数据采集模块设计 数据采集模块由数据采集单元、信号处理单元以及数据发送单元组成,其硬件结构如图2 所示。数据采集单元 主要为采集塔机工作参数的各类型传感器; 信号处理单元 主要将采集到的信号进行 A/D 转换,数据临时存储和任务调度;数据发送单元主要负责加入 ZigBee 网络,将数据缓冲、加密发送给协调器。
ZigBee模块设计 本文ZigBe节点采用的芯片为德州仪器( TI) 公司生产的 CC2530F256 芯片能够以非常低的成本建立强大的网络节点,完全满足本系统设计对于 ZigBee 的要求。
ARM 监控终端设计
本文选用意法半导体公司生产的 STM32F103 芯片 作为主控制器,能够很好地满足嵌入式领域对高性能、低功 耗、实时性的要求。系统中,数据通过 ZigBee 协调器进行接收,协调器通过 UART 串口与ARM 板进行连接,ARM上的LCD 显示屏实时显示采集的工况参数,同时将数据存储 到 SD卡中。监控终端的总体结构如图3 所示。
ZigBee与ARM 板连接时,协调器上的 CC2530 的P0 口配置为外设 I/O 模式, P0 口的 2 ~ 5 引脚分别映射为,并分别连接 ARM 板子上UART1 口的 TXD, RXD 引脚。UART 通信参数设定为比特率为115200 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) 的平均值来判断设备是否正受到电磁干扰。
多信道检测 通过研究对比 ZigBee 和 WiFi 子信道分布如图 5,可以 看到, 802.15.4 下的 ZigBee 设备可以使用的信道为11 ~26 共16 个信道,每个子信道的带宽为5 MHz,同时, WiFi 工作 在1.6, 113 个子信道,每个子信道带宽为22 MHz。可以看到,一个 WiFi 信道与4个 ZigBee 信道重叠,因此,工作在这12 个子信道内的 ZigBee 设备最容易受到WiFi干扰, 丢包率也最为严重。但ZigBee子信道上的 15,20,25 和 26 信道,却并没有 WiFi 子信道分布,即这4个ZigBee 子信道上的 WiFi 信号能量将会很弱,受到的干扰也较小。如果ZigBee在检测到干扰之后能够优先检测受WiFi 影响最小的15,20,25, 26 信道,如果这4 个信道不满足条件再扫描其他信道,不但可以快速找到合适的信道,同时降低了干扰的影响。
对于剩余的信道, 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 模型得出相应的结果。
实验结果分析 图7 所示为误码率的仿真结果,设定干扰时间开始于 0.2 s,结束于0.7 s, ZigBee 数据包的个数为2048,每个数据包的大小为1024 bit。通过图中的对比可以看出,在初始的0.2 s 内,由于没有受到干扰,系统均可以正常运行。0.2 s 出现干扰时,没有 MDIA 算法的设备误码率迅速上升到接近为100 %,表明此时系统已经无法正常工作。而采用改进算法 MDIA 的设备,在受到干扰的 0.1 s 内,误码率会有上升,达到门限值之后,设备检测到干扰并开始进行信道选择,之后从0.3 s 开始,误码率再次降到正常水平,表明此时 设备已经找到合适的信道并实现转换,继续正常工作。
图8 所示为有无 MDIA 算法的设备在受到干扰时数据吞吐量的对比结果,干扰时间设为 0. 2 ~0. 7 s。可以看出, 在WiFi干扰下,没有 MDIA 算法的的设备吞吐量几乎为 0 kbps,此时设备已经不能正常工作。而采用 MDIA 算法的 设备先进行干扰的检测和信道的转换,因而在一开始吞吐 量也几乎为0 kbps,在跳转到新的信道之后,设备吞吐量回 归正常值。
本文根据塔机安全监控的需要,设计了一种基于 ZigBee的数据采集系统。针对 ZigBee 设备在工作中面临的 WiFi 干扰的问题,本文研究了原有的 CSMA/CA 算法,并在 此基础上,提出了 MDIA 算法。该系统具有组网方便、抗干 扰能力强、成本低、功耗小的特点,具有重要的实际意义和 一定的运用推广价值。