基于AVR单片机的有害气体红外感应及语音警示控制系统
2010-12-18 09:44:32
来源:《半导体器件应用》2009年12月刊
点击:1003
0 引言
利用红外感应系统感应附近有无有害气体,当红外感应系统感受到有有害气体接近时,送出持续一段时间的高电平;单片机通过开启中断,启动语音芯片,单片机通过串口通信,从上位机提取的有害气体参数提示给附近人体,并经过与安全值的比较判定当前环境是否安全。对语音芯片的使用,先将必要的文字、数字信息录制进去,放音时,通过单片机自动寻址,把实时参数读取出来。为便于以后系统改进或移植到其他系统,可设计录音、放音电路,通过切换录制不同内容。系统设计友好、方便,给人的信息也更加直接。
1 系统总体设计方案
在气体浓度是现有可利用的数据的基础上,考虑了系统的衔接性和可移植性。系统总体方案见图1。
本系统分为四大模块:核心控制模块、语音电路模块、红外感应模块以及数据的读取。在气体浓度为现有可利用资源的前提下设计了系统如何进行读取控制。核心控制模块采用单片机作为控制器件,配合适当的外围电路,控制整个系统的运行。红外感应模块以一个红外传感器为核心,配置一定的信号处理电路,往单片机发信号。语音电路以语音芯片为核心,设计了录音、放音两种电路。
1.1 核心控制模块的设计
核心控制器件选用了单片机,其最小系统构成如图2所示。
该模块是系统的核心,当红外感应系统感应到人体,会送出中断信号,单片机得到信号后执行中断,通过串口通信读取气体浓度,然后到语音芯片寻址,并控制语音模块把气体浓度报告出来。除了基本的外围电路,核心控制模块外主要应用了中断、串行通信和基本的输入、输出功能。
本系统中上位机通过串口实现与单片机通信,然后由单片机进行处理。单片机接受红外信号后,控制语音芯片工作,播放相应的语音信息。可选的单片机较多,如AVR、AT89C51等。采用单独的控制芯片的好处是减少主控芯片(CPLD)的工作量,提高系统的性能。我们选用了AVR单片机。AVR是基于RISC(精简指令集计算机)结构的单片机,简称AVR单片机。该系列单片机在吸收PIC及8051单片机优点的基础上,进行了重大改进。与普通的51系列单片机相比,AVR单片机有很多优点。首先给人最直观的就是具有JTAG边界扫描、仿真、编程功能,不会造成以往仿真通过而脱机不行的现象。
1.2 红外感应模块的设计
该模块相对简单,核心用了红外传感器,只把信号进行了简单处理,送给单片机的中断即可,见图3。
1.3 数据读取方式的设计
对数据的读取有两种方法:一种是直接与硬件电路结合,16位二进制数据读取过来,进行整理还原;另一种是通过串口通信,把已经由上位机整理好的数据,通过RS-232协议读取过来。显然,较第1种方法,通过串口的方式避免了对数据重复整理,编程更简单。对整个项目而言,设计更合理,缩短了开发周期。
本系统采用的是串行数据通信方式,接口为RS-232串口,实验证明这种通信方式简单易行,符合本系统要求。本系统采用的是半双工配置,它要求下位机和主机控制器双方都具有独立的发送和接收能力。
接收/发送时钟用来控制通信设备接收/发送字符数据速度,该时钟信号通常由微机内部的时钟电路产生。接收数据时,接收器在接收时钟的上升沿对接收数据采样,进行数据位检测。发送数据时,发送器在发送时钟的下降沿将移位寄存器的数据串行移位输出。
接收/发送时钟频率与波特率有如下关系:
Fc=nvc
式中:Fc为接收/发送时钟频率;n为频率系数,n=1,16,64;vc为收/发波特率。
接收/发送时钟的周期Tc与发送的数据位宽Td之间的关系是:
Tc=Td/n
式中:n=1,16,64。
若取n=16,那么异步传送接收数据实现同步的过程如下:接收器在每一个接收时钟的上升沿采样接收数据线,当发现接收数据线出现低电平时就认为是起始位的开始,以后若在连续的8个时钟周期(因n=16,故Td=16Tc)内检测到接收数据线仍保持为低电平,则确定它为起始位(不是干扰信号)。通过这种方法,不仅能够排除接收线上的噪声干扰,识别假起始位,而且能够相当精确地确定起始位的中间点,从而提供一个准确的时间基准。从这个基准算起,每隔16Tc采样一次数据线,作为输入数据。一般来说,从接收数据线上检测到一个下降沿开始,若其低电平能保持nTc / 2(半位时间),则确定为起始位,其后每间隔nTc时间(一个数据位时间)在每个数据位的中间点采样。
2 通信软件设计
系统通信软件由下位机、主机控制器通信软件和上位机监控软件3部分组成。下位机通信软件功能主要是接收主机控制器发送过来的信号,针对各下位机地址发送应答信号,再根据主机控制器发来的控制信号做出相应的反应,随后发送主机控制器所需数据。其通信功能使用了单片机的串行中断和查询收发状态标志位的方法实现。下位机平时对各监控点进行数据采集并定时存储,当有串行中断时执行串行中断服务程序,判别是否为本机的地址信息。地址信息与本机地址相符时,转为接收控制命令,并执行相应的操作;地址信息与本站地址不符时则退出中断。下位机通信流程图如图4所示。
主机控制器的通信软件实现功能主要包括呼叫各从机(下位机),并向各从机发送查询控制命令。其工作过程为:控制器发送需呼叫的从机的地址,然后等待接收从机的应答信号,若应答信号正确即发送控制命令,若应答信号不正确则重新发送需呼叫的地址,并等待接收应答信号,接收到应答信号后接收下位机发送的数据,存储在相对应的数据存储区并在LCD(液晶显示器)显示屏中显示出来。对同一从机多次呼叫而在规定时间内无应答信号或应答信号不正确,则提示错误信息。图5为主机控制器通信流程图。
上位机监控软件由Visual C++编写,具有良好的可视效果,功能包括数据查询、数据存储、串口通信设置、视频监控、图表显示(单机、多机)等。上位机的数据来自主机控制器,其通过RS-232串口网络传送给上位机,它的接口与RS-485网络的接口是并行的,标准接口有25条线、4条数据线、11条控制线、3条定时线、7条备用和未定义线,但常用的只有9根。
3 结束语
针对该系统,除了可以使用自己设计的上位机软件进行调试,还可以利用一个简单的串口调试器来实现。该系统覆盖了单片机技术及一部分模拟、数字电路的知识,系统具有一定的操控性、工作稳定、实现容易、成本低,具有很高的使用价值,在系统建成后,运行结果表明系统工作稳定可靠,在工业控制领域有着广阔的前景。
利用红外感应系统感应附近有无有害气体,当红外感应系统感受到有有害气体接近时,送出持续一段时间的高电平;单片机通过开启中断,启动语音芯片,单片机通过串口通信,从上位机提取的有害气体参数提示给附近人体,并经过与安全值的比较判定当前环境是否安全。对语音芯片的使用,先将必要的文字、数字信息录制进去,放音时,通过单片机自动寻址,把实时参数读取出来。为便于以后系统改进或移植到其他系统,可设计录音、放音电路,通过切换录制不同内容。系统设计友好、方便,给人的信息也更加直接。
1 系统总体设计方案
在气体浓度是现有可利用的数据的基础上,考虑了系统的衔接性和可移植性。系统总体方案见图1。
本系统分为四大模块:核心控制模块、语音电路模块、红外感应模块以及数据的读取。在气体浓度为现有可利用资源的前提下设计了系统如何进行读取控制。核心控制模块采用单片机作为控制器件,配合适当的外围电路,控制整个系统的运行。红外感应模块以一个红外传感器为核心,配置一定的信号处理电路,往单片机发信号。语音电路以语音芯片为核心,设计了录音、放音两种电路。
1.1 核心控制模块的设计
核心控制器件选用了单片机,其最小系统构成如图2所示。
该模块是系统的核心,当红外感应系统感应到人体,会送出中断信号,单片机得到信号后执行中断,通过串口通信读取气体浓度,然后到语音芯片寻址,并控制语音模块把气体浓度报告出来。除了基本的外围电路,核心控制模块外主要应用了中断、串行通信和基本的输入、输出功能。
本系统中上位机通过串口实现与单片机通信,然后由单片机进行处理。单片机接受红外信号后,控制语音芯片工作,播放相应的语音信息。可选的单片机较多,如AVR、AT89C51等。采用单独的控制芯片的好处是减少主控芯片(CPLD)的工作量,提高系统的性能。我们选用了AVR单片机。AVR是基于RISC(精简指令集计算机)结构的单片机,简称AVR单片机。该系列单片机在吸收PIC及8051单片机优点的基础上,进行了重大改进。与普通的51系列单片机相比,AVR单片机有很多优点。首先给人最直观的就是具有JTAG边界扫描、仿真、编程功能,不会造成以往仿真通过而脱机不行的现象。
1.2 红外感应模块的设计
该模块相对简单,核心用了红外传感器,只把信号进行了简单处理,送给单片机的中断即可,见图3。
1.3 数据读取方式的设计
对数据的读取有两种方法:一种是直接与硬件电路结合,16位二进制数据读取过来,进行整理还原;另一种是通过串口通信,把已经由上位机整理好的数据,通过RS-232协议读取过来。显然,较第1种方法,通过串口的方式避免了对数据重复整理,编程更简单。对整个项目而言,设计更合理,缩短了开发周期。
本系统采用的是串行数据通信方式,接口为RS-232串口,实验证明这种通信方式简单易行,符合本系统要求。本系统采用的是半双工配置,它要求下位机和主机控制器双方都具有独立的发送和接收能力。
接收/发送时钟用来控制通信设备接收/发送字符数据速度,该时钟信号通常由微机内部的时钟电路产生。接收数据时,接收器在接收时钟的上升沿对接收数据采样,进行数据位检测。发送数据时,发送器在发送时钟的下降沿将移位寄存器的数据串行移位输出。
接收/发送时钟频率与波特率有如下关系:
Fc=nvc
式中:Fc为接收/发送时钟频率;n为频率系数,n=1,16,64;vc为收/发波特率。
接收/发送时钟的周期Tc与发送的数据位宽Td之间的关系是:
Tc=Td/n
式中:n=1,16,64。
若取n=16,那么异步传送接收数据实现同步的过程如下:接收器在每一个接收时钟的上升沿采样接收数据线,当发现接收数据线出现低电平时就认为是起始位的开始,以后若在连续的8个时钟周期(因n=16,故Td=16Tc)内检测到接收数据线仍保持为低电平,则确定它为起始位(不是干扰信号)。通过这种方法,不仅能够排除接收线上的噪声干扰,识别假起始位,而且能够相当精确地确定起始位的中间点,从而提供一个准确的时间基准。从这个基准算起,每隔16Tc采样一次数据线,作为输入数据。一般来说,从接收数据线上检测到一个下降沿开始,若其低电平能保持nTc / 2(半位时间),则确定为起始位,其后每间隔nTc时间(一个数据位时间)在每个数据位的中间点采样。
2 通信软件设计
系统通信软件由下位机、主机控制器通信软件和上位机监控软件3部分组成。下位机通信软件功能主要是接收主机控制器发送过来的信号,针对各下位机地址发送应答信号,再根据主机控制器发来的控制信号做出相应的反应,随后发送主机控制器所需数据。其通信功能使用了单片机的串行中断和查询收发状态标志位的方法实现。下位机平时对各监控点进行数据采集并定时存储,当有串行中断时执行串行中断服务程序,判别是否为本机的地址信息。地址信息与本机地址相符时,转为接收控制命令,并执行相应的操作;地址信息与本站地址不符时则退出中断。下位机通信流程图如图4所示。
主机控制器的通信软件实现功能主要包括呼叫各从机(下位机),并向各从机发送查询控制命令。其工作过程为:控制器发送需呼叫的从机的地址,然后等待接收从机的应答信号,若应答信号正确即发送控制命令,若应答信号不正确则重新发送需呼叫的地址,并等待接收应答信号,接收到应答信号后接收下位机发送的数据,存储在相对应的数据存储区并在LCD(液晶显示器)显示屏中显示出来。对同一从机多次呼叫而在规定时间内无应答信号或应答信号不正确,则提示错误信息。图5为主机控制器通信流程图。
上位机监控软件由Visual C++编写,具有良好的可视效果,功能包括数据查询、数据存储、串口通信设置、视频监控、图表显示(单机、多机)等。上位机的数据来自主机控制器,其通过RS-232串口网络传送给上位机,它的接口与RS-485网络的接口是并行的,标准接口有25条线、4条数据线、11条控制线、3条定时线、7条备用和未定义线,但常用的只有9根。
3 结束语
针对该系统,除了可以使用自己设计的上位机软件进行调试,还可以利用一个简单的串口调试器来实现。该系统覆盖了单片机技术及一部分模拟、数字电路的知识,系统具有一定的操控性、工作稳定、实现容易、成本低,具有很高的使用价值,在系统建成后,运行结果表明系统工作稳定可靠,在工业控制领域有着广阔的前景。
本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
暂无评论