基于DTMF的智能电话控制器.docx
《基于DTMF的智能电话控制器.docx》由会员分享,可在线阅读,更多相关《基于DTMF的智能电话控制器.docx(11页珍藏版)》请在冰豆网上搜索。
![基于DTMF的智能电话控制器.docx](https://file1.bdocx.com/fileroot1/2022-11/28/428b348e-dc3f-47a4-a5bb-c7d910b0105e/428b348e-dc3f-47a4-a5bb-c7d910b0105e1.gif)
基于DTMF的智能电话控制器
基于DTMF的智能电话控制器
作者:
佚名 来源:
本站原创 点击数:
78 更新时间:
2006-2-22 文章录入:
admin
摘要:
介绍一种基于DTMF(双音多频)信号和RS485的远程智能控制器。
它具有振铃检测和模拟摘机、DTMF信号解调、红外遥控编码自举学习和发射多路红外遥控信号的功能。
本文对该控制器的组成、硬件配置、软件设计、工作原理、功能以及技术性能进行了详细论述。
该控制器在远程控制的数据终端系统中使用后,证明其方便、可靠和有实用价值。
关键词:
DTMFRS485红外遥控MT8870
1概述
随着工业自动化水平的进一步提高,在许多无人看守的工业现场,希望能够对设备进行远程的控制和监测,以及对远程数据终端进行设置和数据采集。
电话的逐渐普及使得在工业现场安装电话成为可能。
根据这种情况,我们设计并制作了一种基于DTMF(DualToneMultipleFrequency)的多路电话控制器,只要将电话控制器并接在工业现场的电话线上,就可以通过它随着时随地用电话对设备进行开关控制、数据采集、远程设置等[1]。
另外,社会经济水平的不断提高已经开始促使家庭自动化,人们希望能够随时随地对家庭安全实行远程监控以及对家电实行远程控制。
由于电话线路是全国联网的,所以遥控距离可以跨省市。
该控制器采用单片机和语音芯片,可利用语音对于不同操作进行提示并可反馈受控方状态的信息。
2控制的组成及原理
2.1控制器的工作原理
整机电路如图1所示,包括:
振铃检测与模拟摘机电路,由MT8870等组成的解码电路,红外生成发射电路、八路开关量输入和八路开关量输出控制电路,语音控制和录放电路,由DS12887组成的时钟电路,RS232或RS485串行通信电路,外加键盘和液晶显示构成的红外信号自学习电路。
该控制器的工作原理:
当需要远程控制时,拨打相应的电话号码,振铃检测电路检测铃流信号。
振铃次数达到5次后(次数可以通过软件任意设定),单片机89C51控制实现电路自动摘机,并启动语音电路发出提示输入密码。
密码经接收电路接收并输入到单片机中进行核对,核对正确则提示输入控制命令键,单片机对命令进行分析判断,并根据命令要求完成相应的操作。
当输入“*”键后,自动实现电话挂机,从而完成一次远程控制。
摘机的30s内若不输入命令或密码,电路会自动挂机;同样,若输入按键超过8个键也自动挂机。
该控制器还可以通过RS485串行通信电路实现远程信息采集,控制若干开关量和具有红外遥控功能的设备;还可通过远程电话或计算机设置定时开机或关机等功能。
2.2硬件电路组成
2.2.1振铃检测、摘机电路
振铃检测电路是由光耦T521-1和74LS123构成的。
当有电话呼入时,25Hz、90V振铃信号由整流后光电隔离输出脉冲信号。
该脉冲输入到74LS123中,74LS123将小脉冲整形成大方波信号,送入单片机中计数。
当计数达到设定次数时,单片机控制输出高电平,使三极管导通,从而继电器吸合,完成模拟摘机动作。
由于语音信号和双音频信号电压远低于振铃信号电压,因此该电路不会引起误判。
振铃检测、摘机电路如图2所示。
2.2.2双音多频解调电路
MT8870是DTMF信号接收处理的专用芯片,其功能是将接收到的DTMA信号解码为4位二制码,由Q1~Q4直接输出。
模拟摘机以后,双音多频信号经过耦合隔离变压器耦合入MT8870输入脚。
该双音频信号先经MT8870内部的拨号音滤波器滤除拨号音信号后,再经前置放大器送入双音频滤波器,将双音频信号按高、低频信号分开,又经高、低频滤波器、幅度检测器送入译码电路,最后从MT8870的数据输出端输出相应的编码。
为了获取有效的数据,MT8870的STD接AT89C51的INT0。
当STD电平由低变高,经AT89C51检测后通过P1口总线接收有效拨号键值码。
双音多频解调电路如图3所示。
2.2.3语音控制与语音录放电路
语音控制与语音录放电路如图4所示,采用ISD2590芯片作数字录音器件。
录放时间可达90s,可以连续录放也可以通过地址线A0~A9选择分段录放。
语音芯片ISD2590的片选输入端CE为低脉冲时启动放音周期。
放音不随CE电平的返高而结束。
CE信号的下降沿启动录音周期。
PD脚为高时进入低功耗状态。
P/R输入端为高电平时选定放音操作,低电平时选定录音操作。
相应语音段的播放由软件来实现。
ISD2590的SP+、SP-端的信号送至音频放大电路LM386进行放大,再经隔离变压器耦合至电话回路,用户可以从电话里听到系统控制语音芯片发出的提示,以进行相应的操作。
2.2.4红外发射电路
由时基电路555构成产生38.5kHz脉冲振荡电路,用GAL16V8逻辑阵列器件实现输出通路选择并叠加输出38.5kHz载波信号作控制输出,经八路驱动器2803驱动后发射出去。
单片机89C51的P1.4、P1.5、P1.6作为GAL16V8的三个通道选择输入,P1.7作为使能控制。
当P1.7为高电平时,禁止输出;当P1.7为低电平时,允许输出。
红外脉冲串宽度和间隔由89C51单片机的定时器T0控制。
为提高抗干扰能力和进行可靠的通信,有些遥控器在发送二进制编码前要插入各种各样的引导码,以便接收器容易识别。
为了区分不同类型的遥控器,还需要发送地址码和校验码。
另外,不同遥控器所发送的码长也不相同。
红外发射电路如图5所示。
2.2.5其它电路
控制器还增加了实时时钟电路DS12887,可给系统提供标准空间。
同时控制器具备定时控制功能。
控制器还可通过RS485远程通信接口与上位计算机进行通信,可设置定时时间、不同类型的红外信号编码等,邓可用计算机对控制器发出命令实现远程控制和读取采集的信息。
3软件设计
3.189C51A的程序
(1)振铃检测和模拟摘机程序
根据软件设定的振铃呼叫次数,进行检测比较。
当到达设定值时,启动摘机和语音提示。
(2)DTMF接收和命令解释程序
这段程序主要是模拟摘机后,单片机接收由MT8870输出的数据,并判断是否结束。
输入结束后,分析所得到的数据和执行相应的操作。
(3)串行通信程序
主要接收上位机的命令和执行相应操作。
(4)语音录放和控制程序。
3.289C51B的程序
(1)红外接收程序
用INT0作为输入引脚,当有下降沿时产生中断,启动定时器T0开始计时。
当INT0由低到高时,停止计时,读计数值并存入存储器后再启动定时。
(2)自学习红外编码处理分析程序
根据存储器中存放红外信号的高电平和低电平的时间值,判断是否有引导码。
若有,找出引脚码的高电平和低电平的时间间隔值。
通过比较,计算机信息码元“0”和“1”的时间间隔t、t0、t1,再找出地址码、信息码并存入存储器。
(3)双单片机并行通信程序
2个单片机之间通过INT1产生中断,读取数据。
并行通信格式为:
引导码,字节数N,命令码,数据1,数据2……数据N-2,校验码。
(4)键盘扫描和液晶显示程序
(5)红外发射程序
红外输出信号的实现程序:
根据所要控制的命令,选择相应的通道后,将遥控控制码从EEPROM中取出送入移位缓冲区,判断是否需要引导码。
而后移位遥控控制码,当移位为“1”时,先使P1.4为高,时间间隔为t,然后再使P1.4为低,时间间隔为t1。
发送多少个“1”和“0”是根据遥控控制码的长短而定的;何时发出“1”和“0”,由地址码和控制码来决定。
结束语
本系统具有很强的适应性,可以远程对工业现场的设备、各类家用电器进行控制,并且在安装时不需对已有的工业现场或住宅的布线作任何改动,安装和维护方便,成本低,因而具有较高的实用价值。
除此以外,本系统的操作方便简单,用户通过电话机(无论是固定电话还是移动电话),就可以输入精简的指令和修改密码;还可以根据语音提示进行操作,所以该系统具有较高的推广应用价值。
数字存储式自动应答录音系统
哈尔滨工业大学电子与通信工程(150001)尹雪永张晔
随着电子技术特别是数字技术的迅猛发展,电脑自动应答、数字点歌、自动音频服务、自动应答录音电话等各种自动答录系统在越来越多的场合发挥着重要的作用。
这些技术极大地方便了人们的工作和生活,提高了效率。
本文介绍以数字存储方式设计实现的一种简单的自动应答录音系统。
该系统主要采用ISD2590语音芯片进行数字录音,其特点是:
音质好,且可随时更改主人留言信息。
另外该系统利用单片机控制,具有一定程度的智能化及可扩充性。
1系统原理
数字存储式自动应答录音系统的原理如图1所示,其核心器件是单片机。
利用单片机检测键盘、摘/挂机、铃流等输入信号,并相应地控制和实现双音多频(DTMF)信号的发送、语音芯片的录放音等功能。
在电源方面,振铃电路和通话电路由电话线上的直流馈电直接提取,其它电路用外电源(5V)供电。
系统分为硬件和软件两部分。
2硬件设计
整个电路按功能主要分成两大部分:
语音收发电路和录音部分。
2.1语音收发电路的实现原理
语音收发部分的内部组成如图2所示。
要求可传送的语音信号在300Hz~3400Hz之间。
语音收发电路主要包括三大部分:
振铃电路、通话电路和发码电路。
其工作过程为:
平时通话电路和发码电路同电话线断开;当振铃信号到达时,振铃电路工作,促使蜂鸣器发声;摘机后,即通过转换开关使通话电路和发码电路同电话线接通,交换机检测后立即停止发送振铃信号,而转接双方的话音信号,通过通话电路实现通话。
若欲向外输出话音信号,首先摘机动作使发码电路与电话线接通,交换机检测到即送来拨号音;然后交换机负责把呼叫方拨发的DTMF信号送给被叫方,使被叫方电话振铃。
振铃电路主要用SGS公司的LS1240芯片,通话电路用TEA1061实现,发码电路使用可与单片机接口的HT9200A芯片,可实现DTMF数据的发送,且容易对其进行软件控制。
另外,考虑到后面的设计需自动摘机转换开关用继电器实现以利于单片机控制。
2.2录音功能的实现
2.2.1ISD2590芯片
录音时主要用ISD2590芯片,它是美国ISD公司的专利产品,具有音质自然、使用方便、单片存储、反复录放、低功耗、抗断电等特点。
该芯片采用模拟数据直接在半导体存储器中存储的技术,不需经过A/D或D/A转换。
因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。
片内信息可保存100年(无需后备电源),存储单元可反复录音十万次。
(1)芯片的电路特性
·手动操作/微控制器控制兼容;
·多段信息处理,可分1~600段;
·输入采样频率5.3kHz;
·典型带宽2.3kHz;
·外部时钟频率1024.0kHz。
(2)部分引脚描述
·节电控制(PD)
本端拉高使芯片停止工作,进入不耗电的省电状态。
芯片发生溢出,即OVF端变低后,要将本端短暂变高复位芯片,才能使之再次工作。
·片选(CE)
本端变低后(而且PD为低),允许进行录放操作。
芯片在本端的下降沿锁存地址线和P/R端的状态。
·录放模式(P/R)
本端在CE的下降沿锁存。
高电平选择放音,低电平选择录音。
录音时,由地址端提供起始地址,录音持续到CE或PD变高,或内存溢出。
如果CE是前一种情况,芯片自动在录音结束处写入EOM标志。
放音时,由地址端提供起始地址,放音持续到EOM标志。
如果CE一直为低,或芯片工作在某些操作模式,放音会忽略EOM,继续进行。
·信息结尾标志输出端(EOM)
信息何时结束在录音时进行设定。
只要CE端上升沿到来,录音就停止,此时ISD芯片会在内部一个独立的EEPROM单元内设置一个信息结束标志EOM。
当由CE端脉冲触发放音时,放音持续到EOM位为止。
ISD芯片存储阵列的每一行都可以独立寻址,每一行中均匀地布置4个EOM定位点,因此芯片共有2400个定位点(4×600=2400)。
例如ISD2590采样频率为5.3kHz,每行的寻址时间为160ms,则EOM的分辨率为40ms。
这样,从信息结束到EOM信号输出的最大延时是40ms。
EOM信号为负脉冲,脉宽为20ms。
上升沿实际上标志信息的结束,因此语音在EOM处于低电平时仍继续从芯片输出,而在上升沿时停止。
·地址/模式输入端(Ax/Mx)
地址端有两个作用,取决于最高两位(A8、A9)的状态。
当最高两位中至少有一个为0时,所有输入均解释为地址位,作为当前录放操作的起始地址。
当这两位全部为1时,地址端就作为工作模式选择端(高电平有效)。
因此操作模式和直接寻址是相互排斥的(具体的操作模式可参考有关资料)。
地址端只作输入,不输出操作过程中的内部地址信息。
地址在CE的下降沿锁存。
·话筒前置放大器输出端(ANAOUT)
这个输出经电容耦合到模拟输入(ANAIN)脚。
前置电压增益取决于AGC端电平。
·模拟量放大器信号输入端(ANAIN)
本端为芯片录音信号输入端。
它接到输入阻抗约为2.7kΩ的固定增益放大器。
对话筒输入来说,ANAOUT端应通过外接电容连至本端。
该电容和本端的3kΩ输入阻抗给出了芯片频带的附加低端截止频率。
其他音源可通过交流耦合直接连至本端(绕过了ISD的前置)。
·话筒输入信号端(MIC)
本端用于放大1~20mV的信号,它是增益可控的跨导放大器,输入阻抗10kΩ,最大增益24dB。
一般驻极体话筒输出的电平足够驱动该放大器。
由于输入阻抗已知,频率响应的下限由音频信号源和输入耦合电容决定。
对于ISD2590驻极体话筒选用0.1μF的耦合电容,它和本端的10kΩ输入阻抗决定了芯片频带和低频截止点。
芯片上的AGC电路控制前置放大器的增益,使增益在0~20dB之间变化,以维持合适的输入电平。
·话筒参考端(MICREF)
该端是前置放大器的反向输入端,当以差分形式连接话筒时,可抵消噪声,提高共模抑制比。
这个输入端如果不用,必须悬空。
2.2.2录间部分的电路原理
录音部分的电路如图3所示。
(1)单片机除了要控制ISO2590的CE、P/R、PD和EOM4个控制端,还要控制地址端的高4位(A9~A6),以使信息的分辨率最小为9.6s。
(2)图3中的继电器开关J1-2可以控制芯片的录音方式:
当如图3所示连接开关,芯片从MIC录音;当断开J1-2,语音信号从20脚ANAIN录入芯片,MIC不起作用。
3软件设计
3.1主程序
先扫描键盘(采用非编码键盘),若所按键的键值小于或等于0CH,表示要发码,转入发码(SENDCODE)程序。
这些键共包括:
0~9、和#键。
若键值大于0CH,则表示是功能控制键,依次判断是哪个键,然后转入相应子程序。
这里功能键共包括:
ON/OFF、PLAY、READY、RECORD。
流程图如图4所示。
3.2键盘扫描子程序
本程序采用非编码键盘,单片机必须对所有按键进行监视。
一旦发现有键按下,单片机应通过程序加以识别,找出它的行列值,并求出它的键值,然后转入相应的处理程序,实现该键功能。
3.3ON/OFF键子程序
ON/OFF键是摘挂机控制键,它对应的键值是10H。
当有振铃信号输入或欲输出话音时,要将通话电路与电话线接通。
此时可以按下ON/OFF键,单片机检测到此键便控制继电器JK1(使P1.4取反)完成此要求。
3.4RECORD键子程序
RECORD键是录主人留言信息控制键,它对应的键值是0DH。
主人要把自己不在家的留言信息(例如:
"您好,这是××的自动留言机,主人不在家,请留言,留言时间是80s")。
预先录入ISD2590芯片中,以便需要时可以随时调用。
在这里留有9s的时间用来录这段话。
具体操作是:
先按下RECORD键,程序检测到此键后,便开始录主人留言信息并启动单片机的T0中断定时。
9s后自动停止。
由于对ISD2590进行直接寻址时,信息的最小分辨率是150ms,所以将A0~A5都接地,将A6~A9连到单片机输出端。
这样可以使信息的最小分辨率变为9.6s(150ms×26=9.6s)。
利用单片机的T0中断定时器从ISD的初始地址(即A6~A9都为0)开始定时9s,并把这段时间留作主人留言区(剩下大约0.6s不用)。
把接下来的80s用来录对方留言信息。
3.5READY键子程序
READY键是准备实现自动留言功能控制键,它对应的键值是0EH。
当主人出门前,预先按下此键等待。
当有振铃信号输入时,振铃检测电路检测到振铃响了4次后,便发给单片机一请求信号。
单片机响应后,首先将通话电路与电话线接通(模拟摘机),然后将主人留言信息发给呼叫方,发送完毕后马上准备进行录音。
本程序留有80s的时间录对方留言信息每次录音都从上次录音结束处开始到此次对方录音完毕并挂机为止,循环录制(自动覆盖最前面信息),每次录音完毕自动挂机。
主人回家后,可以按下复位键,再进行其他的操作(比如播放留言信息)。
流程图如图5所示。
3.6PLAY键子程序
PLAY键是播放留言控制键,它对应的键值是0FH。
当主人要听自己留言信息或对方留言信息时可以按下此键,这时便开始播放第一段信息主人留言;若不想听此段信息,可以不等其播放完,再按一下PLAY键,便从第二段开始播放对方留言;若再按此键,便重新播放第一段信息;只要按的不是PLAY键,就跳出此子程序,ISD2590停止播放。
流程图如图6所示。
本文设计实现了一种数字芯片存储式自动答录系统。
该系统具有实用性强、稳定性高等诸多优点,适合家庭和商业两用,且在功能上可以扩展。
(1)若想录多方留言信息,可以将这80s的时间细分成多段,每段多长时间预先设定好。
也可在电路中加入摘挂机检测电路,当对方挂机时自动停止录音。
这种情况下每段录音时间不固定。
(2)此电路还可以扩展,加一些其他功能,例如:
·温度报警功能。
只要将温度传感器输入端连至单片机外部中断脚,当温度达到一定值时,便进入中断,单片机控制语音收发电路自动拨号(例如拨119),并告知对方这里有火灾。
·自动转接分机。
可以将语音芯片再留出一小部分用来存储转接的语音提示信息(例如:
请拨分机号,1为××处,2为××处),然后电路判定对方发来的DTMF码并通过软件和继电器将对方自动转接到相应的分机上。