杨术明,杨树川,马伏龙
(宁夏大学 机械工程学院,宁夏 银川 751100)
现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行检测和控制.温室环境与生物的生长、发育、能量交换密切相关,进行环境测控是实现温室生产管理自动化、科学化的基本保证,通过对监测数据的分析,结合作物生长发育规律,控制环境条件,使作物达到优质、高产、高效的栽培目的.温室中CO2是作物进行光合作用不可或缺的要素之一,为研究其浓度高低对作物生长的影响,就需在一定的时间间隔内对其浓度进行连续的测量[1].测量工作简单,但工作量大.本文的目的是集成应用微控制器技术、传感器技术及数字滤波技术,设计一种温室CO2浓度数据自动记录仪,实现温室CO2浓度的自动测量和存储,并可任意调整测量的间隔时间,提高了温室环境因子研究中浓度测量工作的自动化程度.
根据使用要求,本设计以单片机作为记录仪的控制中心,以时钟模块、传感器模块、显示模块、存储模块及通讯模块分别完成定时、浓度测量、数据显示、存储及数据输出的功能.记录仪总体结构如图1所示.记录仪工作时,定时对温室中的CO2浓度进行实时测量,并将测量数据与时钟模块提供的时间数据融合后,以一定的数据帧格式保存在存储器中.测量完成后,将记录仪与PC 机连接并上传测量数据以便对数据进行分析.为提高测量精度,在软件设计上选用数字滤波技术来减少随机误差.
图1 系统组成结构Fig.1 Structure of hardware system
系统硬件设计主要包括单片机的选择,时钟模块、显示模块、通讯模块以及传感器模块与单片机的接口设计.
由于通讯模块和传感器模块都需使用串行口,所以本设计选用内部有2个串行口的高速型51系列单片机STC12C5A32AD 作为系统的处理器.其片内集成了32kB的FLASH 型程序存储器,1kB的数据存储器以及32kB的EEPROM.EEPROM 可在线进行读写操作,因此,可将其作为测量数据的存储空间,从而简化了电路结构,同时也降低了记录仪的成本.
时钟模块采用美国DALLAS公司生产的DS12C887时钟芯片,该时钟芯片内部集成了普通时钟芯片所需的晶振和外部锂电池相关电路,不需任何外围电路,大大减化了电路结构.DS12C887芯片具有微功耗、外围接口简单、精度高、工作稳定可靠等优点,广泛用于各种需要较高精度的实时时钟场合中.DS12C887和单片机的接口有2种:直接访问方式和间接访问方式.模式选择脚MOT 接地,选择INTEL时序.因DS12C887的RAM 只有128字节,无需高位地址识别,所以采用直接访问方式,接口电路如图2所示.
显示模块和键盘共同组成人机交互接口,以便执行数据上传、存储器擦除、历史数据查询及系统自检等命令.显示模块采用点阵型液晶显示模块MzLH04-12864,该模块自带16×16和12×122种字号的汉字库(包含一、二级汉字库)以及8×16和6×102种字号的ASCII码字库,并且自带基本绘图功能,包括绘制点、直线、矩形、圆形等,从而使系统在不扩充外部存储器的情况下就可以实现汉字交互界面,方便大多数人群的使用.MzLH04-12864通过串行SPI接口与单片机进行通讯,接口电路如图3所示.
图2 DS12887与单片机的接口电路Fig.2 Interface of DS12C887and STC12C5A32AD
图3 液晶显示模块接口电路Fig.3 the LCD Module Interface
单片机串行口的通讯在物理层上属于TTL电平,TTL电平只能应用于距离较短的场合.PC 机则提供的是标准RS232串行口,串行通讯接口RS232C采用负逻辑,即逻辑“1”为-5~-15V,逻辑“0”为+5~+15V,而TTL电平的逻辑“0”和逻辑“1”分别是0V 和5V,二者的电气规范不一致,因此要完成单片机与PC机的数据通讯,必须对单片机输出的TTL电平进行电平转换.本设计中采用MAX232来完成电平转换工作,其接口电路如图4所示.
图4 通讯模块电路Fig.4 Communication Module Schematic
CO2传感器模块采用数字式红外CO2传感器模块C20,其分辨率10μL/L,量程0~5 000μL/L,可通过硬件或软件方式进行零点校准.C20模块与单片机之间通过串行口进行通信,在本设计中,C20的串行口与单片机STC12C5A32AD的第2个串行口进行通信.默认通信协议为波特率9 600,数据位8位和1位停止位.
系统软件由上位机软件和下位机软件组成,上位机软件基于Visual Basic6.0开发,主要用来接收单片机上传的测量数据,以便对数据进行进一步的分析.下位机软件按功能主要包括主程序模块、传感器通信模块子程序、显示模块子程序、时钟模块子程序、存储模块子程序及键盘处理子程序6部分组成.主程序模块是下位机软件的核心,通过显示模块子程序和键盘处理子程序组成人机交互界面,主要实现浓度测量、数据上传、历史数据查询、存储器擦除及系统自检等功能.在上述子程序中,浓度数据的接收与处理、数据融合与存储是下位机软件设计产关键.
C20传感器在硬件上与单片机通过串行口进行连接,在软件上则通过命令的方式进行驱动.单片机通过串行口按相应的协议向C20发送命令字,则可对C20的数据输出格式和输出速度进行设置.默认情况下,C20以2帧/s的速率通过TX 引脚向外传输有关CO2浓度信息的数据.每帧数据格式如下:
Z dat1 z dat2 13 10
Z,z分别表示高分辨率和快速响应2种输出模式,dat1和dat2是用5位数表示的浓度值,传感器输出的是数字的ASCII码.在高分辨率模式下,内部已对测量数据进行了滤波处理,精度较高.快速响应模式下则对测量数据不进行任何处理就直接输出,因此数据波动较大,只能通过外部软件对误差进行滤波处理.常用的数字滤波算法有限幅滤波法、中值滤波法、算术平均滤波法、加权平均滤波法、滑动平均滤波法、低通滤波法及复合滤波法等[4].由于单片机内部资源的限制,在编写算术平均滤波算法程序时为了减小数据的存储容量,对测得的值直接进行相加运算,测完N 次后,进行平均值计算.为了对记录仪测量精度进行评价,本设计对快速响应模式下30次的测量数据进行了统计分析,分析结果表明,无软件滤波和软件滤波条件下,其标准差分别为4.97和3.88,因此采用软件滤波方法后可有效提高测量仪的精度.
3.2.1 数据融合
因浓度与时间是密切相关的,所以在存储数据时要将浓度和时间数据进行融合,以一定的数据帧格式存储,每个数据帧占7个字节.数据帧详细格式如表1所示.
表1 数据帧格式Tab.1 Data Frame Format
其中,帧内容每项括号中的数字为该项所占用的字节数.时间数据中时、分各分配1个字节.帧尾CS为校验位,采用累加和的方法对帧的内容进行校验.
3.2.2 数据存储
单片机STC12C5A32AD 具有很高的集成度,其内部集成了28kB可重复擦写的EEPROM.为对内部EEPROM 进行了在线操作,定义了以下特殊功能寄存器.
SFR ISP_DATA =0XC2; //ISP操作时的数据寄存器,读写操作FLASH 数据都预先存入.
SFR ISP_ADDRH =0XC3; //ISP操作时的地址寄存器高8位.
SFR ISP_ADDRL =0XC4; //ISP操作时的地址寄存器低8位.
SFR ISP_CMD =0XC5; //ISP操作时的命令模式寄存器,须命令触发寄存器触发方可生效.
SFR ISP_TRIG =0XC6; //ISP操作时的命令触发器寄存器.
SFR ISP_CONTR =0XC7; //ISP 操作时的控制寄存器.
与其他存储器不同的是,在对EEPROM 某个存储单元操作之前,需先向特殊功能寄存器ISP_TRIG 连续写0x5A 和0x0A5 2个数据,方能触发在线访问功能.单片机对EEPROM 访问有3种方式,即字节写、字节读及扇区擦除.
STC12C5A32AD 内部集成的28kB的EEPROM 存储器在结构上共分为56个扇区,每1个扇区的存储空间占512个字节.对于温室环境因子研究,一般每隔1h测量1次数据,按表1所述数据帧格式,则可保存4 096个记录,即记录仪可连续记录169d的数据,完全可以满足一般研究的要求.
根据温室环境因子研究工作的要求,设计了一种基于单片机的CO2浓度数据记录仪,实现了温室中CO2浓度的自动测量和存储,提高了温室环境因子研究中浓度测量工作的自动化程度.在软件设计上,通过选用先进的数字滤波方法提高浓度传感器的测量精度,提高了记录仪的稳定性和精确性.
[1] 谢臣,满红,王学斌.日光温室CO2施肥效应及施用技术研究现状[J].宁夏农林科技,2009(4):70-71.
[2] 杨术明,杨树川,熊伟.土壤水分测量仪的数字滤波设计与实现[J].河北大学学报:自然科学版,2010,30(3):319-322.YANG Shuming,YANG Shuchuan,XIONG Wei.Design and realization of digital filter for soil moisture meter[J].Journal of Hebei University:Natural Science Edition,2010,30(3):319-322..
[3] 闰玲,姚毅,昌学年.红外吸收法测定烟气中CO2浓度的研究[J].仪器仪表与分析检测,2009(4):27-29.RUN Ling,YAO Yi,CHANG Xuenian.Study on infrared absorption measurement for the concentration of carbon dioxide in flue gas[J].Instrumentation,Analysis,Monitoring,2009(4):27-29.
[4] 朱恒军,王发智,姚仲敏.基于单片机的数字滤波算法分析与实现[J].齐齐哈尔大学学报,2008,24(6):53-54.ZHU Hengjun,WANG Fazhi,YAO Zhongmin.Analysis and Implementation of digital filter algorithm based on MCU[J].Journal of Qiqihar University,2008,24(6):53-54.
[5] 张玮,王东锋.新型温室温度自动记录仪系统设计[J].机电产品开发与创新,2009,22(3):169.ZHANG Wei,WANG Dongfeng.Design of new type automation preserving meter of temperature in green house[J].Development &Innovation of Machinery &Electrical Products,2009,22(3):169.
[6] 牛余朋,成曙.单片机数字滤波算法研究[J].中国测试技术:2005,31(6):97-99.NIU Yupeng,CHENG Shu.Research on algorithm of digital filter[J].China Measurement &Test,2005,31(6):97-99.
[7] 徐爱钧,彭秀华.Keil Cx51V7.0单片机高级语言编程与μVisision2 应用实践[M].北京:电子工业出版社,2005.
[8] 余永权.单片机在工业控制中的应用[M].北京:电子工业出版社,2003.