基于单片机的家用智能防火防盗报警器的设计教材.docx
《基于单片机的家用智能防火防盗报警器的设计教材.docx》由会员分享,可在线阅读,更多相关《基于单片机的家用智能防火防盗报警器的设计教材.docx(20页珍藏版)》请在冰豆网上搜索。
基于单片机的家用智能防火防盗报警器的设计教材
基于单片机的家用智能防火防盗报警器的设计
摘要
随着人们安全防范意识的提高,家用防火防盗报警系统将会有非常广阔的发展空间。
本文设计的防盗防火报警系统是一种新型的电子安全报警系统,它将电子探测、智能控制和电话通讯技术相结合,从而形成一个两级联网通讯的防盗、防火报警系统。
该系统硬件部分主要由传感器检测电路部分、主控单元电路、DTMF拨号电路、语音报警电路、键盘接口电路、显示电路、忙音和回铃音检测电路等7大部分组成。
软件部分包括主程序、检测报警子程序、拨号子程序、语音处理子程序、按键子程序、显示子程序等。
该系统采用多传感器设计思想,综合应用了温度探测器、光电感烟探测器和一氧化碳探测器进行防火探测,并应用红外探测器与微波探测器组成的双鉴探测器进行防盗探测,解决了传统单一探测器的误报率和漏报率高的问题,增加了系统的可靠性和抗干扰能力。
关键词:
单片机防火防盗报警器家用探测器
一、家用智能防火防盗报警系统的设计背景
报警设备对于保护人们的生命和财产安全至关重要。
目前防盗报警产品在我国的普及率只有20%,与欧美等发达国家高达70%的普及率相比,我国防盗报警产品市场的发展才刚刚起步,尤其在家庭安防报警系统方面的认可度和普及率更低。
随着人们安全防范意识的提高,会有更多的人选用家庭安防报警产品,可以预见家庭安防报警系统将会有非常广阔的发展空间。
现有的家庭安防报警系统按使用场所可以分为联网型和单户型两大类。
联网型家庭安防报警系统由多个小型报警系统经过联网组成社区型的安防报警中心,报警中心一般使用报警接收机、计算机系统和打印机设备等。
当报警事件发生时,报警点的数据显示在电子地图的相应位置,同时计算机系统可以调出报警点的配置和现场各种数据资料,供警情处理人员快速判断和处理。
联网型家庭安防报警系统主要应用于新建小区,而且需要用户普遍接受该系统。
用户端自动报警器安装于居民住宅,用于对居民住宅各个不同部位的不同类型探测智能化住宅防盗防火报警系统器(红外、微波、光电感烟、温度、一氧化碳)进行监测与控制,并对从各个探测器采集来的数据进行处理。
一旦有人非法入室、室内起火、煤气泄漏等情况发生时,与之相对应的报警探测器立即将相应的报警信号(探测器的编号)加密后传送给报警主机,报警主机对报警信号进行解码和判断,得出报警类型,确认无误后,通过家中的电话线路自动拨号报警,并与中央控制器建立联系,将相关信息传送至中央控制器中。
随着现代电子技术、计算机技术、通信技术、传感技术和制造业技术等的迅速发展,有关家庭安防报警方面的产品也愈来愈丰富。
近年来国内外已有如博世、霍尼韦尔、艾礼富科立信、联腾、宏泰等多家品牌公司开发研制出了一系列的家庭安防报警产品,它们可以通过有线或无线的方式完成一些报警和求助等功能,并且进行了比较成功的应用。
例如上海联腾公司的报警主机LT-B2102/ZX1具有电话语音远程报警功能,包括支持通过公用电话网或GSM。
二、家用智能防火防盗报警系统的总体结构
本防盗防火报警系统是一种新型的电子安全报警系统,该系统的设计是将电子探测、智能控制和电话通讯技术相结合,从而形成一个两级联网通讯的防盗、防火报警系统。
图1是智能防火防盗报警系统的总体结构图,主要由7大部分组成:
传感器检测电路部分,主控单元电路,DTMF拨号电路,语音报警电路,键盘接口电路及显示电路,忙音、回铃音检测电路。
该智能报警系统可以实现如下功能:
89C51单片机对双音多频(DTMF)编、译码器的控制,使住宅通过电话网实现与相关部门之间的数据交换,DTMF拨号电路与89C51单片机通过电话网络完成住宅与外部的联络。
当探测器检测到意外情况后,就发出报警电平信号到主控制部分89C51单片机处,单片机通过接口电路对读取的电平进行处理,然后控制双音多频拨号芯片向电话线路拨出电话号码,与此同时控制语音芯片拨出事先录制好的语音信号到电话线路,实现语音报警,拨号完成接听回铃声后,模拟挂机,从而完成向区域控制中心的单位保卫部门、110/119报警台电话机或用户发出呼叫信号,告知对方住宅被盗或有火灾发生。
报警系统在拨号报警的同时启动现场报警器,进行事件的现场光(LED)报警,并启动语音电路,播放相应警情的语音提示音。
系统不需要另外占用电话线路,当有报警信号时,报警电话享有电话线路的优先权。
图1家庭防火防盗报警系统功能框图
本系统还配置有应急按键,当家庭出现紧急情况时可通过报警主机键盘上的应急按键直接拨号报警。
三、家用智能防火防盗报警系统的硬件设计
(一)防火探测器的设计
防火探测器是由温度探测、光电感烟探测和一氧化碳探测构成的复合型火灾探测器。
多传感器设计思想解决了传统防火探测器一直存在的误报率高的问题,增强了火灾探测的可靠性。
复合型火灾探测器原理如图2所示。
图2复合型火灾探测器原理示意图
由于单元探测技术所采用的单一参数火灾探测器(包括阈值触发式和模拟量式)对火灾特征信号响应灵敏度的不均匀性,导致它对实际火灾的探测能力受到了限制,尤其是用于对家庭住宅火情的准确探知更是尤为重要。
因此,报警系统中对火灾信号的检测采用多传感器/多判据的火灾探测技术,将探测器探测到的多元火灾探测信息经单片机进行综合判断,在软件设计中加入了神经网络智能算法,仿真实现了多元同步智能探测。
神经网络算法处理己实现,本系统中只取用其处理后的报警信号进行自动拨号报警处理。
实际上,响应各种不同类型的火灾,通常使用不同类型的火灾传感器,它们有不同侧重的检测对象。
光电感烟探测器不仅可探测一般火情,对阴燃火尤其有极好的探测效果,主要用于火情早期各种燃烧的烟雾颗粒进行探测,这一点就弥补了感温探测器对阴燃火不敏感,响应速度慢以及不能区分是火灾的热还是空调或烹饪蒸气的热等缺点;但温度与光电感烟探测器都不能区分有些烟雾究竟是火灾的烟还是烹饪蒸汽或香烟的烟雾,由此,在设计中增加了C0探测部分,可以探知早期火灾烟雾中的C0成分,这样就大大降低了各种环境因素的干扰,提高了报警的可信度。
下面分别介绍三种传感器的电路设计。
1.温度探测器
温度探测器使用数字温度传感器DS1820,它只有三个引脚,是将温度传感器和信号调理电路集成在一块芯片中,节省了外围硬件,应用非常方便。
DS1820的测温原理是利用温敏振荡器的频率随温度变化的关系,把温度信号直接转换为串行数字信号,通过内部计数器对受温度影响的振荡器周期的计数可实现温度测量。
2.光电感烟探测器
整个电路主要分为红外线脉冲发射部分和接收部分,一旦发生火灾,烟雾中的细微颗粒将对红外线脉冲发生漫反射,并变换成相应的电信号,该信号由运放交流放大后经比较器送单片机处理并报警。
电路原理如图3所示。
图3光电感烟探测器原理图
红外发射电路中的555电路用于产生频率可调的脉冲波形,使用555电路的一个主要优点是输出脉冲的占空比可调,便于设计不同要求的驱动输出。
比较器的反相端接电阻器和可调电阻器,这样就可以根据探测器所需要的不同灵敏度来调节比较电位。
3.CO气体探测器
CO气体探测器是采用MGS1100一氧化碳传感器作为CO敏感元件,对CO响应的选择性好,并具有灵敏度高,稳定性好等特点。
在信号采集的同时加以温度补偿,最后利用MCU单片机进行实时控制和特性修正。
防火探测器电路由上述三种传感器组成,克服了环境因素的干扰。
单片机进行处理时可采用多循环检测,在达到了规定检测次数(如20次),并且每次均检测到了烟雾信号和CO气体信号,测量温度也超出报警温度上限时,MCU发出火灾报警信号,否则认为没有火灾发生。
(二)防盗探测器的设计
防盗探测器是由红外与微波探测器组成的双鉴探测器。
双鉴探测器工作时将探测到的红外和微波两种信号经过与非门处理后送单片机,即只有同时检测到两个探测器输出端口为高电平信号时,自动报警器才会响应盗情报警信号,否则不报警。
较之以往的微波或红外单信号探测器,其误报率明显下降,原理示意图如图4所示。
图4双鉴探测器原理示意图
实验发现,在红外探测器中,通过菲涅尔透镜的分割方式的改变可以降低由于小宠物引起的误报,从而弥补了微波探测器监视面积较大的弱点。
但红外探测器对环境温度的变化比较敏感,而微波探测器所检测的只是活动的目标,所以对于如果只是温度变化引起的干扰并不会被自动报警器响应。
通过这样双重的检测就进一步减小了外界干扰,降低了报警信号误报的发生率。
下面详细介绍本系统中红外与微波探测器电路的设计原理、特点以及实际的工作过程。
1.热释电红外线探测器
在自然界,任何高于绝对温度的物体都将产生红外光谱,不同温度的物体,其释放的红外能量的波长是不一样的,因此红外波长与温度的高低是相关的。
热释电红外线防盗探测器中的检测元件是BISS0001,该器件是CMOS数模混合专用集成电路,多用为红外专用芯片,它具有独立的高输入阻抗运算放大器,可与多种传感器匹配,进行信号预处理。
另外它还具有双向鉴幅器,可有效抑制干扰,其内部设有延迟时间定时器和封锁时间定时器。
2.微波防盗探测器
微波防盗探测器是由MOS场效应管C3355、电阻和电容组成的高频振荡电路,电路产生微波信号后经过人或物体反射和原信号产生频移,微小的频移信号经过放大处理后输出报警信号。
报警范围实测为7~8m,可有效地进行实时探测。
防盗探测器电路是由以上两种类型探测器组成,在单片机内部进行信号处理时,将探测到的红外和微波两种信号进行“与”运算,即只有同时检测到两个传感器端口信号时,主机才会发出盗情报警信号,否则不报警。
(三)主控单元电路设计
MCU微处理器对双音多频(DTMF)编、译码器的控制,使住宅通过电话网实现与相关部门之间的数据交换;微处理器对各传感器的信号检测和控制。
MCU通过对接口电路的读取,并向单位保卫科、110/119报警台单位电话机或个人传呼机发出呼叫信号,告之对方住宅被盗。
本系统与电话机并联,只在报警期间占用电话线路,报警结束后系统与电话线路脱离,不影响电话机的正常使用。
当探测器检测到意外情况后就发出报警电平信号到主机控制部分。
主机控制部分对该电平信号进行处理,然后控制双音多频拨号芯片向电话线路拨出双音多频信号(电话号码),与此同时控制语音芯片拨出事先录制好的语音信号到电话线路,实现语音报警,拨号完成后,模拟挂机。
(四)自动拨号报警电路设计
自动拨号报警电路如图5所示,系统使用MK8870型DTMF拨号专用芯片,该芯片原本是行列式按键输入芯片,即4条行线及4条列线组成16个按键,实践证明该芯片不但具有行列式键盘输入功能,而且与51系列单片机具有良好的接口性能。
图5自动拨号报警电路
如图5所示,系统利用89C51完成对拨号芯片的控制,其中R8,C5为复位元件,完成上电复位,JT1使用6MHz晶体。
这里用P1口的8根线完成对拨号芯片的控制。
电路中电话号码的拨出采用双音多频拨号方式。
电话号码的拨出是利用控制MK8870型DTMF拨号专用芯片的键盘行列输入端R1~R4和C1~C4来实现的。
首先要使相应的行线和列线接通一段时间,然后再断开一段时间,这样芯片便将双音多频信号送到电话交换机网络,实现电话拨号。
(五)语音报警电路设计
语音报警电路图如图6所示。
系统采用了语音芯片APR9600构成语音电路,该电路主要由语音电路、译码器和电子开关组成。
图6语音报警电路框图
语音电路APR9600采用模拟存储技术,噪音低,不怕断电,可以反复录放。
语音信息可以分8段存放,分别用8个按键控制,按下哪个键就可以录放哪一段而不影响其它段。
本系统中的语音信息分为2大类:
预警信息和报警信息,其中预警又分为温度偏高预警和烟雾过大预警,报警分为火警和盗警。
使用时,用户可以通过简单的按键操作,随时录制和播放任意一段。
当出现预警或报警时,单片机通过P2.2~P2.4控制电子开关实现按键操作,启动相应的录音段,放出相应的语音预、报警信息,并且可以根据需要循环播放,播放次数由用户自行设置。
(六)键盘接口及显示电路设计
该部分电路主要由4x4键盘、液晶显示器及其控制电路组成。
当用户通过键盘输入报警电话号码等数字信息时,该电路产生键盘中断信号,通过INTI输入端向单片机申请中断,在键盘处理程序中实现相应数字信息的显示、修改和存储。
本模块中,显示电路用LCD液晶显示屏TS12232D显示,由TS12232D构成的显示电路如图7所示。
图7显示电路
除以上电路外,系统还对忙音、回铃声检测电路进行了硬件设计。
忙音、回铃声检测电路主要是为实现可靠报警而设计。
系统采用忙音和回铃声的检测来判断对方是否摘机。
在电话号码拨出后,必须判断对方是否摘机,只有在确认对方已经摘机的情况下,才能发语音信息。
四、家用智能防火防盗系统的软件设计
(一)系统主程序设计
该系统有两种报警类型,即火灾报警和非法侵入(盗警)报警。
系统采用传感器电路检测人体的侵入和火灾的发生,一旦出现警情,传感器检测电路发出信号,向单片机申请中断。
单片机响应中断后,启动自动拨号电路,根据报警类型的不同拨打不同的电话号码,发送不同的报警信息。
主程序进行电话信号语音检测(忙音/回铃声/接通)、系统设置、模拟摘机、DTMF信号收发等工作。
主程序流程图如图8所示。
图8系统软件主程序流程图
(二)检测报警模块程序设计
检测报警模块程序工作过程如下:
(1)读取探测器的编号。
(2)判报警信号类型。
①火警。
显示“火警”,报警指示灯点亮,打开警笛,拨打电话号码,等到用户接通后放送警情语音“火警,这里是xx小区xx单元xx室发生警情,请马上救助”两遍,等待用户处理。
②盗警。
显示“盗警”,报警指示灯点亮,打开警笛,拨打电话号码,等到用户接通后放送警情语音“盗警,这里是xx小区xx单元xx室发生警情,请马上救助”两遍,等待用户处理。
③有毒气体。
显示“有毒气体”,报警指示灯点亮,打开警笛,拨打电话号码,等到用户接通后放送警情语音“有毒气体,这里是xx小区xx单元xx室发生警情,请马上救助”两遍,等待用户处理。
④其它警情。
显示“其它警情”,报警指示灯点亮,打开警笛,拨打电话号码,等到用户接通后放送警情语音“有警情,这里是xx小区xx单元xx室发生警情,请马上救助”两遍,等待用户处理。
(3)用户处理以上警情的操作和电话呼入处理程序中用户的操作相同。
(4)返回。
(三)拨号模块程序设计
MK8870在自动拨号应用里应将工作方式设置为突发方式,在此种情况下双音频信号持续和暂停时间为5lms,符合自动拨号要求。
将MK8870设置为突发模式的时候,需要进行如下步骤:
写控制寄存器A、写控制寄存器B、写发送数据寄存器、等待中断或读状态寄存器。
图9是拨号子程序流程图。
首先将MK8870设置为突发方式,然后判断是否为盗情,即7EH是否被置位,如果没有,则跳转到拨号管理中心电话号码部分;如果被置位,则拨打用户电话号码,最后,该程序返回。
图9拨号模块程序流程图
(四)语音模块程序设计
语音子程序流程图如图10所示。
单片机P2.1口由高电平变为低电平,触动APR9600的放音脚,放音开始,因为APR9600最长录音时间为20秒,所以,延时23秒后,单片机P2.1脚由低电平变为高电平,放音结束,然后进入下一次放音状态,直至三次放音结束,清除警情标志位7EH后,程序返回。
图10语音模块程序流程图
(五)按键模块程序设计
按键模块程序流程图如图11所示。
图11按键模块程序流程图
按键处理程序工作过程如下:
(1)进入按键处理程序后,根据用户按键的键值,进入相应的设置操作程序。
(2)电话号码设置
主机液晶屏和语音提示“电话号码设置”,扫描用户输入的数字并存储号码,同时在液晶屏上面显示“输入的电话号码”,如果用户长时间没有按键,结束本次操作,返回错误。
(3)录音设置
主机液晶屏和语音提示“录音”,录音指示灯亮,开启录音并且开始计时,计时时间显示在液晶屏上。
计时到10秒(ISD1110),结束录音,录音指示灯熄灭,然后延时一小段时间,再播放一遍刚才的录音,“嘟—嘟—”,返回正确。
(4)放音设置
主机液晶屏和语音提示“放音”,开启放音并且开始计时,计时时间显示在液晶屏上。
计时到10秒(ISD1110),结束放音,“嘟—嘟—”,返回正确。
(5)报警声音设置
主机液晶屏和语音提示“报警声音设置”,扫描键盘,如果用户输入数据超时,返回错误,否则将用户设置的报警声音参数设置为当前的报警声音参数。
存储设置的参数,“嘟—嘟—”,返回正确。
(6)应急操作(应急按键按下):
显示“应急报警”,报警指示灯亮;然后进入拨号程序。
(六)显示模块程序设计
显示模块程序流程图如图12所示。
图12显示模块程序流程图
显示模块程序设计如下:
(1)使用字模提取软件提取字模,字的大小为16×16,一个字符32个字节的数据。
(2)将字模数据加入显示数据数组中。
(3)构建一个一维数组,该数组包含了字符的字模数据第一个字节在显示数据数组中的位置。
(4)构建一个二维数组,该数组第一维数据为要显示的字符串的首位置,第二维数据为要显示的字符串的字符个数。
(5)在程序中通过二维数组的第二维数据确定要显示的字符串的字符个数,通过二维数组的第一维数据作为下标查找出要显示的字符数据第一个字节的位置,调用液晶屏驱动程序即可显示出相应的内容。
设计小结
本文设计的家用智能防火防盗报警系统为家庭安防提供了一条可行途径。
该系统利用多传感器检测,在防火防盗报警部分可设计成智能火灾和盗窃探测模式,从而提高系统的检出率和正确率,增进系统的可靠性。
此系统具有智能化、自动化特点,进一步提高了系统的可靠性,有很大发展潜力,因此,对智能防火防盗报警系统的推广具有十分重要的实际意义。
该防火防盗报警系统的设计主要用到了单片机技术、数字电路、模拟电路、汇编语言和C语言程序设计、传感器技术和嵌入式系统等方面的知识。
为了完成该毕业设计,我查阅大量文献资料,深入学习多方面的知识。
在实践过程中,我的动手设计、语言组织、文档撰写等方面的能力大大提高,视野大大开阔。
对于这样的整机系统,在今后的学习和工作中,我会多理论联系实践,多寻找机会参与设计,在设计中不断深入、摸索和总结,提高自己的实践能力。
参考文献
[1]杨拴科:
《模拟电子技术基础》,高等教育出版社2010年,第114-144页。
[2]李中发:
《数字电子技术》,中国水利水电出版社2011年,第50-60页。
[3]张友德:
《单片微型机原理》,复旦大学出版社2009年,第25-46页。
[4]李光飞:
《单片机设计实例指导》,北京航空航天大学出版社2010年,第100-120页。
[5]胡汉才:
《单片机原理及其接口技术》,清华大学出版社2011年,第55-63页。
[6]杨立民:
《单片机技术及应用》,西安电子科技大学出版社2010年,第49-54页。
[7]林毓梁:
《单片机原理及应用》,机械工业出版社2010年,第20-28页。
[8]及力:
《ProtelDXP2004SP2实用设计教程》,电子工业出版社2010年,第90-113页。
[9]张建伟等:
《微机原理与接口技术》,西北大学出版社2011年,第83-98页。
[10]张毅坤:
《单片微型计算机原理及应用》,西安电子科技大学出版社2010年,第55-65页。
附录一:
程序代码清单
ORG0000H;开机复位PC指向0000H地址
ORG001BH;定时器T1入口
LJMPWT0;转入定时器T1中断程序
ORG30H;这条语句有何作用?
指定下一条程序的地址为30H
MAIN:
MOVSP,#50H;堆栈从50H开始
MOV20H,#0;20H清零
MOV24H,#0;24H清零
MOVP3,#0;P3口输出低电平
MOVP1,#0;P1口输出低电平(红外线发射二极管工作)
MOVTH0,#6;
MOVTL0,#6;
MOVTMOD,#02H;TO工作方式为2
SETBEA;打开总中断
SETBET0;开T0中断
SETBTR0;T0开始计数
M:
MOVP1,#00H;P1口输出低电平(以上程序所做的是开机初始化,程序进行基本设置)
MOVA,P3;将P3口的值赋予A
ANLA,#7FH;将A的值和01111111作与运算,并且结果保留在A中
CJNEA,#7FH,W37;如果A不等于01111111那么跳转到W37(也就是说当P3口输入高电平时报警
AJMPM;返回到M处(处于监控等待状态)
WT0:
PUSHACC;将累加器A中的数值压入堆栈
PUSHPSW;将程序状态字PSW压入堆栈(保护现场)
INC22H;将22H中的值加1
MOVA,22H;将22H中的值赋予A
CJNEA,#200,TORETI;如果A中的值不等于200那么跳转到TORETI(退出中断)(也就是说中断200次后往下执行)
MOV22H,#0;将22H中的数值清零
INC23H;将23H中的值加1
MOVA,23H;将23H中的值赋予A
CJNEA,#10,TORETI;1s如果A中的值不等于10那么跳转到TORETI(退出中断)(在中断10次,那么只有中断200x10=2000次以后程序才能往下执行)
MOV23H,#0;将23H中的数值清零
JNB00H,WBJ;00H应该是位地址20H.0如果20H.0的值为0那么跳转到WBJ
TORETI:
POPPSW;恢复PSW中的数值
POPACC;恢复A中的数值(恢复现场)
RETI;退出中断
WBJ:
CPLP3.7;对引脚P3.7状态取反
AJMPTORETI;跳转到TORETI(退出中断)
W37:
INC24H;将24H中的值加1
MOVA,24H;将24H中的值赋予A
CJNEA,#10,M;如果A中的值不等于10那么跳转到M(增加检测时间,如果重复10次检测到P3口输入高电平时程序往下执行)
SETB00H;对位地址20H.0置1
AJMPM;跳转到M
END;结束