数字存储式自动应答录音系统_消费类电子论文
关键词:单片机 isd2590芯片 录音 双音多频(dtmf)
随着电子技术特别是数字技术的迅猛发展,电脑自动应答、数字点歌、自动音频服务、自动应答录音电话等各种自动答录系统在越来越多的场合发挥着重要的作用。这些技术极大地方便了人们的工作和生活,提高了效率。本文介绍以数字存储方式设计实现的一种简单的自动应答录音系统。该系统主要采用isd2590语音芯片进行数字录音,其特点是:音质好,且可随时更改主人留言。另外该系统利用单片机控制,具有一定程度的智能化及可扩充性。
1 系统原理
数字存储式自动应答录音系统的原理如图1所示,其核心器件是单片机。利用单片机检测键盘、摘/挂机、铃流等输入信号,并相应地控制和实现双音多频(dtmf)信号的发送、语音芯片的录放音等功能。
在电源方面,振铃电路和通话电路由电话线上的直流馈电直接提取,其它电路用外电源(5v)供电。
系统分为硬件和软件两部分。
2 硬件设计
整个电路按功能主要分成两大部分:语音收发电路和录音部分。
2.1 语音收发电路的实现原理
语音收发部分的内部组成如图2所示。要求可传送的语音信号在300hz~3400hz之间。
语音收发电路主要包括三大部分:振铃电路、通话电路和发码电路。其工作过程为:平时通话电路和发码电路同电话线断开;当振铃信号到达时,振铃电路工作,促使蜂鸣器发声;摘机后,即通过转换开关使通话电路和发码电话线接通,交换机检测后立即停止发送振铃信号,而转接双方的话音信号,通过通话电路实现通话。若欲向外输出话音信号,首先摘机动作使发码电路与电话线接通,交换机检测到即送到拨号音;然后交换机负责把呼叫方拨发的dtmf信号送给被叫方,使被叫方电话振铃。
振铃电路主要用sgs公司的ls1240芯片,通话电路用tea1061实现,发码电路使用可单片机接口的ht9200a芯片,可实现dtmf数据的发送,且容易对其进行软件控制。
另外,考虑到后面的设计需自动摘机,转换开关用继电器实现,以利于单片机控制。
2.2 录音功能的实现
2.2.1 isd2590芯片
录音时主要用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的下降沿锁存。
·话筒前置放大器输出端(ana out)
这个输出经电容耦合到模拟输入(ana in)脚。前置电压增益取决于agc端电平。
·模拟量放大器信号输入端(ana in)
本端为芯片录音信号输入端。它接到输入阻抗约为2.7kΩ的固定增益放大器。对话筒输入来说,ana out端应通过外接电容连至本端。该电容和本端的3kΩ输入阻抗给出了芯片频带的附加低端截止频率。其他音源可通过交流耦合直接连接至本端(绕过了isd的前置)。
·话筒输入信号端(mic)
本端用于放大1~20mv的信号,它是增益可控的跨导放大器,输入阻抗10kΩ,最大增益24db。一般驻极体话筒输出的电平足够驱动该放大器。由于输入阻抗已知,频率响应的下限由音频信号源和输入耦合电容决定。对于isd2590,驻极体话筒选用0.1μf的耦俣电容,它和本端的10kΩ输入阻抗决定了芯片频带和低频截止点。
芯片上的agc电路控制前置放大器的增益,使增益在0~20db之间变化,以维持合适的输入电平。
·话筒参考端(mic ref)
该端是前置放大器的反向输入端,当以差分形式连接话筒时,可抵消噪声,提高共模抑制比。这个输入端如果不用,必须悬空。
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脚(ana in)录入芯片,mic不起作用。
3 软件设计
3.1 主程序
先扫描键盘(采用非编码键盘),若所按键的键值小于或等于0ch,表示要发码,转入发码(sendcode)程序。这些键共包括:0~9、*和#键。
若键值大于0ch,则表示是功能控制键,依次判断是哪个键,然后转入相应子程序。这里功能键共包括:on/off、play、ready、record。
流程图如图4所示。
3.2 键盘扫描子程序
本程序采用非编码键盘,单片机必须对所有按键进行监视。一旦发现有键按下,单片机应通过程序加以识别,找出它的行列值,并求出它的键值,然后转入相应的处理程序,实现该键功能。
3.3 on/off键子程序
on/off键是摘挂机控制键,它对应的键值是10h。
当有振铃信号输入或欲输出话音时,要将通话电路与电话线接通。此时可以按下on/off键,单片机检测到此键便控制继电器jk1(使p1.4取反)完成此要求。
3.4 record键子程序
record键是录主人留言控制键,它对应的键值是0dh。
主人要把自己不在家的留言信息(例如:“您好,这是xx的自动留言机,主人不在家,请留言,留言时间是80s”)。预先录入isd2590芯片中,以便需要时可以随时调用。在这里留有9s的时间用来录这段话。具体操作是:选按下record键,程序检测到此键后,便开始示主人留言并启动单片机的t0中断定时。9s后自动停止。
由于对isd2590进行直接寻址时,信息的最小分辨率是150ms,所以将a0~a5都接地,将a6~a9连到单片机输出端。这样可以使信息的最小分辨率变为9.6s(150ms×2 6=9.6s)。利用单片机的t0中断定时器从isd的初始地址(即a6~a9都为0)开始定时9s,并段时间留作主人留言区(剩下大约0.6s不用)。把接下来的80s用来录对方留言。
3.5 ready键子程序
ready键是准备实现自动留言功能控制键,它对应的键值是0eh。
当主人出门前,预先按下此键等待。当有振铃信号输入时,振铃检测电路检测到振铃响了4次后,便发给单片机一请求信号。单片机响应后,首先将通话电路与电话线接通(模拟摘机),然后将主人留言信息发给呼叫方,发送完毕后马上准备进行录音。本程序留有80s的时间录对方留言信息,每次录音都从上次录音结束处开始到此次对方录音完毕并挂机为止,循环录制(自动覆盖最前面信息),每次录音完毕自动挂机。主人回家后,可以按下复位键,再进行其他的操作(比如播放留言)。
流程图如图5所示。
3.6 play键子程序
play键是播放留言控制键,它对应的键值是0fh。
当主人要听自己留言信息或对方留言信息时可以按下此键,这时便开始播放第一段信息(主人留言);若不想听此段信息,可以不等其播放完,再按一下play键,便从第二段开始播放(对方留言);若再按此键,便重新播放第一段;只要按的不是play键,就跳出此子程序,isd2590停止播放。
流程图如图6所示。
本文设计实现了一种数字芯片存储式自动答录系统。该系统具有实用性强、稳定性高等诸多优点,适合家庭和商业两用,且在功能上可以扩展。
(1) 若想录多方留言,可以将这80s的时间细分成多段,每段多长时间预先设定好。也可在电路中加入摘挂机检测电路,当对方挂机时自动停止录音。这种情况下每段录音时间不固定。
(2) 此电路还可以扩展,加一些其他功能,例如:
·温度报警功能。只要将温度传感器输入端连至单片机外部中断脚,当温度达到一定值时,便进入中断,单片机控制语音收发电路自动拨号(例如拨119),并告如对方这里有火灾。
·自动转接分机。可以将语音芯片再留出一小部分用来存储转接的语音提示(例如:请拨分机号,1为xx处,2为xx处),然后电路判定对方发来的dtmf码并通过软件和继电器将对方自动转接到相应的分机上。