精品毕业论文基于单片机的语音合成电话自动应答系统设计_第1页
精品毕业论文基于单片机的语音合成电话自动应答系统设计_第2页
精品毕业论文基于单片机的语音合成电话自动应答系统设计_第3页
精品毕业论文基于单片机的语音合成电话自动应答系统设计_第4页
精品毕业论文基于单片机的语音合成电话自动应答系统设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 摘 要 本设计是基于单片机的语音合成电话自动应答系统,利用 AT89C51 控制 外围电路和语音芯片 ISD4004,实现振铃检测、自动摘挂机、忙音检测、自 动录放音等功能。可以直接通过按键,控制录放音同时使用音频电压器把语 音信号耦合到电话线上去或者录制到语音芯片中。语音芯片采用 ISD4004 ,它与单片机的连接方便使得电路简单,连线简洁,结构紧凑;并能够方便的 存储和读取语音信息。本设计使用方便灵活,全面实现了题目的要求。 关键字 单片机 ISD4004 芯片 录放音 II Abstract The design is based on SCMs voice response system of automatic telephone,AT89C51 use of external control and voice circuit chip ISD4004, achieving ringing detection, automatic pick hang up, a busy tone detection, automatic audio recorders, to complete based on SCM Automatic telephone voice response system of the design and implementation functions. Can be directly through the keys to control the sound recording. The use of audio-voltage coupling of the voice signal to the telephone or online to record the voice chip. Voice chips used ISD4004 , the MCU and connect it makes for a simple circuit , the connection is simple and compact, and easy to store and read the voice message. This user-friendly design flexibility, the full realization of the subjects request. Keyword Single Chip Micyoco ISD4004-chip Recorders III 目 录 摘要 .I ABSTRACT .II 第 1 章绪论1 1.1 电话录音的现状及发展方向.1 1.2 系统设计理论与总体方案.2 第 2 章单片机及硬件电路设计4 2.1 中心控制器.4 2.1.1 中心控制器 AT89C51 4 2.1.2 管脚说明 .5 2.1.3 单片机最小系统 .7 2.2 外围硬件电路.8 2.2.1 电话模拟摘挂机电路 .8 2.2.2 光电耦合器 .9 2.2.3 振铃检测电路 .10 2.2.4 双音多频发送接收器 MT8888 10 2.2.5 忙音检测电路设计 .12 2.2.6 电源电路设计 .13 第 3 章语音芯片及录放音电路15 3.1 语音芯片 ISD4004 .15 3.1.1 ISD4004 芯片15 3.1.2 引脚说明 .15 3.1.3 ISD4004 内部存储信息管理机制.17 3.2 ISD4004 录音电路设计18 3.3 ISD4004 放音电路设计19 3.4 AT89C51 与 ISD4004 的连接20 IV 第 4 章软件设计23 4.1 系统主程序设计.23 4.2 录放音程序设计.24 4.3 忙音检测程序设计.25 结论.28 参考文献.29 附录 1.30 附录 2.35 附录 3.41 附录 4.46 1 第 1 章 绪论 1.1 电话录音的现状及发展方向 21 世纪是信息时代,各种电信新技术推动了人类文明的进步。自从 1876 年,Alexander Graham Bell(贝尔)发明电话以来,世界各国的电话网络 发展非常迅速。进十年来,中国的固定电话业务呈现出举世瞩目的快速增长。 1997 年 8 月局用电话交换机总容量突破 1 亿门,网络规模跃居世界第二位, 1999 年 7 月固定电话用户总数突破 1 亿户。现代电话网络是由交换机和电 话传输线共同组成,它的性能已经有了很大的进展,而且可靠性非常高。 随着生活水平的迅速提高,人们对电话机的质与量要求越来越高。老 式电话机正逐渐由集成电路或单片机等构成,高性能/价格比的按键式电话 所取代。应程控电话交换机的需要,双音频电子电话机成为正在迅速发展的 新型电话机。它可以大大缩短拨号时间,提高交换机设备利用率。最初问世 的双音频电话机,与普通使用的号盘式电话机相比较,主要区别在于用双音 频(高低频率组)选号代替断续脉冲选号,它的音频振荡回路用 LC 构成, 通话电路方面没有明显区别。随着半导体集成电路技术及生产制造工艺的发 展完善。双音频电话机已经采用了专用集成电路。音频振荡回路比 LC 回路 要优越得多它具有音频准确,电平稳定,是真小的特点,几乎可以做到无需 调整。 同时随着电子技术特别是数字技术的迅猛发展,电脑自动应答、数字点 歌、自动音频服务、自动应答录音电话等各种自动答录系统在越来越多的场 合发挥着重要的作用。这些技术极大地方便了人们的工作和生活,提高了效 率。 2 1.2 系统设计理论与总体方案 在本设计中,采用 ISD4004 语音芯片,ISD4004 为美国 ISD 公司出品 的优质单片语音录放电路,由振荡器、语音存储单元、前置放大器、自动增 益控制电路、抗干扰滤波器、输出放大器组成。一个最小的录放系统仅由一 个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。录音内容 存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美 国 ISD 公司的专利-直接模拟存储技术(DAST、TM)实现的。利用它,语音 和音频信号被直接存储,以其原本的模拟形式进入 EEPROM 存储器。直接 模拟存储允许使用一种单片固体电路方法完成其原本语音的再现。不仅语音 质量优胜,而且断电语音保护。 本设计利用单片机控制外围电路和语音芯片,来完成基于单片机的语音 合成电话自动应答系统的设计与实现功能。其功能包括:振铃检测,自动摘 挂机,自动录放音等。系统框图入下: 图 1-1 系统原理框图 本设计采用AT89C51系列单片机作为系统的控制单元本方案的控制部分。 振铃检测电路 摘挂机电路 忙音检测电路 单片机 语音芯片 录音电路 放音电路 3 当有电话进来,振铃检测电路检测到振铃信号通过P0.0送给单片机。每来一 个信号单片机就记一次数,当满5次后判断为无人接听并把单片机的P1.0口 置低电平接通摘挂机电路实现摘机。摘机后单片机通过P1.4,P1.5对ISD4004 的MISO,MOSI读写状态字和命令字来控制ISD4004的录音和放音。如果在录音 过程检测到忙音信号表明对方已挂机,把单片机的P1.0口置高电平使光电耦 合器断开,摘挂机电路断路实现挂机。 4 第 2 章 单片机及硬件电路设计 2.1 中心控制器 2.1.1 中心控制器 AT89C51 本设计的中心控制器应用 AT89C51, AT89C51 的管脚图如下图所示,A T89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(EEPROM-Flash Pr ogrammable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技 术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效 微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图 2-1 AT89C51 5 2.1.2 管脚说明 VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电 流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必 须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器 能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作 输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘 故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接 收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉 高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电 流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外 部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它 利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出 其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信 号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输 入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上 拉的缘故6。 P3 口也可作为 AT89C51 的一些特殊功能口,如下所示: 6 P3 口管脚备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断 0) P3.3 /INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期 的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存 地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因 此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作 外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间, 每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储(0000H- FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁 7 定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编 程期间,此引脚也用于施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.1.3 单片机最小系统 (1)RST:复位,为了使单片机处于复位(即初使化)工作状态,通 常的复位方式有“自动上电复位”和“人工按钮复位”两种方式。在设计中 采用人工复位按钮,在单片机应用系统中,除单片机应用系统本身需要复位 之外,外部扩展 I/O 接口电路等也需要复位,需要一个包括上电和按钮复位 在内的系统同步复位电路。RST/VPD 的第二功能是作为备用电源输入端, 当主电源 VCC 发生故障而降低到规定低电平时,RST/VPD 线上的备用电源 自动投入使用,以保证片内 RAM 中信息不丢失。 (2)XTAL1 和 XTAL2:片内震荡电路输出线,这两个端子用来外接 石英晶体和微调电容,即用来连接单片机片内 OSC 的定时反馈电路。石英 晶振起振后要能在 XTAL2 线上输出一个 3V 左右的正弦波,以便使单片机 片内 OSC 电路按石英晶振相同频率自激振荡。通常 OSC 的输出时钟频率为 0.5MHZ16MHZ 典型值为 12MHZ 或 11.0592MHZ,两个容值为 30PF 的电 容可以帮助晶振起振,典型值有 30PF 或 60PF,调节它们可以达到微调的目 的。 开关复位电路与晶振连接电路图: 8 图 2-2 复位电路和时钟电路 2.2 外围硬件电路 2.2.1 电话模拟摘挂机电路 电话模拟摘挂机电路用来模拟电话摘挂机过程,当来电话时,给电路一 个信号,电话模拟摘机,当结束时,再给电路一个信号,电话完成挂机功能。 根据国家有关标准规定:不论任何电话机,摘机状态的直流电阻应小 于 300,有“r“键的电子电话机的摘机状态直流电阻应小于 350 。挂机状 态下的漏电流小于 5A。当用户摘机时,电话机将通过叉簧接上约 300 的负载,从而使整个电话线回路流过约 30 mA 的电流。交换机检测到该电 流后便停止铃流发送,并将线路电压变为十几伏的直流以完成接续。根据有 关技术指标,模拟摘挂机电路设计如下图所示。 图 2-3 电话模拟摘挂机电路原理图 该模拟摘挂机电路主要由二个三三极管电路、光电耦合器。应用光电耦合 器作为控制开关,来控制摘挂机。摘挂机指令由单片机判断 I/O 口是否为 高电平来实现。由于检测到振铃后,系统会给另一个 I/O 低电平从而开启光 9 电耦合器 Ul,因此线路会处于导通状态。控制电路可向交换机发出模拟摘 机信号,交换机响应摘机信号后便可完成电话线路的接通。最终使整个电路 完成自动模拟摘机过程。 2.2.2 光电耦合器 本设计中光电耦合器作为控制开关。光电耦合器是以光为媒介传输电信 号的一种电一光一电转换器件。它由发光源和受光器两部分组成。把发光源 和受光器组装在同一密闭的壳体内,彼此间用透明绝缘 体隔离。发光源的 引脚为输入端,受光器的引脚为输出端,常见的发光源为发光二极管,受光 器为光敏二极管、光敏三极管等等。光电耦合器的种类较多,常见有光电二 极管型、光电三极管型、光敏电阻型、光控晶闸管型、光电达林顿型、集成 电路型等。本设计中使用的是光电三极管型。 1.工作原理 在光电耦合器输入端加电信号使发光源发光,光的强度取决于激励电流 的大小,此光照射到封装在一起的受光器上后,因光电效应而产生了光电流, 由受光器输出端引出,这样就实现了电-光-电的转换。 2.光电耦合器的检测 光电耦合器运用广泛,依据光电耦合器特性,设计一个方便的测试光 电耦合器电路,该电路简单、准确,使用方便。 当电源接通后,LED 不发光。按下 S2,LED 会发光。调 RP,LED 的 发光强度会发生变化,说明光电耦合器是好的。电路原理图如下图: 10 图 2-4 光电耦合器检测电路 2.2.3 振铃检测电路 电话振铃检测电路是用来检测振铃信号的,通过把电压的变化转化成方 波信号给单片机检测。电路原理图如下图: 图 2-5 振铃检测电路 电话外线在平时的电压为直流 40V 左右,而振铃来时会有正负 25V 的 交流电压叠加在外线上,所以检测振铃的电路用 C11 高压电容来进行隔直; 振铃以 5 秒为周期,即 1 秒送,4 秒断,在本电路检测铃流信号时,以 3 次 铃响为准,即 3 次振铃后无人摘机,便由单片机控制自动模拟摘机。当有振 铃来时,交流信号会通过 C11,击穿 D6,给后面的光耦合器提供脉冲开关 信号,而 R12 为限流电阻。 经光耦合器隔离的信号经 C12 和 R13 滤波整形后,会变成标准低电平 11 和带纹波高电平的长周期脉冲信号,但是输出的波形不好,且为高的电平状 态还与各交换机相关,所以在后面加上了一个三极管的反向器,作为整形, 这样就可以得到很完整的波形了。 2.2.4 双音多频发送接收器 MT8888 本设计中使用 MT8888 作为忙音检测的主要部件。MT8888 是 MITEL 公司采用 CMOS 工艺生产的 DTMF 信号收发一体集成电路,它的发送部分 采用信号失真小、频率稳定性高的开关电容式 DA 变换器,可发出 16 种 双音多频 DTMF 信号。接收 部分用于完成 DTMF 信号的接收、分离和译 码,并以 4 位并行二进制码的方式输出。MT8888 芯片集成度高、功耗低, 可调整双音频模式的占空比,能自动抑 制拨号音和调整信号增益,还带有 标准的数据总线,可与 TTL 电平兼容,并可方便地进行编程控制。引脚图 如下: 图 2-6 MT8888 引脚说明: IN+、IN-(1,2)运放的同相和反相输入端; 12 GS(3)增益选择端。在该引脚与 IN-引脚间接反馈电阻可调节运放增 益; Vref(4)基准电压输出端。通常为 VDD/2,作为运放的偏置电压; VSS(5)芯片电源负端,接地; OSC1、OSC2(6、7)时钟或振荡器的输入、输出端。两引脚间接 3.579545MHz 晶体与内部电路构成芯片振荡器;若由外部电路提供时钟, 则 OSC2 引脚开路; TONE(8)DTMF 信号输出端,也可通过编程设置为单音输出; /WR(9)微处理器写输入端,低电平有效,与 TTL 电平兼容; /CS(10)片选信号输入端,低电平有效。该引脚可由微处理器的地址 锁存信号(ALE)直接提供; RS0(11)寄存器选择控制输入端; /RD(12)微处理器读输入端,低电平有效,与 TTL 电平兼容; /IRQ/CP(13)中断请求信号,为开漏输出。在中断模式下,当一个有 效 DTMF 信号突发发送或接收时,输出低电平信号。若控制寄存器设定电 路工作于呼叫处理(CALL)模式和中断使能,则该端输出代表运放输入的方 波信号音,但该信号频率必须落在呼叫处理滤波器的带宽内; D0D3(14-17)数据总线,与 TTL 电平兼容。输入需发送的 DTMF 编码或输出译码的 DTMF 信号数据。当 CS=1 时呈高阻状态; Est(18)初始控制输出。若电路检测到一种有效的单音对时,Est 为高 电平;若信号丢失,则 Est 返回低电平; St/GT(19)控制输入/时间监测输出。若 St 电压大于门限 VTSt,电路 寄存被检测的 DTMF 单音对,并更新输出锁存器内容。若 St 电压低于 VTSt,则电路不接收一新单音对,GT 输出的作用是设置外部时间监测常数; VDD(20)芯片电源正端,典型值为+5V。 13 2.2.5 忙音检测电路设计 本设计通过对忙音的检测从而判断对方是否挂机。使用单片机定时/计 数功能检测电话信号音。此方法简单,不用锁相放大器,可靠性高。能够正确 识别无声(线路故障) 、拨号音、忙音、空号音、拥塞音、回铃音、被叫用 户摘机等状态;占用单片机资源少,仅需要1个定时器和1个计数器;检测程序结 构简洁,代码短。话线信号音检测电路如下图所示。 图2-7 忙音检测电路 此电路中MT8888工作于呼叫模式,在该模式下,芯片可以从输入信号 中检测电话呼叫过程的各种信号音(回铃音、拨号音、忙音,拨号音是450Hz 的连续信号,忙音为035秒通、035秒断,回铃音为1秒通、4秒断)。 MT8888 的呼叫处理滤波器是一个带通滤波器, 通频带为300510Hz。当信 号频率落在320510Hz范围以内时,能从 IRQ端输出方波,否则IRQ端为 低电平。 14 2.2.6 电源电路设计 供电部分输入 220V、50Hz 交流电,输出全机所需的两种电压:+5V 和 +3V。 7805 系列为 3 端正稳压电路,TO-220 封装,能够提供多种固定的输出 电压,应用范围广。内含过流、过热和过载保 护电路。带散热片时,输出 电流可达 1A。虽然是固定稳压电路,但使用外接元件,可获得不同的电压 和电流。5V,3V 电源电路如图所示。三端集成稳压电源性能优越,但是它 的最低稳压电压为 5V,采用三个二极管降压,使 5V 的直流电变成约 3V。 图 2-8 5V 电源电路 图2-9 3V电源电路 15 第 3 章 语音芯片及录放音电路 3.1 语音芯片 ISD4004 3.1.1 ISD4004 芯片 本设计所使用的语音芯片是 ISD4004。用于对语音信号的录制存储和 输出。通过单片机的I/O口对ISD4004系列语音芯片进行录音、放音等控制, 其结构简单、控制可靠、有较高的实用价值。 ISD4004系列工作电压为3V。单片录放时间4至8分钟,音质好,适用于移 动电话及他便携式电子产品中。芯片采用CMOS技术,内含振荡器、防混淆 滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮阵列。 芯片设计是基于所有操作必须由微控制器控制, 操作命令可通过串行通信接 口(SPI/Microwire)送入。 芯片采用多电平直接模拟量存储技术, 每个采样值直接存贮在片内闪烁 存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免 了一般固体录音电路因量化和压缩造成的量化噪声和“金属声“。采样频率可 为4.0、5.3、6.4、8.0KHZ,频率越低,录放时间越长,而音质则有所下降,片内 信息存于闪烁存贮器中,可在断电情况下保存100年(典型值),反复录音10万次。 3.1.2 引脚说明 16 图 3-1 ISD4004 管脚图 电源电源:(VCCA,VCCD) 为使噪声最小,芯片的模拟和数字电路使用不同的 电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别 走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。 地线地线:(VSSA,VSSD) 芯片内部的模拟和数字电路也使用不同的地线。 同相模拟输入同相模拟输入(ANA IN+) 这是录音信号的同相输入端。输入放大器可 用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值 32mV,耦合电容和本端的 3K 电阻输入阻抗决定了芯片频带的低端截止频 率。差分驱动时,信号最大幅度为峰峰值 16mV。 反相模拟输入反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信 号通过耦合电容输入,最大幅度为峰峰值 16mV 音频输出音频输出(AUD OUT) 提供音频输出,可驱动 5K 的负载。 片选片选(SS) 此端为低,即向该 ISD4003 芯片发送指令,两条指令之间为高 电平。 串行输入串行输入(MOSI) 此端为串行输入端,主控制器应在串行时钟上升沿之 前半个周期将数据放到本端,供 ISD 输入。 串行输出串行输出(MISO) ISD 的串行输出端。ISD 未选中时,本端呈高阻态。 串行时钟串行时钟(SCLK) ISD 的时钟输入端,由主控制器产生,用于同步 MOSI 和 MISO 的数据传输。数据在 SCLK 上升沿锁存到 ISD,在下降沿移出 ISD。 中断中断(/INT) 本端为漏极开路输出。ISD 在任何操作(包括快进)中检测到 17 EOM 或 OVF 时,本端变低并保持。中断状态在下一个 SPI 周期开始时清除。 中断状态也可用 RINT 指令读取。OVF 标志标志-指示 ISD 的录、放操作已到 达存储器的未尾。EOM 标志标志-只在放音中检测到内部的 EOM 标志时,此状 态位才置 1。 行地址时钟行地址时钟(RAC) 漏极开路输出。每个 RAC 周期表示 ISD 存储器的操 作进行了一行(ISD4003 系列中的存储器共产 1200 行,ISD4004 系列中的存 贮器共 2400 行)。该信号 175ms 保持高电平,低电平为 25ms。快进模式下, RAC 的 218.75s 是高电平,31.25s 为低电平。该端可用于存储管理技术。 外部时钟外部时钟(XCLK) 本端内部有下拉元件。芯片内部的采样时钟在出厂 前已调校,误差在 +1%内。商业级芯片在整个温度和电压范围内, 频率变化 在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此 时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如附录所列)。 由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。 输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时,此 端必须接地。 自动静噪自动静噪(AMCAP) 当录音信号电平下降到内部设定的某一阈值以下时,自 动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对 地接 1mF 的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电 平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静 噪电路不衰减,静音时衰减 6dB。1mF 的电容也影响自动静噪电路对信号幅 度的响应速度。本端接 VCCA 则禁止自动静噪。 3.1.3 ISD4004 内部存储信息管理机制 在本设计中,ISD4004 能够储存4分钟的语音信息因此能够存储若干条 留言。若干条信息按顺序分别录入到芯片内,比如称其为#1、#2、#3、#4 18 信息。需要知道每一时刻的录音信息在ISD芯片存储器中所处的位置,这样 有利于实时地监控ISD4004语音芯片工作的位置,从而能够知道所录的每段 信息的开头和结尾的准确地址,便于我们对已录入的信息进行管理。 ISD4004内置了特殊的信息寻址机制,即行地址时钟(以下简称RAC)。 为了理解其工作原理,有必要先介绍器件的存储结构。 ISD4004的存储器分为2400行。对器件寻址,就是选择一行,从行首开 始录、放操作,而每行中的各列是不可寻址的。每一行的所有操作都从第一 列开始。ISD4004每一行周期为200ms 这就是器件的地址分辨率。其中每行 有175ms的高电平,25ms的低电平。每个录放周期都从这200ms的“语音存 储块”的块首开始,如下图所示。 175ms 200ms 图3-2 ISD4004周期 RAC在行末前25ms变低,在恰好到达行末时变高,这就类似一个时钟, 帮助你确定录放操作已到何处。这个时钟相对于微控制器的速度来说较慢, 上例为200ms。因此,微控制器很容易通过软件查询RAC的方法来确定何时 已到达行末。 但由于微处理器的查询速度相对于RAC 时钟频率要快得多,所以,如 果通过查询的方法检测RAC 每个周期的低电平时,在上一次检测到RAC 低电平时必须要经过一段延时才能再检测RAC,这样检测到的低电平才是 有效的,这段延时可以说是“假延时”。延时的时间必须大于RAC低电平 的时间,而小于RAC的周期。 可以利用一个计数器对RAC引脚进行计数,并且通过LED显示器实时地 把计数器的值显示出来,这样我们不但可以知道录入的每段信息的开头和结 尾的地址,而且还可以知道每段信息之中特定内容的地址,从而可以建立地 19 址表对信息进行剪辑、合成等处理达到对语音信息特定的要求。同样,在放 音时也可以实现对语音信息的准确放音。只需把事先编辑好的语音信息的准 确地址传送到ISD4004的控制口就可以实现指定地址的放音。如果需要的话, 还可以对ISD4004的放音地址进行实时的监控,其方法与录音时类似。 3.2 ISD4004 录音电路设计 本系统中的语音芯片的输入采用了单端输入的方法,MIC采用小型驻极 体麦克风。由于麦克风的输出信号较小,为了达到语音输入信号要求,采用 一个三极管电路来放大信号。此电路用来把主人不在家的留言信息(例如: “您好,这是XX的自动留言机,主人不在家,请留言。 ”) ,预先录入ISD4004芯片 中,以便需要时可以随时调用。 图3-3 电话录音电路 要把电话线上的语音信号录制到语音芯片ISD4004中,通 过音频输入 变压器把电话线上的语音信号耦合到MIC输入端。变压器是变换交流电压、 电流和阻抗的器件,当初级线圈中通有交流电流时,铁芯(或磁芯)中便产 生交流磁通,使次级线圈中感应出电压(或电流) 。变压器由铁芯(或磁芯) 和线圈组成,线圈有两个或两个以上的绕组, 其中接电源的绕组叫初级线 圈,其余的绕组叫次级线圈。 20 3.3 ISD4004 放音电路设计 ISD4004内部功放驱动能力较低,外接一个LM386 可驱动 0.5 W 的喇 叭。自动静噪端AMCAP通过1F电容接地,XCLK接地,使用内部时钟。 LM386是为低电压应用设计的音频功率放大器。增益在内部设定到20可 使外部元件数少,在引脚 1 和 8 之间连接电阻和电容可使增益超过 200 。该集成电路适用于调幅 - 调频无线电放大器、便携式磁带重放设备、内 部通信电路、电视音频系统、线性驱动器、超声波驱动器和功率变换电路。 把语音信号加载到电话线上,由于话线中直流电压比较高,而且还有各 图3-4 电话放音电路 种信号音,这些都会影响到语音信号加载到电话线上,因此此电路使用一个 耦合变压器作为隔离器件。 3.4 AT89C51 与 ISD4004 的连接 从下图中可以看到89C51和ISD4004之间的连接原理图。单片机的 P2.0、P2.4、P2.7引脚接按键,控制电话录音器工作过程中是否放录音和放 音内容;P1.4接ISD4004的串行输出引脚MISO;P1.5接ISD4004的串行输入 引脚MSIO,从该引脚读入放音的地址;P1.7和P3.2分别接ISD4004的串行时 钟引脚SCLK和中断引脚/INT。 21 图3-5 AT89C51与ISD4004的连接 ISD4004 工作于 SPI 串行接口。SPI 协议是一个同步串行数据传输协议, 协议假定微控制器的 SPI 移位寄存器在 SCLK 的下降沿动作,因此对 ISD4004 而言,在时钟上升沿锁存 MOSI 引脚的数据,在下降沿将数据送至 MISO 引脚。协议的具体内容为: (1)所有串行数据传输开始于 SS 下降沿。 (2)SS 在传输期间必须保持为低电平,在两条指令之间则保持为高电平。 (3)数据在时钟上升沿移入,在下降沿移出。 (4)SS 变低,输入指令和地址后,ISD 才能开始录放操作。 (5)指令格式是(5 位控制码)加(11 位地址码)。 (6)ISD 的任何操作(含快进)如果遇到 EOM 或 OVF,则产生一个中断,该 中断状态在下一个 SPI 周期开始时被清除。 (7)使用“读“指令使中断状态位移出 ISD 的 MISO 引脚时,控制及地址数 据也应同步从 MOSI 端移入。因此要注意移入的数据是否与器件当前进行 的操作兼容。当然,也允许在一个 SPI 周期里,同时执行读状态和开始新的操 作(即新移入的数据与器件当前的操作可以不兼容)。 (8)所有操作在运行位(RUN)置 1 时开始,置 0 时结束。 (9)所有指令都在 SS 端上升沿开始执行。 22 1.信息快进 用户不必知道信息的确切地址,就能快进跳过一条信息。信息快进只用 于放音模式。放音速度是正常的 1600 倍,遇到 EOM 后停止,然后内部地址计 数器加 1,指向下条信息的开始处。 2.上电顺序 器件延时 TPUD(8kHz 采样时,约为 25ms)后才能开始操作。因此,用户发 完上电指令后,必须等待 TPUD,才能发出一条操作指令。 例如,从 00 从处发音,应遵循如下时序: (1) 发 POWERUP 命令; (2) 等待 TPUD(上电延时); (3) 发地址值为 00 的 SETPLAY 命令; (4) 发 PLAY 命令。 器件会从此 00 地址开始放音,当出现 EOM 时,中断放音。 如果从 00 处录音,则按以下时序: (1) 发 POWER UP 命令; (2) 等待 TPUD(上电延时); (3) 发 POWER UP 命令 (4) 等待 2 倍 TPUD; (5) 发地址值为 00 的 SETREC 命令; (6) 发 REC 命令。 器件便从00地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。 23 第 4 章 软件设计 4.1 系统主程序设计 本设计的软件部分应用了单片机 AT89C51 的几个管脚,在经过五次振 铃后,即 P 0.0 为 5 次低电平,振铃检测结束;此时 P 1.0 为 低电平执行摘 机。同时执行放音功能,放音结束后进行录音。当忙音检测到忙音时,录音 结束。P1.0 为高电平,挂机。流程图如下: 开始 初始化 按键检测 振铃检测 自动摘机 播放提示音 录音 自动挂机 忙音检测 24 图 4-1 主程序流程图 4.2 录放音程序设计 录放音是通过单片机对ISD4004的MISO和MSIO读取状态字和写入命令 字来实现的。ISD4004端口的状态字和命令字如下图所示。 图4-2 SPI端口的控制位 命令字的高 5 位位操作码,低 11 位为操作地址。状态字的最高 2 位分 别是溢出标志 OVF 和信息段末尾标志 ROM,紧跟其后的是行地址计数器 的值。根据系统主程序流程图可设计出单片机控制程序,在主程序中完成一 些初始化的工作及录放结束工作,ISD 上电、掉电等,另外循环扫描键盘, 检查启动键是否按下根据录放开关状态跳转到相应的子程序。下图给出录音、 放音子程序的框图: 设置录音地址 从当前地址录音 OVF? STOP? 返回 N N Y Y MISOOVF EOM P0P1P2P3P4P5P6P7P8P9 P10000 MOSIC4C3C2C1C0 A10 A9A8A7A6A5A4A3A2A1A0 Message Cueing(MC) Ignore Address Bit(IAB) Power UP(PU) Play/Record(P/R) RUN 25 图4-3 录音程序流程图 设置放音地址 从当前地址放音 STOP? EOM? 停止放音 OVF? STOP? START? 返回 N Y N N Y Y Y Y N N 26 图4-4 放音程序流程图 4.3 忙音检测程序设计 由于电话系统中所用到的拨号音、回铃音和忙音的频率均为 425475Hz 的正弦波, 只是断续比不同, 且在时间上有明显的差异( 拨号音 为连续信号; 忙音为0.35s 通, 0.35s 断; 回铃声为1s 通,4s断)。要判断信号 音, 首先应将处理DTMF 信号的MT8888 芯片设置为呼叫处理模式。当选 择呼叫处理模式时, MT8888 就不能用于检测DTMF 信号了。MT8888 的呼 叫处理滤波器 是一个带通滤波器, 通频带为300510Hz。当信号输入端有 信号音输入 时, 如MT8888工作在CP模式,在IRQ/CP 就输出一高电平,使电 话呼叫过程中种信号音经MT8888滤波、限幅后得到方波,并由MT8888的IRQ 输出。然后对MT8888输出的IRQ信号计数5s, 拨号音的计数上限为( 450+25) *5=2375, 拨号音的计数下限为( 450- 25) *5=2175, 同理忙音的计数范围为 10411212, 回铃音的计数范围为425475, 无信号的计数应为零。 在本 设计中只要检测忙音就可以了,所以计数的上下限取10411212。 1.单片机定时器0和1 定时和计数功能,由特殊功能寄存器TMOD的控制位C/T进行选择。这 两个定时/计数器有4种操作模式,通过TMOD的M1和M0选择两个定时/ 计 数器的模式0,1和2都相同,模式3不同如下所述。 2.模式 (1)模式0 将定时器设置成模式0时,类似8048定时器即8位计数器带32分频的预分 频器,模式0工作方式下,定时器,寄存器配置为13位寄存器。当计数从全 为1翻转为全为0时,定时器中断标志位TFn置位。当TRn=1,同时GATE=0 ,或INTn=1时定时器计数置位GATE时,允许由外部输入INTn控制定时器 ,这样可实现脉宽测量TRn为TCON寄存器内的控制。 27 该13位寄存器包含THn全部8个位及TLn的低5位TLn的高3位不定,可将 其忽略置位运行标志(TRn)不能清零此寄存器。模式0的操作对于定时器0及 定时器1都是相同的,两个不同的GATE位(TMOD.7和TMOD.3)分别分配给 定时器0及定时器1。 (2)模式1:模式1除了使用了THn及TLn全部16位外其它与模式0相同。 (3)模式2:此模式下定时器寄存器作为可自动重装的8位计数器(TLn)。 TLn的溢出不仅置位TFn,而且将THn内容重新装入TLn,THn内容由软件预 置重装时,THn内容不变模式2的操作对于定时器0及定时器1是相同的。 (4)模式3:在模式3中,定时器1停止计数。效果与将TR1设置为0 时相同, 此模式下定时器0的TL0及TH0作为两个独立的8位计数器。模式3时的定时 器0,逻辑TL0占用定时器0的控制位:C/T,GATE,TR0,INT0 及 TF0,TH0限定为定时器功能(计数器周期),占用定时器1的TR1及TF1。此 时TH0控制定时器1中断,模式3可用于需要一个额外的8位定时器的场合。 定时器0工作于模式3时,89C51看似有3个定时器/计数器,当定时器0工作于 模式3时,定时器1可通过开关进入退出模式3,它仍可用作串行端口的波特 率发生器或者应用于任何不要求中断的场合。 根据以上内容可以画出忙音检测程序的流程图,如下所示: 设置定时器 定时5S 计数器 =1041 计数器 SETB SS ;关片选 PLAY2: JNB STOP,REC6 ;STOP=0 停止放音 JB INT,PLAY2 ;无 OVF EOM 继续放音 ACALL STOPP ;停止当前操作 ;检测 OVF CLR SS ;开片选 CLR SCLK ;时钟 SCLK=0 SETB SCLK ;时钟 SCLK=1 JB MISO,REC6 ;芯片到未 CLR SCLK ;时钟 SCLK=0 SETB SS ;关片选 ACALL STOPP ;停止当前操作 PLAY3: JNB STOP,REC6 ;中断放音 JB AN,PLAY3 ;等待 AN=0 AJMP PLAY1 ;顺序放音 45 UP: MOV A,#20H ;发 00100 XXXXXXXXXXX ACALL ISDX SETB SS ;关片选 ACALL YS50 ;50mS 延时 ACALL YS50 ;50mS 延时 RET STOPP: MOV A,#30H ;发 0X11 0XXX ACALL ISDX SETB SS ;关片选 ACALL YS50 ;50mS 延时 ACALL YS50 ;50mS 延时 RET DSTOP: MOV A,#10H ;发 0X010 XXXXXXXXXX ACALL ISDX SETB SS ;关片选 ACALL YS50 ;50mS 延时 ACALL YS50 ;50mS 延时 RET ISDX: CLR SS ;开片选 MOV R6,#8 CLR SCLK ;时钟 SCLK=0 ISD1: MOV C,ACC.0 MOV MOSI,C ;数据写 MOSI SETB SCLK ;时钟 SCLK=1 RR A CLR SCLK ;时钟 SCLK=0 DJNZ R6,ISD1 RET YS1: MOV TMOD,#01H MOV TH0,#0D8H ;10mS 延时初值置入 MOV TL0,#0F0H ;(65536-X)*1=10MS SETB TR0 ;65536-(10000/1)=D8F0H JNB TF0,$ 46 CLR TF0 CLR TR0 RET YS50: MOV TMOD,#01H MOV TH0,#3CH ;50mS 延时初值置入 MOV TL0,#0B0H ;(65536-X)*1=50MS SETB TR0 ;65536-(50000/1) JNB TF0,$ CLR TF0 CLR TR0 RET END 47 附录 4 12345678 A B C D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论