《武汉工程大学学报》  2015年01期 30-34   出版日期:2015-01-31   ISSN:1674-2869   CN:42-1779/TQ
一种无线温度监控系统的设计与实现


0 引 言  温度监控系统广泛应用于现代工业、农业及日常生活中,现有大部分依靠有线进行监控,存在需要大量布线、安装位置固定、可扩展性较差、检修复杂等缺陷. 随着无线通信技术的日趋成熟,物联网和无线传输技术在工业控制中成为业界研究的热点,采用无线传输技术可以克服有线温度监控系统的上述缺点. ZigBee采用带时隙或不带时隙的载波检测多路访问与冲突避免的数据传输方法,并通过确认和数据检测等措施,保证数据的可靠传输,且具有组网灵活、成本低、功耗低、抗干扰能力强等优势[1] ,因而在众多无线传输方式中脱颖而出. 本文以STM32F103ZE、CC2530无线射频芯片为核心,在Z-STACK协议栈基础上建立协调器、终端无线收发模块来构建星型局域网,设计了基于ZigBee的无线温度监控系统.   1 系统总体设计  系统总体结构框架如图1所示,由上位机STM32F103ZE、ZigBee协调器、ZigBee终端节点三大模块构成. 由于系统节点数量较少,ZigBee协调器与ZigBee终端节点构建星型网络拓扑结构. ZigBee终端节点通过热电偶采集温度信息,通过无线局域网传输到ZigBee协调器,接收来自协调器的温度指令信息、并利用模糊比例积分微分(proportional?鄄integral?鄄derivative,以下简称PID)算法控制温度. ZigBee协调器接收到终端节点温度信息后上传到上位机STM32F103ZE. STM32F103ZE的主要功能是接收来自ZigBee协调器的温度信息、并显示在液晶屏幕上,通过键盘设置各个节点温度控制指令值并发送给协调器,同时通过串口实现与监控终端个人计算机(personal computer,PC)的通信.  图1 系统结构框架图  Fig.1 Diagram of system structure  2 系统硬件设计  2.1 无线局域网  系统采用星型拓扑网络结构,网络结构中主要包括ZigBee协调器,ZigBee终端节点.   2.1.1 ZigBee协调器  ZigBee协调器由德州仪器 (Texas Instruments,以下简称简称TI) 公司CC2530和射频专用功率放大器CC2591组成的全功能模块(full?鄄functional device,以下简称FFD)构成. CC2530是一个结合了2.4 GHz IEEE 802.15.4、ZigBee 和RF4CE 的高性能片上系统,集成了领先的RF收发器、业界标准的增强型8051CPU、系统内可编程闪存、8 kB RAM 等资源. CC2591是TI公司生产的高性价比和高性能射频专用功率放大器,非常适合低电压、低功耗的2.4 GHz无线应用[2]. 另外,在全功能模块上安装天线装置使得无线传输距离更远.   2.1.2 ZigBee终端节点  ZigBee终端节点由ZigBee无线射频全功能模块FFD、测温电路和调压加热电路构成. 其中,测温电路采用K型热电偶作为温度传感器,可以直接测量0 ℃~1 300 ℃范围的液体蒸汽和气体介质以及固体的表面温度. 加热装置采用脉冲宽度调制(Pulse Width Modulation,以下简称PWM)交流斩波调压电路加热电阻丝.   K型热电偶测温产生的热电动势不仅与热端温度有关,还与冷端温度相关. 本系统采用灵敏度较高、线性较好的IN4148作为热敏元件进行冷端补偿、以减少CPU开销. 热电偶测温电路原理图如图2所示,热电偶测量温度信号经过冷端补偿及信号调理后输入到CC2530的12位A/D模拟量输入通道.  图2 热电偶电路  Fig.2 Thermocouple circuit  加热电路采用PWM控制N沟道P?鄄MOSFET交流斩波调压方式,以改变加热电阻丝两端的电压来进行温度控制. 其原理图如图3所示,CC2530产生PWM(Pulse Width Modulation)波形,通过驱动电路驱动P?鄄MOSFET进行交流斩波调压. 该电路控制简单,产生的高频高次谐波很容易利用很小的电感电容滤掉,可以提高加热电路中的电能质量、给温度控制精度提供基本保障[3-5].  图3 加热电路   Fig.3 Heating circuit  2.2 STM32F103ZE上位机模块  上位机模块由STM32F103ZE最小系统和TFTLCD液晶显示模块及输入按键构成. STM32F103ZE是意法半导体公司生产的基于Cortex?鄄M3的32位微处理器,最高工作频率72 MHz,片内Flash容量512 kByte,片内SRAM容量64 kByte;具有高性能、低功耗、丰富的片内资源等特点. STM32提供了睡眠、待机、停机三种低功耗省电模式和灵活的时钟控制模式,用户可合理优化系统. STM32F103ZE采用自带可变静态存储控制器 (Flexible Static Memory Controller,FSMC)接口与TFT3.2寸(320*240)液晶模块相连,更加方便地控制液晶模块[6]. 键盘部分采用4个按键完成,用KEY1设置温度、KEY 2加温度值、KEY 3减温度值、KEY 4移动设置数据位.   3 系统软件设计  系统软件包括ZigBee协调器、ZigBee终端节点程序,STM32F103ZE上位机程序三部分. 其中ZigBee协调器节点程序的功能是组建局域网、管理终端节点,实现与STM32F103ZE的通信;ZigBee终端节点程序的功能是采集温度传感器信号及无线收发温度信息,利用模糊PID算法控制加热装置;STM32F103ZE上位机程序实现与ZigBee协调器的通信,发送终端节点温度控制参数,收集、处理及显示各个节点温度信息,提供友好的人机界面.   3.1 ZigBee协调器节点程序  ZigBee协调器是本系统的信息中枢,软件总体设计建立在Z-STACK工作流程基础上. ZigBee节点程序的核心Z-STACK协议栈在IEEE 802.15.4的物理(Physical,PHY)层和媒体访问控制(Media Access Control,MAC)层基础上,设计了网络(Network,NWK)层和应用(Application,以下简称APL)层. 在APL层内提供应用支持子 (Application support sub-layer,APS) 层和设备对象(ZigBee Device Object,ZDO)以及应用框架(Application Framework,AF),用户可以在应用框架中加入自定义应用对象[7]. Z-STACK内部各层之间采用“原语”进行通讯. Chipcon 公司设计的 Z-Stack 协议栈中提供了一个名为操作系统抽象层(Operating System Abstraction Layer,以下简称OSAL)的协议栈调度程序. 在协议栈中发生了任何事件,OSAL都可以通过调用相应层的任务,即事件处理函数来处理.   协调器节点程序在应用层定义两个事件来完成任务:事件1,协调器无线接收终端节点测量温度,并将温度发送给STM32F103ZE系统;事件2是通过串口接收上位机STM32103ZE的设置温度信息,并将设置温度无线发射到各个终端节点. 其流程图如图4所示,系统初始化包括初始化各层任务,在APL层建立用户自定义任务和事件处理函数,然后进入OSAL操作系统运行,不断查询任务优先级,当有事件发生时,比较事件对应的任务优先级,进入高优先级任务层的事件处理函数,事件属于应用层任务时,进入应用层任务查询事件号1、2,进入对应事件的处理函数.  图4 协调器节点程序流程  Fig.4 Coordinator node program flow  3.2 ZigBee终端节点程序  ZigBee终端节点是系统中温度采集和控制的末梢. 软件总体设计建立在Z-STACK工作流程基础上,本程序定义两个事件来完成任务:事件1是终端节点读取K型热电偶测量数据,将温度数据无线发射到协调器;事件2是终端节点无线接收控制温度数据并采用模糊PID算法控制加热装置.  因温度的纯滞后性,采用常规PID控制效果不够理想. 所以采用模糊PID算法控制温度,其原理框图如图5所示. 图5中,R为温度指令信号,Y为温度反馈信号. 控制算法思路是利用偏差e和偏差变化率ec与PID三个参数(kp、ki、kd)之间的模糊关系,在控制温度过程中不断计算e和ec,根据建立的模糊控制规则进行模糊推理,自整定PID参数值,再进行PID控制[8-9].  图5 模糊PID控制系统原理框图   Fig.5 Diagram of Fuzzy PID control system  PID调节的差分方程为   yk=yk-1+Δy=yk-1+kp(ek-ek-1)-kiekΔT+   kd■   其中,ΔT为A/D采样温度周期. 模糊PID控制既实现在线自整定kp、ki、kd参数,也延续了常规PID控制原理简单、使用方便、鲁棒性较强的特点. 模糊PID算法的程序流程如图6所示.  图6 模糊PID算法程序流程   Fig.6 Fuzzy PID algorithm flowchart  3.3 STM32F103ZE上位机程序  STM32F103ZE上位机程序由串口通讯模块,TFTLCD液晶屏驱动、显示模块,按键设置模块三部分组成. 串口通讯模块负责收发温度信息,LCD液晶程序负责显示温度信息,按键程序负责设置终端温度[10],程序流程图如图7所示.  图7 STM32F103ZE程序流程  Fig.7 STM32F103ZE program flowchart  温度设置采用按键中断程序完成,液晶显示程序设计为数值显示和模拟温度计光柱等比例显示,使得监控显示值更加清晰直观.   4 系统测试  系统ZigBee节点所用的开发环境是IAR7.60,移植了TI公司的Z-STACK(版本CC2530-2.3.0-1.40)协议栈. STM32F103ZE使用Keil uVision4开发. 系统接入三个ZigBee终端节点,以水温为实验对象,实验数据如表1所示.  表1 实验数据  Table 1 Experimental data  运行稳定后STM32F103ZE液晶显示如图8所示,实验结果显示该系统实现了无线温度监控. 由于温度是一个难控对象,系统模糊PID控制加热温度时存在一定的偏差,热电偶测量较低温度时精度相对较低导致实验数据有一定误差. 在实际生产、生活中,可以根据实际情况选择元器件和控制策略,多进行现场调试来满足监控精度.  图8 液晶显示界面  Fig.8 LCD interface  5 结 语  上述基于ZigBee无线传输技术和STM32F103ZE设计的温度监控系统具备系统稳定、无线传输数据可靠、设备组网简单、可扩展性强、成本低等特点. 系统采用的模糊PID控制PWM交流斩波改变加热电压控制温度,满足了一般生产、生活的精度要求,但交流斩波调压效率及温度控制精度仍有较大的改善空间,这是以后深入研究的方向. 随着无线技术在工业应用领域的发展,这种基于ZigBee无线技术的温度监控技术将会有更多的应用价值和广阔的前景.   致 谢  武汉工程大学研究生教育创新基金提供了资金资助,赵振华教授给予的指导,在此表示衷心的感谢!