利用公用电话网进行远程控制家用电器和拨号报警,主要解决的问题是如何利用电话线传递控制信息以及如何对信息进行处理、加工。使用Modem与计算机的结合,可以实现控制信息的传送问题,而且控制信息可以非常复杂和丰富,但必须在控制方和被控方设置一台计算机Modem,费用较高。如果在被控制方操作简单,只需较少命令即可实现控制的情况下,直接使用电话机上的双音多频信号或其组合,就足够对远程被控制方进行有效的控制。
1 系统原理与组成
电话远程控制系统主要完成的功能是对电话双音多频(DTMF,double tone multiple frequency)信号进行解码,并自动驱动被控电器设备进行指定操作,同时用户可对被控设备的工作状态进行查询,以及当有人非法进入室内时通过拨预置的电话号码进行远程预警。由于本系统是利用电话进行远程控制,所以系统必须能识别电话线上的振铃信号,从而实现自动摘机;同时,本系统一般在无人值守的情况下工作,所以必须能自动摘机、挂机,且在用户操作完毕忘记挂机时,必须能自动复位及关机,为了安全起见还有必要增加密码校验的功能;要进行工作查询就必须有语音的提示和反馈,这样的系统才基本上合乎要求。
基于以上要求,此系统主要设置了系统开启关闭模块,系统模拟摘、挂机模块,语音模块,监控模块 ,DTMF收发模块,控制模块,被控模块,如图1所示。现对其分述如下。
1.1 系统开启/关闭模块
本系统有多种开启方式:振铃启动,报警启动,手动启动,如图2所示。
本系统的关机由单片机控制时,单片机发出一个高电平信号后,三极管饱合,继电器K常开端闭合,使可控硅的K和A短路。单片机再发出一个低电平信号,三极管截击,继电器常开端打开,使可控硅Q的K和A两端开路,从而使可控硅进入关闭状态,切断电源使系统关闭。当由手动控制时,打开开关三极管截止,继电器常开端打开,系统断电,从而关闭系统。
1.2 模拟摘挂机模块
当单片机发出摘机信号时三极管饱和,继电器的常开端闭合,电话线两端的电阻降至300 Ω左右,从而实现模拟摘机。当单片机发出挂机信号时三极管截止,继电器常开端打开,从而实现模拟挂机。
1.3 语音模块
本模块采用美国ISD公司的新品ISD4004系列的录放芯片,与单片机构成。该芯片声音录放采用了CchipCorder专利技术,即无需A/D转换和压缩就可以直接储存,没有A/D转换误差,在一个记录位(BIT)可存储250级声音信号,相当于通常的A/D记录的8倍。片内集成了晶体震荡器、麦克前置放大器、自动增益控制、抗混迭滤波器、平滑滤波器等,只需很少的外围器件,就可以构成一个完整的声音录放系统。
1.4 监控模块
(1)模块概述
本模块采用EEP型热释电式红外传感器。其原理如下:钛酸铅陶瓷具有高热电系数和温度稳定性,它能检测红外线。传感器密封在TO-5壳体内,热释组件和场效应管装在一起,它能输出与红外辐射强度成比例的电压。
(2)监控报警的实现
在家中无人时,当单片机接收到来自监控系统的报警信息时。P3.0口置高电平,三极管T1饱和,继电器J动作,实现模拟摘机。然后由可信音检测电路确认为拨号音后,由P0 口发指令,拨号芯片MT8880将存储的报警号码变成双音多频(DTMF)信号,反馈入电话线。拨号后,在完成忙音、回铃及对方摘机检测后,启动语音提示电路,向线路发出报警语音信号。如未拨通再次拨号。
1.5 DTMF收发模块
(1)模块概述
本模块由MT8880与单片机组成。
MT8880是一个带有呼叫处理滤波器(call progress filter)的单片DTMF收发器,它采用MITEL公司的ISO2-CMOS工艺制造,功耗低,可靠性高。MT8880中的DTMF收号器是基于单片收号器MT8870工业标准,能接收全部16个DIMF信号,DTMF发送器采用开关电容D/A变换器,信号失真小、精度高,定时精确。MT8880有两种工作模式:DTMF模式和呼叫处理(CP)模式。当选择了呼叫处理模式时,MT8880就用于检测电话网上电话呼叫过程中表示不同进程的信号音(主要是拨号音,拨号音的标准频率为350 Hz或440 Hz),可以进行拨号音识别。这是目前其他DTMF芯片所不具备的,这样便可以省去一套复杂的拨号音识别电路。
(2)MT8880简介(如图3所示)
IN+:运放输入;IN-:运放输入;
GS:Gain Select,运放输出端。用于输入信号的增益高速;
Vref:参考电压;
Vss:电源负极;
OSC1:DTMF时钟/振荡器输入,采用3.579 545 MHz的时钟;
OSC2:时钟输出;
R/W:读写控制;
CS:片选;
RS0:寄存器选择;
& 2:系统时钟输入,TTL电平;
IRQ / CP:中断请求/呼叫处理,向MCU的中断申请。当选择了呼叫处理模式时,输入信号线上有呼叫信号时输出与之相应的方波信号;
DO~D3:数据线;
Est:Early steering output,滞后前输出。当检测到有效音频对时,(也称信号条件Signal condition ),就变为高电平,信号条件不满足时又立刻返回低电平。此引脚上为高电平不一定表示有DTMF信号,话音信号也会偶然产生有效音频对。
St/Gt:Steering Output/ Guard Time output,滞后输出/保护后输出。当电压高于VTST 时,(参见收发工作时序图)时就保存检测到的音频对,同时更新输出锁存器的内容。当电压低于VTST时,芯片就可以重新接收新的音频,对Gt的输出对滞后时间常数(steering timeconstant)有影响,它的状态是Est和加到St的电压的函数。
VDD:电源正极。
(3)信号音判断的实现
信号音判断的原理是:由于电话系统信号音的拨号音。回铃音和忙音的频率均为425~475 Hz的正弦波,只是断续比不同且在时间上有明显的差异(拨号音连续信号:忙音为0.35 s通,0.35 s断,回铃声为1 s通,4 s断)。要判断信号音,首先应将处理DTMF信号的MT8880芯片设置为呼叫处理模式,当选择呼叫处理模式时,MT8880就不能用于检测DTMF信号了。MT8880的呼叫处理滤波器是一个带通滤波器,通频带为300 ~510 Hz,当信号输入端有信号音输入时,如果MT8880工作在CP模式,在IRQ/CP就输出一高电平。使电话呼叫过程中的各种信号音经MT8880滤波,限幅后得到方波,并由MT8880的IRQ输出。然后对MT8880输出的IRQ信号计数5 s,拨号音的计数上限为(450+25)*5=2375,拨号音的计数下限为(450-25)*5=2175。同理,忙音的计数范围为1041~1212,回铃音的计数范围为425~475,无信号的计数应为0。
在实际编程中,考虑到计数的误差,以及简化程序,因此采用不同信号音相邻计数界限的中间值来区分不同的信号音,计数值选用2n最后设定计数值大于1792为拨号音,在1024~1791之间为忙音,在256~1023之间为无信号音。
1.6 控制模块
本系统为了提高可靠性,降低成本,采用了现在已广泛使用的
AT89C51单片机。其片内集成了8 kB的FLASH,无需外接存储器,使用方便。该芯片兼容8051的指令,易于编程,且功能强大。在硬件及程序设计上,利用P0端口控制MT8880芯片,其中P0.0~P0.3为数据输入输出位,P0.4~P0.7为MT8880的命令字输入位;利用P1端口中的5位来控制ISD4004芯片;利用P2端口控制家电设备;利用P3端口中的3位来控制系统的开启,摘挂电话及标志位的设定。
1.7 被控模块
家电大多使用220 V交流电,属于强电电路。所以使用继电器来开关家电。芯片不能直接驱动继电器,因此在集成电路芯片与继电器之间必须设置一个驱动继电器的电路。本系统的所有继电器都利用三极管的截止与饱和两个状态,来关闭或打开继电器开关。
2 系统软件设计
本系统的软件设计采用模块化设计思想,其程序流程如图4所示。
系统的DTMF收发程序说明如下:
接收程序:MOVR1,#0
MOVR0,#10H
LOOP1:MOVA,#0FFH
MOVP0,A
SETBP0.7
SETBP0.4
CLRP0.5
SETBP0.6
MOVA,P0; 读 8880 状态寄存器
JNBACC.2, LOOP1
CLRP0.4
MOVA,P0; 读 8880 接收数据寄存器
ANLA,#0FH; 屏蔽高四位
MOV@R0,A
INCR0
INCR1
CJNER1,#07H,LOOP1
发码程序:MOVR0,#10H
MOVR1,#7
MOVA,#9DH;写 8880CRA
MOVP0,A
MOVA,#90H
MOVP0,A;写 8880CRB,8880模式2为TONE,DTMF,IRQ,BURST
LOOP2:MOVA,@R0
ORLA,#0F0H
ANLA,#8FH
MOVP0,A; 发送数据
MOVA,#0FFH
MOVP0,A
SETBP0.7
SETBP0.4
CLRP0.5
SETBP0.6
LOOP3:MOVA,P0;读8880状态寄存器
JNBACC.1,LOOP3
INCR0
DJNZR1,LOOP2
3 结语
MT8880构成的智能通讯系统,具有通讯速度快,可靠性高和误码率低的优点。该系统自运行以来,其工作正常,性能稳定,通讯可靠。