AT89S52 和K9F6408U0A 的语音数字系统设计_第1页
AT89S52 和K9F6408U0A 的语音数字系统设计_第2页
AT89S52 和K9F6408U0A 的语音数字系统设计_第3页
AT89S52 和K9F6408U0A 的语音数字系统设计_第4页
AT89S52 和K9F6408U0A 的语音数字系统设计_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、【Word版本下载可任意编辑】 AT89S52 和K9F6408U0A 的语音数字系统设计 在研究传统语音录放电路的根底上,提出了一种基于AT89S52 的音频信号采集、存储与处理系统。该系统以单片机AT89S52 为控制器, 采用键盘和LCD 作为人机界面,ADC0809 采集音频信号, 扩展8 MB 闪速存储器K9F6408U0A作为数字化音频信号的存储器,通过软件滤波滤除噪音;采用PWM 产生声音的原理,使存储在Flash 中的音频数据控制PWM 每个波形的占空比,通过低通滤波器将声音从PWM 的脉冲中分离,并驱动扬声器。实验说明:8 kHz 采样频率和8 位采样位数可获得清晰的语音以及

2、较好的音乐声,语音存储时间达15 min。 数据采集技术涉及领域广,采集信号的动态范围宽,处理数据量大,对系统实时性能要求高。以数字信号的形式对信号开展处理,具有处理速度快、灵活、抗干扰能力强、体积小及可靠性高等优点,满足了对信号快速、实时处理及控制的要求。本设计利用了数字电路的这些优点,对传统的模拟录音电路开展了改良,以较低的成本使性能得到了提高。 1 方案论证 本设计以数字化信号的形式对音频信号开展处理,有以下3 种方案可供选择: 1)直接利用语音芯片开展语音录放。Winbond 公司的ISD系列语音芯片采用了Chip-Corded 技术, 声音无需A/D转换和压缩就可直接存储,不存在A/

3、D 转换误差,在一个记录位(BIT)可存储多达250 级声音信号,相当于通常A/D 技术记录容量的8 倍。片内集成了晶体振荡器、麦克风前置放大器、自动增益控制、抗混叠滤波器、平滑滤波器、声音功率放大器等,只需很少的外围器件,就可构成一个完整的声音录放系统。 2)利用DSP 对采样信号开展处理。DSP 是专门为快速实现各种信号处理算法而设计的、具有特殊构造的微处理器,其处理速度远远超过一般的CPU。 3)利用AT89S52 作为系统主控芯片,利用ADC0809 对音频信号开展采集和A/D 转换,将转换得到的数字化音频信号存储到扩展的数据存储器中,利用软件对信号开展数字滤波,通过单片机输出PWM

4、信号来完成放音。 从经济和技术等因素考虑对上述3 种方案开展比较:直接利用语音芯片可以减少很多外围电路, 电路设计方便,但语音芯片使用不够灵活。DSP 具有强大的数字信号处理功能,使用灵活,但该芯片价格较高,不适于一般的应用。方案3)中器件均为常用芯片,易于获取,且价位不高。因此,方案3)为设计方案。 2 硬件设计 图1 为系统硬件构造图。音频信号通过拾音器将声音信号转换为可以处理的电信号,前置放大电路用来对拾音器的输出开展放大, 与A/D 转换电路匹配,A/D 转换电路实现对模拟信号的编码。微处理器是系统的,它用来对数字化音频信号开展处理和存储,协调系统各个部分的工作,输出PWM 波来驱动输

5、出电路。 图1 系统硬件构造框图。 2.1 单片机 单片机是系统的控制中心, 它主要实现以下的功能:控制LCD 显示语音信号的相关信息, 控制按键识别和功能选择; 控制音频数据的采集并存储在Flash ROM, 放音时读取Flash ROM 中数据,用软件方法产生PWM 脉冲信号,实现语音的存储和回放。 2.2 声音信号拾取、放大电路 声音信号拾取电路就是将声音信号转换为电信号的装置。本设计选用麦克风,它是一种声敏电阻,其阻值随外界声音信号的变化而变化,将其串联在电路中,电阻的变化形成电压的变化,经过电容通交隔直,就得到了表征声音信号特征的电信号。 然而由于声音信号拾取电路输出电压的幅值很小,

6、为2025 mV,若将该信号直接与A/D 转换电路相连,由于A/D转换器分辨电压也为毫伏数量级, 会产生很大的误差,为了保证系统的精度,在和A/D 转换电路相连之前,需串联一个放大电路, 考虑到声音信号拾取电路的输出信号很小,放大电路的失真度和噪声对系统的精度影响,故将其设计为抗共模干扰强的并联负反应放大电路, 由于音频信号的频宽较大,应选用宽频带,低输出阻抗的双运放NE5532。 2.3 A/D 转换电路 A/D 转换电路由A/D 转换器ADC0809 与系统处理器AT89S52 组成, 主要实现对放大后的声音信号开展采样。 ADC0809 与AT89S52 的电路连接如图2 所示。 图2

7、ADC0809 与AT89S52 的连接电路 从图2 中可以看到,把ADC0809 的ALE 信号与START信号接在一起,这样可使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。启动A/D 转换只需要一条P2.7=0 指令。在此之前,要将P2.7 清零并将3 位与所选的通道对应的地址送入数据指针DPTR 中。ADC0809 的转换结束信号EOC 取反后与AT89S52 的INT1 相连,采用中断方式读取A/D 转换结果,并启动下A/D 转换。也可定时启动A/D 转换,并读取上次转换结果。 2.4 声音编码存储电路 在采样时每一采样点都会产生1 字节的数字编码信号,由于采样的频率

8、为8 kHz, 若录音15 min, 则所需的存储空间为7.031 25 MB,故系统选用8 MB 的Flash 存储器K9F6408U0A,由于该存储器的地址线和数据线可复用,这样可节省I/O 接口。K9F6408U0A 的优点在于其命令、数据和地址均可通过8 条I/O 接口线与主控制器开展通信, 大大简化了系统的连线, 增强了系统的稳定性。除8 条I/O 接口线外,K9F6408U0A 还包括以下控制线,1)CLE: 命令锁存使能端,高电平有效。在WE 信号的上升沿,命令信号可通过I/O 口锁入命令存放器;2)ALE:地址锁存使能端,高电平有效。在WE信号的上升沿, 地址信号可通过I/O

9、口锁入地址存放器;3)CE:片选线,低电平有效。在页编程或块擦除操作期间或器件处于忙状态时,CE 高电平将被忽略,4)WE: 写使能口,命令、地址和数据在WE 信号的上升沿被锁定;5)RE: 读使能口,在该口的下降沿将数据送到I/O 口线上,并使内部列地址存放器加1;6)WP:写保护口,低电平有效,当其为低时,编程和擦除操作禁止;7)R/B:操作状态指示信号。为低时,表示正在编程、擦除或读操作,操作结束后变高。利用上述控制线,从而方便实现系统主控制器对K9F6408U0A 的控制。AT89S52单片机与K9F6408U0A 存储接口电路如图3 所示。 图3 AT89S52 与K9F6408U0

10、A 存储接口电路。 2.5 PWM 输出电路 本设计采用单片机输出PWM 信号驱动音频放大电路,PWM 输出电路如图4 所示。PWM 是一种利用微处理器的数字输出控制模拟电路的有效技术,对一系列脉冲的宽度开展调制,等效获得所需波形,并且由于没有使用D/A 转换器,系统成本减少很多。PWM 的优点是从处理器到被控系统信号都是数字形式的,无需开展D/A 转换。让信号保持为数字形式可将噪声影响降到。此外PWM 信号很容易通过MCU 的软件开展控制,即使电路稍微有些系统误差,易于通过软件开展校正。 图4 中, 利用单片机的P1.7 引脚输出一定宽度的PWM信号,通过三极管整形后,作用在惯性环节上,得到

11、的输出信号PWMOUT 将作用在音频功放电路上,复原为声音。 图4 PWM 输出电路。 2.6 音频功率放大电路 为了使系统有足够大的输出,驱动扬声器发声,便于调节音量, 在PWM 输出电路后使用了音频信号功率放大器LM386 构建功率放大电路,如图5 所示。 图5 音频功放电路。 LM386 型音频功率放大器主要应用于低电压消费类产品。为使外围元件少,电压增益内置为20。但在其引脚1 和8 之间外接电阻和电容, 便可将电压增益调为任意值, 直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半, 在6 V 电源电压下, 其静态功耗仅为24 mW, 使得LM386 特别适用于电池供

12、电的场合。PWMOUT 为PWM 输出电路的输出,扬声器为8 ,0.5 W。经过调试发现将电源+5 V用10 F 和0.1 F 的电容滤波后,会减小很多噪声,效果较好。 3 系统软件设计 系统具有录音、放音、暂停、去除存储内容等功能,各种功能由按键来选择,系统首先扫描各个按键的状态,如果有按键按下,就转往相应的处理程序,系统程序流程如图6 所示。 图6 系统流程图。 3.1 系统初始化程序 系统初始化程序主要对单片机中断、定时器、LCD 初始化、键盘、PWM、K9F6408U0A 存储接口,以及ADC0809 地址、程序中要用到的各个变量开展设置。 3.2 按键扫描程序 由于录音和暂停是由和外

13、部中断引脚相连的2 个按键来设置,一旦按键按下就进入录音或放音程序,所以按键扫描程序用于扫描放音键和去除键是否按下。 3.3 录音程序 与外部中断0 相连的按键按下,则进入录音程序。 录音过程实质上是启动ADC0809 对模拟音频信号开展采样, 并将A/D 转换结果存储到外围数据存储器中的过程,故其主要包含对ADC0809 开展读取, 对外围数据存储器开展写入两个部分。 提取声音数据时,要注意采样频率、采样位数、存储容量与存储时间的关系,通常8 kHz 的采样频率和8 位的采样位数可获得清晰的语音以及较好的音乐声,并且占有较少的存储空间。 以8 kHz 的采样频率启动ADC0809,并读取上次

14、采样结果,写到外扩Flash 存储器的代码片段如下: 3.4 放音程序 若P1.0 按下,则执行放音程序。放音过程实质上是读取外围数据存储器中的数据,将其转化为一定宽度的PWM 波,开展输出的过程。读取K9F6408U0A 的子函数如下: / 函数名称: READBYTE 产生PWM 波形的步骤:1)设置定时器,产生定时中断,若采样率为11.025 kHz, 则设置定时器的定时中断频率为11.025 kHz;2)初始化PWM 模块,产生11.025 kHz 的PWM波形;3)等待定时器中断,在中断处理程序中取采样数据,并设置PWM 占空比存放器,判断声音是否播放完成。若完成,则关定时器中断,并

15、停止PWM 输出。 3.5 暂停程序 在录音过程中,如果需要暂时停止录音可以按下暂停键进入暂停状态, 再次按下暂停键可以返回暂停以前的状态。 程序中设置了一个变量来指示现在是应该暂停还是恢复。 3.6 存储器内容去除程序 当存储器内容已满,而又需要录音时,可以按下去除按键,去除一定容量的内容,供用户再次使用。 擦除:以块为单位开展擦除。代码片段如下。 4 调试注意事项 系统开展调试时,应注意以下方面: 1)由于在PCM(Pulse Code Modulation)编码及DPCM 编码模式下都要采用8 kHz 的采样率,所以,每次压缩中断服务程序必须在不超过125 s 的时间内完成,因此,压缩录音处理程序的代码必须开展可能的优化,以减少程序执行时间,以免采样和数据处理或信息显示发生冲突,也可防止在中断采样时造成采样点的丢失。 2)在选择ADC0809 的时钟时,经典选择是640 kHz 左右,初选择将单片机的ALE 端4 分频后作为ADC0809 的时钟信号,但发现影响了LCD 的输出显示。将ALE 改为2 分频后(用1 M 触发)作为ADC0809 的时钟信号,问题得到解决。 3)使用MAX813L 复位芯片替代RC 复位电路,使电路

温馨提示

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

评论

0/150

提交评论