基于单片机89C52与CPLD的数字语音存储与回放系统(CY62256)

时间:2007-04-20

本系统以89C52单片机和MAX7000S系列EPM7128SLC84-15的CPLD器件为主控制器,实现将语音信号经脉冲编码调制、增量调制、"插值法"后压缩存储与回放的系统,用户可以通过按键选择录、放音的模式,同时液晶显示屏显示提示信息、录、放音的时间长度信号。

系统组成框图如所示,主要由语音处理前向通道、A/D转换模块、单片机控制兼数据处理模块、D/A转换模块、键盘显示模块及后向处理通道等组成。89C52单片机构成系统的控制中心,控制系统的主要功能和显示:EPM7128SLC84-15内部已集成373、138和分频器。

输入的微弱信号由射极跟随器隔离后通过前级放大电路放大到振幅在2.5V之内,再通过300Hz~3.4kHz的带通滤波器滤除50Hz的市电影响和高频噪声;ADC0809的参考电压选择+5V,其采集的电压信号范围是0~+5V,因为语音信号是双极性信号,经滤波器输出信号幅值为±2.5V,因此须加1个+2.5V直流偏置电压,使语音信号变为0~+5V的单极性信号,使ADC0809采样有效,并保证一定的采样;DAC0809的时钟选640kHz左右的经典时钟值,只须将单片机的ALE端二分频后(用1MHz触发)即可正常采集语音信号和输出LCD显示信息。

采样后的单极性信号经A/D转换后进入单片机进行相应处理,然后D/A转换成模拟信号输出,再通过300Hz~3.4kHz的带通滤波器滤波,经音频功放将语音信号放大输出,系统原理图如所示。

硬件设计

前级放大模块 因话筒的输出阻抗不可忽略,故放大前须进行隔离,尽量减小信号输出阻抗,本文采用射极跟随隔离电路。话筒输出的电压峰一峰值约几百毫伏,只需将信号放大几倍后使其峰一峰值达到5V左右即可,采用多级放大,同时系统在加法器输入端及A/D输入端均加上射极跟随隔离,减少系统噪声干扰,电路原理图如所示。

主控制器电路设计 89C52单片机为系统的控制中心,主要实现以下的功能:一方面控制LCD显示语音信号的相关信息、按键识别和功能选择;另一方面控制CY62256的存储和A /D、D/A转换,实现语音的存储和回放。

EPM7128SLC84-15中的373、分频器及138电路均在其内部实现,减少芯片的使用,降低成本,并为系统的功能扩展提供条件。

滤波模块设计 在设计带通滤波器时,按品质因数Q的大小分为窄带Q>10和宽带Q<10两种情况,fh为上限频率,为f1下限频率,为f0中心频率,Q为品质因数,则
时,应采用高通一低通级联的方式实现。

本文的设计的300Hz~3.4kHz的带通滤波器采用两级低通滤波器、两级高通滤波器级联方式,提高品质因素Q值,二阶压控电压源滤波电路如所示,高通和低通都只有。

低通滤波器的截止频率为3.4kHz,级R1=6.8kΩ,R2取50kΩ的可调电阻器,C=6.8nF,C1=2.2nF;第二级R1取10kΩ的可调电阻器,R2=20kΩ,C=6.8nF,C1=2.2nF。

高通滤波器的截止频率为300Hz,级R1=3.9kΩ+150Ω,R2取100kΩ的可调电阻器,C1=C2=100nF:第二级R1取100kΩ的可调电阻器,R2=9.1 kΩ,C1=C2=100nF。

Multisim2001软件模拟设计的参数值,幅频特性曲线如所示,带通宽度、截止点和矩形系数都达到系统要求。

音频功放模块的设计 后级音频功放采用LM386音频功放,原理图如所示。

软件设计

89C52单片机内部的程序流程图如所示。其中DPCM编码模式编程时将8位的存储空间分成两份,使存储量增加4倍,放音时间增加一倍。每4个bit存放4个增量,其中第1位为符号位,0表示正数,1表示负数,其他3位均表示数值,数值范围为-7~7。

由于在PCM编码和DPCM编码模式下都要采用8kHz的采样率,所以每次压缩中断服务程序必须在不超过125μs的时间内完成,压缩录音处理程序的代码必须进行可能的优化,以减少程序执行时闻,以免采样和数据处理或信息显示发生冲突,同时也避免在中断采样时造成采样点的丢失。

本文在录音过程中处于静音状态时,外界的输入噪声通过软件设计,在程序设计中加入判断输入信号幅值范围的语句,控制零电平左右内的语音信号全部按零电平进行存储,以消除静音状态的噪音。

CPLD源程序 语音存储回放系统CPLD源程序如表1所示。

系统调试与测试

本文采用Tektronix TDS 1002双信道数字示波器、SG173SB3直流稳压稳流电源、Agilent 33120A信号发生器、FLUKE17B型4位数字万用表仪器进行测试。

调试时采用模拟与数字分离调试、级联调试的方法,先对各模拟电路分块调试,当每个模拟电路都达到设计标准后,将前向输入部分与后级输出部分用导线连起来,输入语音信号,检查扬声器能否输出正常放大的语音信号,同时调节各部分放大电路、滤波电路和功率放大电路,使输出语音信号更清晰;然后再将模拟与数字电路级联,用单片机控制A/D采集、D/A转换,同时将数据不存储在RAM区的方式调试,直至信号采集与转换后清晰地放出语音信号,再调试直接存储回放的PCM模式;对整个系统的按键、显示及各种语音信号压缩编码模式进行调试。

滤波模块的调试 测试滤波器的截止频率fc和放大倍数Av,若fc不满足设计要求,则应对RC滤波器的电路进行分析和调整,Q值越大,滤波器的衰减速率越大,滤波效果好,但Q值变大的同时也会使得幅频特性曲线在衰减的区域出现上升部分,通常情况下取Q=0.707;同时适当调整R的取值即可改变截止频率的大小,从而调节网络的滤波特性。

指标测试 300Hz~3.4kHz带通滤波模块的前级、后级二阶RC有源滤波电路幅频特性参数分别如表2、表3所示。

语音存储回放效果测试 经过分别对C51和CPLD的软件调试和仿真,采用不同的编码方式进行测试,各种编码方式的终放音效果记录如表4所示。


  

参考文献:

[1]. 89C52 datasheet https://www.dzsc.com/datasheet/89C52_105388.html.
[2]. MAX7000S datasheet https://www.dzsc.com/datasheet/MAX7000S_1018714.html.
[3]. EPM7128SLC84-15 datasheet https://www.dzsc.com/datasheet/EPM7128SLC84-15_1054460.html.
[4]. CPLD datasheet https://www.dzsc.com/datasheet/CPLD_1136600.html.
[5]. ADC0809 datasheet https://www.dzsc.com/datasheet/ADC0809_123186.html.
[6]. CY62256 datasheet https://www.dzsc.com/datasheet/CY62256_1067685.html.
[7]. LM386 datasheet https://www.dzsc.com/datasheet/LM386_1054627.html.


上一篇:AT89C2051和TLP521-2在自动窗控制器中的应用(图)
下一篇:针对DSP应用设计的系统存储器

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料