基于51单片机的语音存储与回放系统设计Word格式文档下载.docx
《基于51单片机的语音存储与回放系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的语音存储与回放系统设计Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
与模拟设备相比,数字设备得优点颇多,比如容易小型化,集成化,成本更加低廉,也更加稳定的,并且操作更直接,方便。
如用于监视环境声音采集系统;
在家里或学校使用语音,视频机器等,可以被看作是一个记录数字音响系统,是一个典型的应用。
在语音信号处理中,传统的方法是使用过滤器来处理,这种方法是利用模拟信号和数字信号之间的相互转换,来实现语音的输入和输出。
但这种方法的缺点是,输出不稳定,嘈杂语音信号或声音的修改,这是一种模拟电路不能避免的。
为了解决这个问题,我们可以使用专用的音效芯片。
语音芯片是控制器的控制下,可手动或声音记录和回放芯片。
语音芯片可以很容易地在单片机系统中使用,并且在微控制器接口,是很容易的,它的体积和重量可满足单片机系统的要求。
因此,这个问题是设计和使用的声音芯片微控制器,数字信号控制语音的组合。
2国内外研究现状
伴随着IT行业的蓬勃发展,各种各样的语音录制和传输设备出现,在一个典型的数字语音记录系统中,语音只是一个简单的收集,存储和回放;
尽管提供高保真声音可以是很大,但将导致语音设备和大容量存储的数据的需求。
对于大型系统而言,我们可以采用更大的容量的硬盘,甚至是一个大型的磁盘阵列来解决;
但是对于像视频机,移动语音等容量有限的小型设备来说,这种方法就失去了它的效用
由美国ISD系列芯片ISD语音制造目前典型的音响设备。
与直接存储在内存中的专利技术,半导体用语音模拟数据ISD系列芯片,模拟语音是准备直接将数据写入到一个单一的存储单元,无需A/D或D/A转换器,就能很大程度上重现的良好的本色和声音,避免了因为避免了一般固体语音电路因为量化和压缩所造成的量化噪声和失真现象。
同时芯片功能强大:
即录即放,声音可以掉电保存,10万次的擦写寿命,手动操作和控制兼容的CPU,多芯片级联,无需开发系统等方面。
3研究方法
为了语音的存储和播放系统的要求,整个系统被分成记录,回放和防止三种状态。
语音信号它是一种模拟信号。
对于它本身来说不能完成数字化处理,它需要一个特殊的音效芯片,或完全模拟语音信号从A/D和D/A转换处理。
单片机在这一过程中发挥了重要作用。
单片机需要控制语音录音的开始与结束,设定信号存储的地址,并在播放时寻址播放空间并控制播放。
对于通过A/D和D/A转换完成语音信号处理的方法描述如下:
模拟语音信号转换成数字信号,从模拟到数字转换器,然后在存储器中,播放时,通过微控制器控制所述微控制器数据的控制存储从存储器中读出,然后变换成数字信号从扬声器或耳机¬
模拟输出放大的声音。
这种方法是简单的电路系统,程序很简单。
使用闪存来保存他的声音,即使断掉电源依然能够保持数据不丢失,所以保持数据的安全。
但该系统仍需要使用的模拟信号放大器和滤波器电路,这使接收相对失真的语音信号,还需要提高使用的过滤软件的技术,这样的设计不使用这种方法。
采用语音处理芯片,就省去了外部放大的环节,也不需要语音信号的滤波;
同时语音芯片的抗干扰能力强,对地防止信号的失真非常有效。
语音芯片也不用外连存储器,因为它的内部集成了模拟存储阵列,这使得电路更容易理解,所以本设计使用这种方法来实现。
4论文的主要工作
这种设计的主要任务是参考国内为的有关文献,根据自己对语音存储与回放功能的熟悉程度,用51单片机来设计一款语音存储与回放系统。
本文的结构如下:
绪论阐述本文的主题,背景以及研究现状,对已经出现的研究现状和成果进行简单的描述,并且对单片机语音存储与回放系统进行简介,引入论文的中心问题。
第1章 整体系统的设计。
概述选择这种设计的原因及总体过程,说明设计中用到的各种芯片,详细描述微控制器芯片语音选择方法,并介绍了芯片所需的各种功能。
第2章系统硬件设计。
详细介绍各个硬件模块的的组成以及它们的工作原理,着重对语音芯片的功能进行了介绍。
第3章系统软件设计。
介绍软件编写的流程图,对录音和放音部分单独介绍。
结论总结设计的过程,提出本设计的优缺点,并对系统有可能的的改进方向提出自己的展望。
第一章整体系统的设计
1.1总体方案论证
方案一:
系统主要由单片机AT89C51、AD574、DAC0832及闪速存储器AT29C040组成。
其原理图如图1-1所示。
MIC把声音转换成微弱的电信号,经放大器放大后,在经过带通滤波器的滤波过程,输出的信号经过A/D转换,然后被送入单片机内部。
接着单片机再将转换后的信号存储在存储器中,在需要放音时,再经D/A转换后输出。
这种方法的设计过程比较简单,但是由于语音信号比较容易受到外界的干扰,从而造成信号的失真,并且信号的压缩存储方式过于复杂,硬件电路调试起来比较困难。
图1-1方案一系统原理
方案二:
这种方案采用STC89C51单片机,再加上专用的语音处理芯片ISD2560。
由它们来设计实现语音存储与回放,实现语音的整段录放。
系统框图如图1-2所示。
图1-2方案二系统原理图
该系统对语音信号是采用ISD2560语音芯片来完成,这种芯片的抗干扰能力强,易维护,调整方便,同时还可以作为整个语音业务的子系统来使用,所以我选择了这个计划。
接下来,对这一计划进行单独的描述。
1.2器件选择
1.2.1单片机的选择
本设计在选取单片机时主要考虑了它的适应性和易操作两个方面,通过上网查阅资料和调查,我们最终选择了STC89C51芯片,它与AT89C51的对比如表1-2-1所示。
可见STC89C51的适应范围更广,更容易操作,除上表所示外STC89C51还有超低功耗、高抗静电的优势,设计过程中最担心的是干扰,这种芯片优异的抗干扰能力也能很好的解决我们的难题,下面我们来简单介绍下这款芯片。
表1-2-1芯片对比表
项目
STC89C51
AT89C51
储存器
8位ISP
FLASH储存器
4位ISP
内部RAM
512位内部RAM
128位内部RAM
I/O口线
32个I/O口线
中断源
6个中断源
5个中断源
工作电压
3.3-5V
5V
通信方式
串口通信
并口通信
STC89C51的芯片简介和优点如下表
表1-2-2STC89C51的芯片简介和优点
图1-3STC89C51芯片引脚图
1.2.2语音芯片选择
语音芯片,也被称为语音IC,也称为声音芯片。
芯片本身就能完成芯片录音的ADC和DAC的两个过程,包括语音数据的收集,分析,压缩,存储,和其他步骤。
它可以将语音信号通过采样过程,来转化为数字,存储在IC的ROM中,再通过电路将ROM中的数字还原成语音信号;
而语音芯片放音功能实质上是一个DAC过程。
语音芯片集成电路,根据点的类型,都用声音芯片集成电路被称为语音,但是在语音芯片的大类型中,又被分为语音IC(这里应该叫成SpeechIC)、音乐IC(这里应该叫成MusicIC)两种。
目前,最常使用的市场上语音芯片,如表1-2所示。
表1-2常用语音芯片对比表
TE6310
TE6332
ISD1420
ISD2560
语音长度
10s
32s
20s
60
采样频率(kHz)
6.4
4~6.4
8
放音触发
无
边缘/电平
电平
工作电压(V)
4.5~5.5
2.7~3.3
工作电流(mA)
30
45
静态电流(μA)
2
10
MIC前置
是
否
由上表可以看出,ISD2560语音芯片的语音长度较长,工作电流和电压也符合要求。
因此,本次设计将采用ISD2560作为系统的语音处理芯片参与工作。
1.3ISD2560语音芯片
ISD2560芯片优点颇多,例如它抗断电、音质好,无须专用的开发系统等等,在实际使用时比较简单便利。
它的录音时间为60
s,能满足本设计的要求,并且它的反复录放次数能达到10万次,寿命较长。
芯片采用多电平直接模拟量存储专利技术,省去了A/D、D/A转换器。
每个采样值都能直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声。
图1-4ISD2560内部原理框图
1.3.1ISD2560的引脚功能
ISD2560的引脚排列如图
图1-5语音芯片引脚图
一些引脚的主要功能描述如下:
表1-3-1ISD2560的引脚功能
1.3.2ISD2560的操作模式
表1-3-2模式控制说明表
使用操作模式时需要注意两点,如下表所示:
表1-3-3
1.3.3ISD2560的地址空间
ISD2500系列和1400系列语音电路一样,具有抗断电、音质好,使用方便等优点。
它的最大特点在于片内E2PROM容量为480K(1400系列为128K),所以录放时间长;
有10个地址输入端(1400系列仅为8个),寻址能力可达1024位;
因此可以达到60秒录音。
设有OVF(溢出)端,便于多个器件级联。
2500系列最多可分为600段,只要在分段录/放音操作前(不少于300纳秒),给地址A0~A9赋值,录音及放音功能均从设定的起始地址开始,录音结束由停止键操作决定,芯片内部自动在该段的结束位置插入结束标志(EOM);
而放音时芯片遇到EOM标志即自动停止放音。
2500系列地址空间是这样分配的:
注:
地址0~599作为分段用,地址600~767未使用,地址768~1023为工作模式选择。
表1-3-42500系列地址空间表
十进制
二进制
信息时间(秒)
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
2560
2575
2590
50
1
5.0
6.25
7.50
100
10.0
12.50
15.00
250
25.0
31.25
37.50
300
30.0
45.00
400
40.0
50.00
60.00
500
50.0
62.50
75.00
599
59.9
74.87
89.85
1.3.4ISD2560的应用电路
ISD2560语音芯片内部集成度很高,能减少外部元器件的使用个数和种类。
具体的电路如图1-6所示。
图1-6ISD2560基本电路原理
1.3.5电源电路
电源电路的设计如图所示。
由于本设计的芯片大都采用5VUSB电源供电,所以本系统采用经三端稳压器件W7805输出+5V电压来供电,电容的作用是用来减少输出脉动电压。
这样就能得到稳定的直流电压信号,经济实用。
如图1-7所示。
图1-7电源电路
1.4集成功率放大器芯片LM386
设计电路的最后是放音部分,要把前面录制的语音,通过扬声器播放出来,进行这一步需要对前面的信号放大,也就是升压,调幅或调频。
这时就要用到功率放大器。
本设计选用的是LM386集成功率放大芯片,它能有效的减少外围元件。
只需要添加一只外接电容和电阻在1脚和8脚之间,就能把电压增益调改变成任意数值,这样扬声器就能把录制的声音完整的播放出来了
1.4.1LM386电子特性
如表1-6所示,就是LM386芯片的电子特性。
如果外加6V电源电压,LM386的静态功耗仅仅只有24mW,因此在电池供电的场合用LM386效果更好。
它的输入电压最低为4V,最高为12V。
当它无任何操作时,仅仅需要4mA的电流,并且它的失真程度很低。
表1-4-1LM386电子特性表
测试环境
规格
工作电压Vs(V)
4~5
输入电压Vin(V)
-0.4~+0.4
输入阻抗Ri(kΩ)
静电流Iq(mA)
Vs=6V,Vin=0V
4~8
输出功率Pout(mW)
Vs=6V,Rl=8Ω,THD=10%
250~325
电压增益(dB)
Pin1、8开路
26
Pin1、8以10μF连接
46
频宽(kHz)
1.4.2LM386的引脚说明
如图是LM386的引脚排列:
图1-8LM386引脚图
反相输入端是引脚二,输出端是引脚5,同相输入端是3,地和电源分别为引脚4和6,电压增益设定端是引脚8和1。
通常在使用时旁路电容接在地和引脚7之间,大小一般是10μF。
LM386的电源电压为4~12V;
电压增益为20-200dB;
4mA是它静态消耗的电流;
带宽为300KHz时,1和8脚是开路的,音频功率0.5W;
输入阻抗为50K。
具体的线路连接详见附录一。
虽然应用LM386不难,但是也要谨慎,当器件断电、上电的一瞬间,或者工作稳定后,旋音量调节钮、插拔音频插头都有可能带来瞬态冲击,会在输出喇叭上发出令人讨厌的噪声。
第二章系统硬件设计
2.1系统硬件电路总体设计
硬件电路是由单片机控制部分、语音录放部分和功放部分组成。
主控制芯片是STC89C51单片机,通过ISD2560来实现语音的录放,LM386集成功放能使声音放大,控制起来方便并且简单易行。
选用的STC89C51单片机和ISD2560语音芯片都是易于控制和操作的,减少不必要的元器件,尽量简化芯片的外围电路,使整个硬件电路更加的易懂、易操作。
附录1是STC89C51与ISD2560的接口电路以及外围电路。
ISD2560的地址线连接单片机的P1口、P2.4和P2.5,可以来设置语音段的控制操作模式和起始地址;
P0.3、P0.4连接按键,由录放音来使用;
录放音状态由P2.0~P2.3控制;
发光二极管连接P0.0~P0.3,能提示当前录放音状态。
2.2STC89C51的外围电路设计
2.2.1晶振电路
是一种时序电路,它要想正常工作只有提供时钟脉冲信号。
单片机里面操作是以系统时钟信号为时间基准,来给各种指令的执行提供时钟节拍。
AT89C51得到系统时钟信号的方式有内部振荡或外部振荡。
本系统所使用的晶振是市场上常见的,频率为12MHZ,电容是根据系统的特性来决定的,所以选用陶瓷电容,它的大小是22pF。
详细电路如图所示。
图2-1晶振电路设计图
2.2.2复位电路设计
一般的设计系统都会有复位电路的存在,它是保障程序能正常运行的关键点,同样本设计也有考虑到复位电路,在进行语音的录制时,会有各种各样的外界干扰,这样会造成STC89C51单片机运算过程中数据混乱不能使其正常继续执行程序(称死机)或产生的结果不正确,使语音芯片不能正常的录制,或者放音时杂音过多,极大的影响语音录制和播放的品质,这时就需要复位电路,对单片机进行复位,以使程序重新开始运行,保证正常的语音录制和播放。
此次设计是使用外部复位的方法,所谓的外部复位就是如果一个高电平被加到RESET端口,并且超过了2机器周期时,单片机就会产生复位。
本系统的外部复位是通过按键来实现的,采用复位端电阻与Vcc电源接通而实现的按键电平复位方法,具体电路如下图2-2。
时把按键与一个10uF的电容相并联,这样能很大程度上抑制高频干扰和杂波,从而使系统的稳定性得到提高,设计出的系统才更加的可靠。
图2-2复位电路图
2.3语音电路设计
用ISD2560芯片构成的语音电路,如图2-3所示
图2-3语音电路设计图
声音信号放大是通过把扬声器输出信号与功放相连来实现的。
一些引脚的接法可以参考前文说明。
扬声器使用的型号是BTE-WUC-31MM(8Ω,0.5W),麦克风使用的是6*5咪头驻极性电容式麦克风,实物如下图。
图2-4实物图
2.4功放电路设计
LM386是功率放大器,它的主要作用前面也有提及,它能对输入的信号进行放大,主要是为了对扬声器进行输出。
放大器的外围电路图如2-5所示
LM386
图2-5功放电路图
放音音量的大小可以通过调节滑动电阻器的大小来实现。
本设计是用LM386功率放大器的INPUT+端和ISD2560语音芯片的SP+端之间加上一的滑动变阻器,具体电路如附录一所示。
ISD2560语音芯片录入的声音信号,经过的芯片的SP+端传递给下一级,在信号的必经之路上添加滑动变阻器,便可以通过改变滑动变阻器的阻值来改变传输信号的电压,进而改变传递给扬声器的信号的大小,就可以实现对音量的调节,操作比较简单。
2.5按键部分电路设计
录放状态的表示是由LED灯来完成,工作状态、录音开始状态和放音开始状态分别由红、黄、绿三盏LED灯表示。
按键的作用主要是控制录音和回放过程,所以本设计不仅有复位键,而且还有另外2个按键:
录音按键、放音按键。
这部分的电路图如图2-6所示。
注:
LED1型号-HG003;
LED2型号-HG002;
LED3型号-HG001
图2-6按键部分电路图
RECORD键和PLAY键是一端与地相连,另外一端接单片机的P3和P4端口,如果这两个按键没有按下时,单片机的P3、P4端口就相当于是和高电平Vcc相连;
如果按键按下时,单片机的P3、P4端口通过按键和地进行连接,相当于被置为低电平。
在通过软件程序的编写就能检测到P3、P4口的电位情况,也就能表示录音键和放音键的是否按下。
这样就能实现录放状态的控制了。
第三章系统软件设计
本文中介绍的系统是以STC89C51单片机作为硬件开发核心,STC89C51的软件部分采用的是汇编语言,软件采用符合汇编语言的KEILC51编译器。
整个程序的设计中我们遵循着简洁,易懂的设计思想,在破坏程序完整性的前提下,简化程序编码。
在下面的叙述中,我们将结合具体硬件电路来介绍各模块的软件设计。
3.1主要变量说明
程序中的主要变量及相关功能如下表
表3-1变量功能表
3.2主程序工作原理及流程图
本系统中录放过程的实现是基于单片机对语音芯片的控制,系统录音与回放的程序实际是单片机通过对ISD2560语音芯片的控制字的写入来完成的,整个程序的主流程图如下图3-1所示
Y
图3-1主程序流程图
语音芯片ISD2560会提供了地址输入线,但是语音芯片内部的信息段地址却是不能读取。
需要使用直接寻址模式寻址。
它的实施有