煤矿瓦斯监测装置的设计与开发
2009-09-05刘伟韬王新鹏刘晋刘晓磊杨倩
刘伟韬 王新鹏 刘 晋 刘晓磊 杨 倩
摘要:文章介绍了基于Mega16单片机的瓦斯监测装置。该装置具有测量、通信、存储、查询、显示等功能,能够满足现场测量的需要。
关键词:瓦斯 监测 ATmega16
0 引言
瓦斯监测是煤矿安全中非常重要的环节,因此高性能的瓦斯监测装置对煤矿的安全系统十分重要。现有的许多瓦斯监测装置存在着可操作性差,显示不方便,反应速度慢等问题。因此,笔者开发了基于Mega16单片机的瓦斯监测装置。
1 瓦斯检测装置硬件设计
1.1 总体设计:
该瓦斯监测装置主要由微处理器8位AVR ATmega16、传感器采集电路、数据预处理电路、人机接口电路等组成。其工作原理如下:瓦斯传感器队瓦斯浓度进行检测,并产生一个电压信号;数据预处理电路对此信号进行放大处理并将信号传送到AVR ATmega16芯片的A/D转换通道中。AVR ATmega16芯片控制A/D模块工作得到数字信号并取若干次转换的平均值,并将该信号与预设的标准值进行比较并存储,当数字信号超过标准值时就产生声光报警,低于标准值则不报警。人机接口包括键盘和LCD显示屏,键盘主要用来调试日期,进行系统复位,LCD屏用来显示实时瓦斯浓度以及实时时钟给出的日期和时间。当系统进入死机状态时,看门狗可以对系统进行复位。
1.2 瓦斯传感器与信号预处理电路 催化燃烧式传感器突出的优点是传感器模块化设计,体积小,安全性高,而且随着对催化燃烧探头的原理与生产工艺的深入研究,载体催化元件的稳定性,抗中毒性,输出线性等都有了大幅度的提高,更适合于在恶劣环境下对煤矿瓦斯的检测。所以本系统选择催化燃烧式瓦斯传感器。信号预处理电路可以将传感器输出信号处理为适合A/D转换的范围。
1.3 A/D转换 A/D转换装置主要通过ATmega 16芯片自带的A/D转换接口,这样可以节省硬件成本,同时还起到简化外接电路、节省端口的目的。内置A/D转换装置具有10位精度、±2LSB的绝对精度、13?s~260?s的转换时间、在最大精度下可达到每秒15kSPS的采样速率、8路可选的单端输入通道、ADC的电压输入范围0~Vcc、可选择的内部2.56V的ADC参考电压源、ADC转换完成中断等优点。因而,ATmega 16完全适任本设计装置的预期的任务。
1.4 数据存储 ATmega 16单片机的强大的功能还体现在它的存储功能上。ATmega 16支持EEPROM和flash的读写。单片机在对转换信号进行处理后,将所得数据送至芯片自带的EEPROM或flash中。由于EEPROM和flash支持多次读写,且掉电不会丢失数据,因而非常适合在本设计中作为存储器使用。
1.5 人机接口 LCD显示屏是以HD44780为模型,它具有14个管脚,其中包括8个数据地址管脚,选片管脚,读写管脚等。本LCD屏不能显示汉字,可用来显示日期、时间和瓦斯浓度的装置。本LCD显示系统可以显示两行40个字符,第一行轮流显示日期和时间,其显示更替由按键决定。第二行显示瓦斯浓度。该瓦斯监测装置的键盘模块是9位键盘,通过此键盘可以对传感器的多项内容进行设置,例如日期、时间和报警标准值。
1.6 声光报警 当瓦斯浓度超过预置的报警值时,及时进行现场报警显得尤为重要。为了加强报警效果,本传感器采用声光同时报警的方式,当监测到甲烷浓度值超过报警值时,蜂鸣器开始鸣响,高亮红色数码管对当前过限浓度也亮起来。
1.7 串行通信 Atmega16本身带有串行通讯口,但其电平为TTL电平,必须通过MAX232进行电平转换才能与PC机进行串行通讯。为了将信号转化为可用,采用MAXIM公司的MAX232/MAX233芯片实现5V电路中和PC实现串口通信的电平转换芯片。存储数据的上传由PC机控制,PC机向测试仪发送启动发送或停止发送指令,即可完成数据上传的启动与终止。
2 瓦斯监测装置软件设计
软件设计大体上可以分为三部分,分别是主程序,串口中断程序,定时器中断程序。
2.1 主程序设计 主程序的主要作用是各项初始化并循环对键盘进行扫描。初始化包括时间的初始化,串口的初始化,LCD的初始化,定时器的初始化等。键盘扫描要判断键盘是否被按下,如果未被按下则再循环扫描,如果被按下则返回不同的数值,并根据不同的数值做出相应的动作,比如进入和退出设置状态,日期的设置,报警复位和系统复位等。
2.2 串口中断程序 串口中断程序主要用于和上位机的通信,当上位机向MEGA16发送命令时,则串口就会产生一个中断来处理上位机的命令,MEGA16会先判断指令是否是有效指令,如果不是则直接清除中断标志位,如果是有效指令则判断指令的类型并执行相应的操作,指令执行完毕之后清除中断标志位并退出中断。
2.3 定时器中断程序 当定时器产生中断时,A/D转化器进行一次AD转换,并存储转换的数据,然后将转换数据与预设的标准值进行比较,如果没有超过标准值则正常显示,如果转换值超过了标准值则先进行声光报警,然后正常显示。而显示日期时要先判断LCD是否处于设置状态,如果没有处于设置状态则正常显示日期,否则还要判断自定义变量是否是偶数,如果是偶数则正常显示日期的数字,如果是奇数则交替显示“-”和日期。最后清除中断标志位并退出中断。
2.4 A/D转换程序 AVR mega16有一个10位的逐次逼近型A/D转换,其与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。本系统采用定时器对A/D转换的间隔进行控制,初步设定0.5秒转换一次,当定时器计时满产生中断时就进行一次转换。