1引言
由于经济的快速发展,人们生活水平得到较大的提高,生活节奏也越来越快,为此家电遥控和家庭安全也为人们所需要和重视。以AT89C51单片机为核心通过电话进行电器遥控和报警装置主要解决这些问题。他的主要功能有:通过电话可以遥控16路电器通断,遥控路数可以根据需要进行扩展;可以实现电器调压调速控制,有密码设定,保密安全性好;有语言提示,避免盲目操作;可以取消已输入的操作命令;当单片机接收到家中天然气泄露、温度超限和失窃信号后会自动拨打预留电话并报告家中发生的情况。
2硬件电路设计
总体电路设计思路是:电话遥控报警器与家用电话采用并联方式,当有振铃信号时单片机开始记数,前10次铃声内若有人接电话,则遥控报警器被屏蔽,不影响正常接听电话,若10次铃声后无人接听,约定遥控报警器自动模拟挂机,并发出提示音要求用户输入密码,允许3次输入错误,并有2次提示输入错误重新输入,若第3次输入错误则自动挂机。密码输入确认无 误后,发出提示音,提示用户输入要求执行任务的电器代码,代码为3位数字加“#”字确认,前2位数字为电器代号,范围为1~16(假定控制电器为16个),第3位数为调压调速的级数,范围为1~4(档数根据需要确定),若电器无调压调速,则第3位数无效。若同一任务所输入的次数为偶数,表示取消任务。若2次按键的时间间隔小于100 ms,则第2次按键输入无效,以防止抖动。若前次按键后10 s无按键输入,默认为无任务输入,自动挂机。挂机后单片机把输入任务送对应输出口执行任务,并保持状态直到有新任务输入。
硬件电路主要包括震铃检测电路、模拟摘机和DTMF解调电路、调速电路、任务执行电路、3路传感器报警信号电路,以及语音电路部分。硬件电路框图如图1所示。
2.1振铃检测电路
电路如图2所示。电话线振铃信号为25 Hz,75~100 V。因此不能直接与IC电路连接,同时为了防雷击,输入端用1μF/160 V电容进行隔离。铃流声经全桥整流后再由光电耦合器4N25耦合并经40106整形后送89C51 T0计数器进行振铃次数记数,当T0记数为10次时,按约定为有任务输入,89C51输出模拟摘机信号使线路接通,同时单片机控制语音提示电路送入双音频DTMF解码电路。
2.2双音频解码DTMF电路
DTMF电路采用典型的MF8870芯片作双音频解码电路。当单片机发出模拟摘机信号后使线路接通,在提示音后输入密码,如MF8870,确认有信号输入后,CIO端(15脚)为“1”,更新输出锁存器,并将输入双音频信号解码为4位二进制数送输出锁存器D1~D4端,CIO端电平送EN端(10脚)允许输出。单片机首先进行密码核对,然后将MF8870送入的任务信号送RAM中存储,直到输入任务结束。
2.3语音提示及拨号电路
语音提示电路采用美国ISD公司语音芯片ISD25120,该芯片可录放120 s,由于采用“直接模拟量存储”(DAST)专利技术,信号无需经D/A,A/D转换等处理过程,失真小,音质好。片内含振荡器、话筒前置放大器、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及E2PROM陈列,外围电路简单,体积小,3 V单电源供电,耗电省,维持电流仅1μA。
用该芯片只播放预录好的语句,所以电路只用了放音功能,录/放模式P/R接高电平,节电方式为工作接地。时钟采用外时钟,ISD25120外时钟频率f=512 kHz。ISD25120共有10条地址线,要这样可以实现200 ms的信息分辨率,但由于我们只需要寻找每段录音起始地址,所以可以降低分辨率使用,这里把A3~A0接地。A9和A8决定A7~A0的意义,当A9和 A8有一个为“0”时,A7~A0表示为当前录放操作的起始地址,当A9和A8有一不为“0”时,A7~A0表示为不同的操作模式,在此A9和A8接地,表示A7~A0为地址数。当需要放音时,89C51使ISD25120片选端CE=“0”,同时给出A7~A0地址数,在CE的下降沿锁存,A9~A0具体设置如下:
这样由A7~A4四条地址线可以最大寻址数为16个,每段时间长短可以由设计者根据需要决定。录音段起始时间和此段起始地址数关系如下:
时间=某段起始地址数(十进制)×分辨率
不同芯片分辨率不同,具体可查阅有关手册。 ISD25120分辨率为200 ms,本装置1~7段为6 s,输入有关的提示语。第8段为预留电话号码,9~11段为15 s,用于拨号报警,12~16段共27 s备用。语音提示及拨号电路图如图3所示。
当89C51收到由天然气、温度和失窃报警器送来信号后,89C51采用将预录在ISD25120语音芯片中的双音频电话号码及报警语音播出的方式进行报警。由于DTMF双音多频数字信号和ISD语音芯片在电话和无线网络传输的语音信号频率范围相同,所以此方案可行。但要注意以下问题:贝尔电话DTMF信号标称误差是±1.5%,当电话晶体为3.579 45 MHz时,产生的音调误差范围为+0.74%~-0.54%。而大部分ISD器件内部振荡器在全电压和全温度范围内误差为2.25%,即:ISD器件误差大于DTMF标准误差,如图4所示。所以不能用ISD内部振荡器,而必须用外部晶体振荡输入信号。从图4可以看出,最坏录放音情况时,提供给ISD器件的外部时钟要求误差小于0.75%,他可以是TTL或CMOS电平。对于ISD25120采样速率为4 kHz,提供的时钟频率为512 kHz,单片机为626 MHz晶体,工作频率为1 MHz,外加二分频电路提供给ISD25120的频率为5 kHz,与要求的512 kHz很接近,使用中不会造成任何问题。这里要求频率变化误差要小,而并不要求非常准确的频率值。
2.4电器控制电路
任务输入后首先存放在存储器中,当任务输入结束后,软件首先删除输入偶次数的任务项,然后将任务送相应口线。若单片机口线够用,则可以直接由口线送外电路执行,软件只需进行任务口线状态取反即可。若单片口线不够用,则可以外加CD4514芯片进行4~16线解码的扩展,但每路需加双稳态电路保持,并进行电流放大,执行的器件一般采用继电器,继电器触头容量应根据用电器的功率大小决定,并留一定的余量。
2.5调速调压电路
调速调压电路执行器件选用双向可控硅,单片机根据任务送不同脉冲个数,则BT33驰张振荡器冲放电时间不同,使双向可控硅导通角大小不同而输出电压不同。
3软件设计
根据以上分析,软件主流程图如图5所示。
除主程序外,子程序包括6位密码核对子程序、(3位数+#)任务输入核对子程序、提示音子程序、报警子程序、任务排除偶次输入子程序、对方回铃声和忙音区分子程序以及10 ms,10 s,60 s延时子程序,编写程序时注意二次按键时间小于10 ms时第2次按键无效,以防止抖动。当上次按键后连续10 s无按键输入信号,则默认可以自动挂机。
报警拨号后对方回铃音和忙音的区别:按规定回铃音为1 s高电平4 s低电平方波信号,忙音为高电平和低电平均为0.35 s方波信号,回铃音和忙音呼叫时间60 s,60 s后自动挂机。当有报警信号送单片机时,通过软件模拟摘机,预留电话拨号输出后,在接到第一声回铃音或忙音时,定时器开始定时,计数器开始 计输入的回铃音或忙音的个数。然后判别在60 s内,若计数值>15个脉冲(这时无论60 s定时到否)则表示对方为忙音,应挂机,延时60 s后重拨号呼叫。若在60 s内计数<14个脉冲,则表示为回铃音。若在少于12个脉冲中间回铃音中断表示对方有人接听,可以播放报警信号对应的报警语音。若60 s内一直有回铃音,且定时到,表示对方无人接听,则挂机延时后重拨,直到电话报警完成。
结语
该装置是现代家庭中一项十分有用的技术,对装有无线控制装置的家庭,只需将执行任务部分改为无线遥控发射即可。随着可视电话的发展,安装一个微型摄像头,出差在外也可以对家中的情况一目了然。