基于CPLD芯片的温湿度控制系统设计
2019-09-25
(台州学院 电子与信息工程学院,浙江 台州 317000)
0 引言
畜牧业是我国的重要产业,研究良好的饲料配方对于畜牧业市场发展、保护农民利益、确保国家经济增长有着重要意义,因此国家各部门一直十分重视饲料配方的存储和管理工作[1]。饲料配方生产对环境有着很高的要求,使用饲料配方生产饲料时,如果周围环境不佳,很有可能出现腐烂、发霉和虫害等问题,使饲料的质量出现问题,只有在适宜的温度和湿度下,才能生产出最佳的饲料,创造出更大的利益。为了确保饲料生产工作的顺利运行,要对饲料配方所在环境温度和湿度进行监测控制[2]。
目前我国研究出了较多的温湿度控制系统,但是采用的线路多为CAN总线,这种有线连接方式,布线十分繁琐复杂,无论是维修还是通讯都需要花费大量人力、物力,布线之后,设备很难移动,一旦其中一个节点出现问题,整个控制系统都无法正常运行[3]。传统控制系统缺少测量装置,因此在测量温度和湿度时只能采用人工测量,测量误差大,效率差,成本高。鉴于此,设计出一套高效稳定的温湿度控制系统对于饲料配方产业的发展有着尤为重要的意义。
近年来,电子科技技术和计算机技术不断发展,CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件被人们提出,这一器件是PAL和GAL的扩展设备,无论是规模还是结构都要更加庞大、复杂,性能更好[4]。综上,本文基于CPLD芯片设计了一种新的温湿度控制系统,针对传统系统的不足,分别对硬件和软件进行了强化设计,最后通过实验测试探讨了本文设计的基于CPLD的温、湿度控制系统的可行性。
1 基于CPLD芯片的温湿度控制系统整体结构设计
本文基于CPLD芯片设计的控制系统由多个节点组成,分别为温度传感节点、湿度传感节点、采集节点、控制节点。利用这些节点连接上位机通信网关和PC通信网关,根据实际需求,将各种节点放置在需要监控的区域,通过无线传感网络调控温度和湿度。
1.1 传感器节点设计
本文选用瑞士Sensirion公司推出的新型传感器SH11传感器,该传感器为数字型传感器,能够同时调节控制温度和湿度,通过数字的方式输出信号,测量精度可以通过编程程序改变,支持CRC传输校验,传感器采集节点实物图如图1所示。
图1 传感器节点示意图
观察图1可知,传感器内部拥有串口通信接口,该接口的加入使用户在进行软件调节时就可以查到传感器采集的数据。传感器中的按键用于用户注册网络,利用LED灯来判断注册是否成功,如果LED灯显示颜色为红色,则证明注册失败;如果LED灯显示颜色为绿色,则表示注册成功。为了降低来自PCB的热量传导,使PCB天线更好地工作,传感器各内部元件都会留有缝隙[5]。
CLPD芯片可以对已经得到的温度信号和湿度信号进行校对,确保信号的准确性[6]。CLPD芯片在得到饲料配方所处环境温度和湿度信息之后,会将这些信息转换成微弱的模拟电信号,通过运算放大器将这些电信号放大,再利用14 bit的转换器将模拟电信号转换成数字电信号,在串行接口处输出数字信号,通过微处理器读取采集的温度信号数据和湿度信号数据。虽然微处理器得到的数据以数字量的形式输出,但并非最终的真实数据,需要通过线性计算得到最终值。本文选用的SH11传感器具有很好的线性,能够在短时间内修正温度数据和湿度数据,提高修正分辨率,使用SH11传感器后,系统的湿度测量范围可以达到0%RH~100%RH,精度高达±1.8%RH,温度的测量范围在-60 ℃~135,27 ℃,当温度为25 ℃时,测量精度可以达到±0.5 ℃。
1.2 网关设计
在本文设计的控制系统结构中,网关起到协调器的作用,帮助系统启动网络、连接网络、配置网络,同时接收控制命令和发送数据,并将这些信号传递给控制节点,网关能够将通信、采集、控制等多个设备连接到一起,确保能够及时调控温度信息和湿度信息,网关节点示意图如图2所示。
图2 网关节点示意图
观察图2可知,网关结构内部拥有4个LED灯,其中LED2为电源指示灯,负责显示电源工作状态,LED3表示的是网关内部主控电路的工作状态,LED4和LED5都为红绿双色灯,根据LED4指示灯的颜色判断网络工作是否正常,如果指示灯颜色为绿色,则表示正常,红色表示存在异常,LED5用来判断网关结构的数据收发是否正常[7]。按键1可以重启整个系统网络,按键2用来操控网关内部电路。
网关内部拥有多个接口,这些接口主要负责帮助主控芯片STM32F107和放大芯片CC2530来下载程序。CC2530位于射频前端,是一种低功耗芯片,该芯片的加入可以有效提高放大器工作能力,提高网关运行灵敏度,使链路预算结果更加准确。STM32F107主控芯片利用Y4作为实时时钟的晶振源,工作频率为31.524 kHz,利用以太网将MII和RMII连接起来,加强控制能力。
1.3 控制器节点设计
控制器节点内部加入了多个调控设备,利用电源模块、无线收发模块和继电器控制模块将各个控制设备连接到一起,3个模块彼此独立。通过按键和红绿双色灯显示系统的工作状态。控制器内部加入了12 V电源电压,专门负责调试工作,通过接线使控制节点和调控设备连接,再利用继电器判断控制器节点内部所有线路是否接通,进而分析系统的调控设备工作是否存有异常[8]。控制节点与中央单元紧密相连,能够随时比较阈值,防止调控系统输出错误的控制信息。除了建立ZigBee网络外,还建立了GSM网络,通过该网络传递信息,用户不需要在现场就可以对温湿度进行调节,实现了远程控制。系统内部的控制电路如图3所示。
图3 控制电路图
观察图3可知,本文采用交流电源供电,供电电压为220 V,同时加入15 V和4.5 V直流电压供电,确保控制节点工作正常,通过降压、整流等处理工作,使系统可以正常运行[9]。电路中的SS14能够支持所有的标准AT指令,在单片机上设计了两个引脚,使单片机能够与串口直接连接[10]。
2 系统功能设计与实现
根据设计的系统硬件结构设计软件功能,主要设置了传感器采集节点程序、控制节点程序和网关程序。
2.1 软件开发环境
本文选用的软件开发平台为IAR平台,在开发时,该平台操作简单,功能强大,在进行开发工作时,只需要调节API函数就可以得到相关的程序。选用的编码器为IAR C++编码器,该编码器内部拥有完整的PRO Mable代码,利用标准的C语言进行编程,针对目标广泛,版本全面,可以随时中断和模拟,支持高效浮点和扩展工具,同时能够分析瓶颈性能,内部自配优化器加速设备运行[11]。调试器选用C-SPY调试器,该调试器目前已经成为无线应用程序的必然选择,已嵌入的方式进入设备中,确保系统可以高效稳定地工作,内部拥有的FLASH/PRO Mable代码能够最大程度地节省硬件资源,使产品成本得到降低,确保系统在市场竞争中取得有利地位[12]。选用的编程语言除了C语言外还有汇编语言,使每个软件程序都能够在占据少量系统资源的情况下,提高执行效率。
2.2 传感器采集节点程序设计
本文使用的传感器是温湿度传感器,输出的信号为数字信号,要确保输出的信号与系统内部时钟保持同步,使系统能够顺利接收到中心程序传来的信号,并向中心程序反馈信号。设计的传感器采集节点程序可以接收如下几种命令:预留命令(代码00111)、温度测量命令(代码00010)、湿度测量命令(代码00100)、读命令(代码00101)、写命令(代码00100),清空命令(11100).传感器采集过程主要有启动系统、测试命令发送、测量值校正、测量数据读取。传感器采集节点软件程序图如图4所示。
图4 传感器采集节点软件程序图
分析图4,在初始化操作后,系统会得到一组传输时序,这组“传输时序数据”代表数据已经进入初始化工作状态;然后根据接收到的测试命令,利用SCK时钟和DATA时钟对温度和湿度进行测量,SCK时钟和DATA时钟中的电平始终为对应关系,当测试结束后,将DATA线释放,使程序进入空闲状态,并通过指示灯标记测量结束;软件程序读取到的数据位测量数据,需要利用显示器将测量数据值显示出来。
2.3 网关程序设计
网关节点能够将各个器件节点和通信设备连接到一起,确保得到的信息能够及时传给控制器,软件工作程序如图5所示。
图5 网关软件流程图
在上电之后,对网关进行初始化操作,在网关内部建立出ZigBee网络,将需要应用的传感器采集节点和控制节点引入到ZigBee网络,并且将每个节点内部的地址信息记录在地址表中,在ZigBee网络设定编码参数、信道数量,使软件程序能够顺利执行系统代码。对信道进行搜索,检测信道中是否拥有采集节点传来的测量信息,如果存在,需要对该数据进行接收,并与地址表中记录的信息互相匹配,同时要判断传来的数据中是否包含上位机下发的控制命令,如果有,则需要利用给定的串口将这些数据接收,再传给控制节点,通过控制程序调试温度和湿度。
2.4 控制节点程序设计
作为终端节点的一种,在设计控制节点时,也需要首先建立出ZigBee网络,该程序工作流程图如图6所示。
图6 控制节点软件流程图
观察图6可知,在上电之后,要首先对控制节点进行初始化操作,然后在信道上尝试加入ZigBee网络,如果不能连接成功,控制节点会重新建立网络,再次发送连接请求,直到能够加入;连接成功后,每个控制节点会拥有一个网络地址,通常地址位为16位;得到网络地址后,每个控制节点就会对网关下发的无线传输控制命令进行监听,在得到准确的控制命令之后,使用继电器和驱动器对温度和湿度进行控制;如果没有得到监听命令,则继续监听。
3 温湿度控制系统测试及分析
为了检测本文设计的基于CPLD芯片的温、湿度控制系统是否能够稳定运行,设计了对比实验,通过与传统控制系统进行对比,评估该系统的控制性能。
3.1 实验参数设置
设置实验参数如下:设定硬件设备包括ARM7A、LCD、电子温度计、湿度计,通过时钟电路和复位电路将系统中的电子设备连接到一起。选用的编辑软件为Keil C51软件,利用C语言作为编辑语言,提高可读取性。集成开发环境中加入了IAR C++编码器和C-SPY调试器。
3.2 系统性能分析
设定饲料配方的最佳环境温度为6.5 ℃、湿度为35.8%RH,饲料配方目前所处环境温度为5 ℃,湿度为70%RH,同时使用基于CPLD芯片的控制系统和传统控制系统进行调试,记录在相同时间内的调试结果。本文利用热敏电阻和温敏电阻组成了振荡电路,通过该电路检测传统控制系统和本文控制系统的控制效果,在进行检测时,禁止外界一切设备干扰检测设备,在固定的时间间隔里记录控制效果。
在测试过程中,温度控制效果和湿度控制效果情况如下:
分析图7可知,在60 s的控制时间内,使用传统的温湿度控制系统控制的温度和湿度很难达到适合饲料配方的温度和湿度。当控制时间为10 s时,饲料配方所处环境温度为7.13 ℃,湿度为0.12%RH;当控制时间为20 s时,饲料配方所处环境温度为1.28 ℃,湿度为78.54%RH;当控制时间为30 s时,饲料配方所处环境温度为3.48 ℃,湿度为7.44%RH;当控制时间为40 s时,饲料配方所处环境温度为14.21 ℃,湿度为5.63%RH;当控制时间为50 s时,饲料配方所处环境温度为2.71 ℃,湿度为21.33%RH;当控制时间为60 s时,饲料配方所处环境温度为4.98 ℃,湿度为0.05%RH。控制过程中,饲料配方所处环境的温度值和湿度值波动非常大,因此传统控制系统十分不适合饲料配方的存储和生产。
图7 传统系统温湿度度控制效果实验图
图8 本文系统温湿度控制效果实验图
观察图8可知,在60 s的控制时间内,使用本文研究的基于CPLD设置的温湿度控制系统能够将饲料配方所处环境的温度和湿度达到标准值。当控制时间为10 s时,饲料配方所处环境温度为11.2 ℃,湿度为9.4%RH;当控制时间为20 s时,饲料配方所处环境温度为7.51 ℃,湿度为14.8%RH;当控制时间为30 s时,饲料配方所处环境温度为4.44 ℃,湿度为14.72%RH;当控制时间为40 s时,饲料配方所处环境温度为7.51 ℃,湿度为10.23%RH;当控制时间为50 s时,饲料配方所处环境温度为5.32 ℃,湿度为13.54%RH;当控制时间为60 s时,饲料配方所处环境温度为7.93 ℃,湿度为12.17%RH。控制过程中,饲料配方所处环境的温度值和湿度值波动极小。
综上可知,使用本文基于CPLD芯片研究的温湿度控制系统取得的控制效果要远远好于传统的温湿度控制系统取得的控制效果。在相同的控制时间内,传统系统调节的温度和湿度与标准值相差甚远,而且十分不稳定,饲料配方在这种环境下很难批量生产和长时间存储。本文研究的温湿度控制系统具有很强的控制能力,可以在短时间内就将环境温度和湿度调整到标准值附近,并且不断调节,确保饲料配方能够在一个十分好的环境下生产和存储。
4 结束语
由于传统的温湿度控制系统在控制饲料配方环境温度湿度时,需要大量布线,所以维护起来十分困难。本文引用CPLD芯片设置了一种新的控制系统,该系统通过建立ZigBee网络将采集节点、网关节点和控制节点连接到一起,确保能够实时监控饲料配方所处环境的温度和湿度,并且将得到的数据远程传输给网络服务器,从而达到实时控制温度、湿度的目的。该系统操作简单,占地面积小,具有很强的应用性。
虽然基于CPLD芯片建立的控制系统具备上述基本功能,但是未来仍然需要针对如下几方面深入研究:(1)终端设备所采用的网络虽然简单,但是安全性不够,未来可以建立更加安全的网络拓扑结构和树状结构,并且可以增设路由器,扩大信息的传输距离;(2)本文设计的系统监测参数仅为温度和湿度,未来可以加入其它参数,如CO2量、是否出现霉变等,使系统的功能更加丰富;(3)本文系统缺少报警装置,未来需要在设计中引入报警装置,使系统更加完善。