摘要:介绍了以AT89C5l单片机作为控制核心的自动拨号、检测和放音的智能语音拨号报警系统。重点论述了自动拨号和语音部分的电路结构、工作原理和软件设计方法。
关键词:单片机自动拨号语音芯片信号音检测
随着人们生活水平的提高和安防意识的增强,急需开发面向大众、价格低廉、运行可靠的自动报警系统。鉴于住宅电话和移动通信设备的普及,以及电话语音报警的快捷、有效及价格低廉等优点,公共通信网成了报警系统的最佳传输媒介。本文介绍的报警系统就是在此基础上发展起来的一种智能语音拨号报警系统,该系统可广泛用于各种对安防要求较高的场合,如智能楼宇、商场、银行和工厂等。
电话自动报警的主要功能为:用户根据需要把自己的手机号码、办公室电话或报警监控中心的电话预存入报警主机。报警主机不断地对所监控的设备(门禁、烟雾探测器、窗磁、摄像头等)状况进行巡检,当有不安全情况(如火灾、非法入室、视频丢失等)发生时,报警主机拨通预先存入的电话号码,播放相应的警情语音。若电话占线或者无人接听,可拨下一个预存的电话号码,如果所有预存的电话都占线或者无人接听,则会自动把所有的预存电话重拨一遍,保证了报警的有效性和可靠性。
1 系统组成和工作原理
系统组成框图如图l所示。采用AT89C51单片机作为控制核心,外接E2PROM用于存储电话号码、设置参数(定时布/撤防、联动、视频等)以及警情信息等。当AT89C51单片机实时巡检到新的警情信号(防区故障、视频丢失、主电断电或上位机死机)时,报警主机就会自动进行警情处理(声光报警、启动相应联动、记录警情以及拨号报警等)。拨号报警的工作原理如下:系统自动地控制摘/挂机电路模拟摘机,同时AT89C51单片机通过可编程并行接口8255将MT8880置为呼叫模式,检测是否有拨号音。若有拨号音,则将MT8880设为突发方式,并按用户预设的电话号码自动拨号。拨完电话号码以后立即检测对方是否摘机,一旦检测到对方摘机,就启动语音提示电路发送与警情相一致的语音信息,完成自动拨号报警。
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171259178.jpg)
2 硬件设计
2.1 警情采集电路
信号采集电路由16路防区输入信号采集电路和16路视频丢失检测采集电路组成。16路防区输入信号采集电路如图2所示。采集电路通过一片可编程并行接口芯片8255与AT89C51单片机的P0口接口,而16路防区输入信号则通过光电隔离后与8255的PA口和PB口相接。PA口和PB口均设为输入口,这16个输入口分别对应16路探测器的输入。系统通过采集8255的PA、PB口的数据来判断是否有警情产生。
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171300733.jpg)
16路视频丢失检测采集电路如图3所示。该电路首先通过一片16路模拟开关芯片CD4067进行视频通路选择,随后经过视频信号检测电路,最后再与AT89C5l单片机的P1.3口相接。系统首先将视频通路号送给模拟开关CD4067.然后将采集的数据送给Pl.3口,来判断视频是否丢失。
2.2 DTMF发送接收电路MT8880与AT89C51及语音电路的接口
MT8880是MITEL公司推出的专门用于处理DTNF信号的专用集成电路芯片,不仅具有接收和发送DTMF信号的自动拨号功能,还可以检测电话干线上拨号音、回铃音和忙音等信号音。适合与单片机接口,外围电路简单。
MT8880内部有五个寄存器,分别为接收数据寄存器、发送数据寄存器、收发控制寄存器CRA和CRB以及收发状态寄存器。在本设计中,由于仅采用发送数据寄存器、收发控制寄存器CRA和CRB发送DTMF信号实现自动拨号功能,因此在此仅介绍这三个寄存器。发送数据寄存器中的数据决定要发送的双音频信号的频率,因此只能向发送数据寄存器写入数据。两个收发控制寄存器占用同一个地址,因此根据CRA中的寄存器选择位的值决定是否对CRB进行操作。其接口电路如图4所示。
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171300866.jpg)
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171300720.jpg)
ISDl420语音芯片采用直接模拟存储技术,且录放音质极好,并有一定的混响效果;它的外围元件简单,仅需简单的阻、容器件即可组成简单的录、放音电路;无需后备电源,信息存储时间长,不需要专用的编程器及语音开发器;具有较强的选址能力,可把存储器分成160段来管理,形成最小的录放时间为125ms。其接口电路图如图4所示。
语音分段方法:地址输入端AO~A7由低位向高位排列,每位地址代表125ms的寻址,160个地址覆盖20s的语音范围(160×0.125s=20s),录音及放音功能均从设定的起始地址开始,录音结束由停止操作决定.芯片内部在该段的结束位置自动插入结束标志(EOM);而放音时遇到EOM标志即自动停止放音。在本设计中,因需要四段报警提示语音,因此在设计时均将每段语音设为5s,其起始地址分别为00000000B、00101000B、01010000B、01111000B,由这四段起始地址可以看出A7、A2、Al和AO均为0,因此将其接地。
3 软件设计
3.1 信号音的识别方法
系统在巡检到警情信号后就模拟摘机。为了识别模拟摘机后电话系统是否处于可拨号的状态、电话拨完号码后电话是否接通以及对方是否摘机接听电话等几种状态,系统必须进行信号音的识别。为了识别信号音,必须知道各种信号音的特性。各种信号音特性如下:
拨号音:450±25Hz连续蜂音;
忙音:O.35s断0.35s通的450±25Hz蜂音,音断周期为O.7s;
回铃音:4s断ls通的450±25Hz蜂音,音断周期为5s。
这些电话信号均是模拟信号,然而单片机是无法识别模拟信号的,故必须先将模拟信号转换为脉冲信号,然后再根据脉冲信号的脉冲个数进行识别。这些电话音频信号的脉冲个数可用下式计算:
N=tm/T
式中,N为每音段周期的脉冲个数;T为电话音频信号的音频周期,单位为s;tm为信号音断周期的通时间,单位为s。
在实际使用中,主要需要识别拨号音、忙音和回铃音。分析这三种信号的特性可以看出,在一定的计数时间内,其脉冲个数是不一样的。在设计之初,考虑采用5s为一个计数单位来判断这三种信号音,但通过实际的调试发现:当对方摘机时,要等待一段时间才能听到报警语音。通过反复研究及调试,最终采用2s计数判断拨号音,采用2.8s(即4个忙音周期)判断是否为忙音,若否则代表电话拨通了。随后采用ls为一个计数单元,采用计五次后的累加脉冲数来判断对方是否接听电话。若有,则放相应的报警提示语音;否则再计ls,然后计算最后5s内的脉冲数,再次判断对方是否摘机。如此反复。直到超过等待时间仍没有人接听电话就挂机。由于干扰和一些其他因素的存在,难免会有误判的现象而导致漏报警情。因此采取在所有预先设定的电话至少有一个拨通就只拨一遍.如果全部投拨通或者没人接听则把所有预存电话重拨一边,这样漏报报警的概率就非常低以致可忽略不计。
3.2 软件设置
自动拨号程序的流程图如图5所示。下面是自动拨号的部分程序(如需要完整的程序,可与作者联系)。
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171302291.jpg)
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171304661.jpg)
3.3 编程过程中应注意的几点
首先,MT8880的DTMF产生器是发送部分的主体,它产生全部十六种失真小、精度高的标准双音频信号,这些频率均由3.579545MHz晶体振荡器分频产生。电路由数字频率合成器、行/列可编程分频器、开关电容式D/A变换器组成。行和列单音正弦波经混合、滤波后产生双音频信号。通过DTMF编解码表把编码数据写入MT8880发送寄存器产生单独的fLOW和fHIGH,一旦编码错误就会导致拨号失败.故在编程过程中要十分小心。其编解码表见MT8880的Datasheet。
其次,在摘机后应延时一段时间再去判断摘机音,因为本系统采用机械继电器实现自动摘机,故应考虑继电器的响应时间。
最后,一个电话号码拨完后不能立即拨下一个电话号码,应保证挂机的最短有效时间以确保前一电话号码确实已挂机,否则拨下一个电话号码时会没有拨号音。
本系统配置灵活,可以有效、快速地应用于对安防要求比较高的场合。例如:对不需要监视视频丢失的场合,可以不配置视频监测盒;而对智能小区、医院等,可以通过RS485总线将一台DVR(Digital Video Recorder)主机、一套报警监控软件和多台报警主机组合到一起,构成一个网络型智能监控系统。
本报警系统具有价格低廉、操作简便、通讯速度快、可靠性高和误报率低的优点。