基于单片机的语音录放系统设计Word文档格式.docx
《基于单片机的语音录放系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的语音录放系统设计Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
第七章致谢……………………………………………………………………26
第八章参考文献………………………………………………………………27
第一章绪论
在声学领域,单片机技术与各种语音芯片相结合,即可完成语音的合成技术,使得单片机语音系统的实现成为可能。
所谓语音芯片,就是在人工或者控制器的控制下可以录音和放音的语音芯片,但语音信号是模拟量(语音芯片存储和播放声音的基本工作方式为:
声音→模拟量→A/D→存储→D/A→模拟量→播放)。
采用此方法的语音芯片外围电路比较复杂,声音质量也有一定失真。
而另一类语音芯片采用ROM存储方法,将模拟量语音数据直接写入半导体存储单元中,不需另加变换电路,使用方便,且语音音质自然,利用数字语音电路来实现语音信号的记录、存储、还原等任务。
数字语音电路是一种集语音合成技术、大规模集成电路技术以及微控制器为一体的并在近十几年迅速发展起来的一种新型技术。
语音集成电路与微处理器相结合,具有体积小、扩展方便等特点,具有广泛的发展前景,如电脑语音钟、语音型数字万用表、手机话费查询系统、排队机、监控系统语音报警以及公共汽车报站器等。
本文所设计的录放及循环放音系统,其微控制器采用的是美国ATMEL公司生产的低电压、高性能8位CMOS单片机AT89C51,片内含8k字节的可反复擦写的Flash只读程序存储器和256字节的随机存取数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,片内置通用8位中央处理器和Flash存储单元,适合于许多较为复杂控制应用场合。
数码语音芯片选用的是ISD2500系列单片语音录放集成电路ISD2560,它具有抗断电、音质好,使用方便,无须专用的开发系统等优点。
录音时间为60s,能重复录放达10万次。
芯片采用多电平直接模拟量存储专利技术,省去了A/D、D/A转换器。
每个采样值直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”
本例即采用这种模拟语音数据直接存储语音芯片设计基于单片机的语音录放系统。
第二章ISD2560芯片介绍
2.1语音芯片的选取
目前市场上流行的语音芯片有很多,从性价比的角度考虑,美国ISD公司的ISD芯片系列语音芯片可谓一枝独秀。
ISD芯片的地址以信息段为基本组成单元,只要在分段录、放音操作前(不少于300ns),给地址A0~A9赋值,录音及放音功能均会从设定的起始地址开始,录音结束由录音键操作决定,芯片内部自动在该段的结束位置插入结束标志(EOM);
而放音时芯片遇到EOM标志即自动停止放音。
图2.1为ISD系列产品的基本框图。
在一块芯片上集成有麦克风前置放大器、自动增益控制电路、抗混淆和平滑滤波器、模拟存储阵列、扬声器驱动器、控制接口和内部精确的参考时钟。
其外部元件包括:
麦克风、扬声器、开关和少数几个电阻、电容,再加上电源或电池,就可构成一个完整的语音录放系统。
在只需要播放语音信息的应用系统中,可直接外接扬声器,而无需外接其它器件。
图2.1ISD串行接口基本框图
ISD语音芯片目前有ISD1000、ISD1100、ISD1200/1400、ISD2500、ISD3340和ISD4000系列,本设计采用的是2500系列中的ISD2560芯片。
ISD2560具有10个地址输入端,寻址能力可达1024位,前600个地址用于直接存取语音,地址600~767未使用,地址768~1024为工作模式选择用,因此最多能分600段;
设有OVF(溢出)端,便于多个器件级联;
单片存储时间为60秒,直接存储模拟语音信号。
ISD2560语音芯片具有以下优点:
(1)采用模拟数据在半导体存储器中直接存储的专利技术,模拟语音数据直接写入单个存储单元,不需要经过A/D、D/A转换。
(2)内部集成了大容量的EEPROM,不再需要扩展存储器。
(3)控制简单,控制引脚与TTL电平兼容
(4)集成度高、使用方便。
(5)能较好地真实再现语音的自然效果,避免了一般固体语音电路因为量化和压缩所造成的量化噪声和失真现象。
因此,本实验选用ISD2560语音芯片。
2.2语音芯片ISD2560简介
该芯片采用多电平直接模拟量存储专利技术,每个采样值可直接存储在片内单个ROM单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,从而避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”,该器件的采样频率为8kHz,同一系列的产品采样频率越低,录放时间越长,但通用频带和音质会有所降低。
ISD2560可重复录放10万次,它是一种永久记忆型语音
录放电路,它有音质自然,使用方便、单片存放、反复录音、低功耗、抗断电等许多特点,因此在许多领域获得了广泛的应用。
ISD2560省去了A/D和D/A转换器,集成度较高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器和480KB的ROM。
ISD2560内部ROM存储单元均匀分为600行,有600个地址单元,每个地址单元指向其中一行,每个地址单元的地址分辨率为100ms。
此外,ISD2560还具备微控制器所需的控制接口。
通过操作地址和控制线可完成不同的任务,以实现复杂的信息处理功能,如信息的组合、连接、设定固定的信息段和信息管理等。
ISD2560可不分段,也可按最小段长为单位来任意组合分段。
ISD2560的主要功能特性如下:
(1)易实现单片语音录放
(2)高质量、自然地语音还原技术
(3)人工控制或者微控制器控制声音播放,内置微控制器串行通信接口
(4)录音存放在芯片上的非易失内存单元中,提升零功耗信息存储,去
除了电池备份电路。
(5)信息可无电保存100年。
(6)+5V供电
2.3语音芯片引脚功能介绍
语音芯片选用ISD公司的ISD2560,它共有3种封装形式:
32脚的TSOP封装、28脚的DIP封装和28脚的SOIC封装。
本例选用SOIC封装,其引脚分布如图2.3。
图2.3ISD2560的引脚排列
表2.3-1ISD2560引脚功能描述
引脚序号
引脚名称
功能
1~7
A0/M0~A6/M6
地址线
8~10
A7~A9
11
AUXIN
当/CE和P/-R为高,放音不进行,或处入放音溢出状态时,本端的输入信号通过内部功放驱动喇叭输出端。
12,13
VSSD、VSSA
数字地和模拟地,这两脚最好在引脚焊盘上相连。
14,15
SP+、SP-
扬声器输出。
16,28
VCCA、VCCD
模拟电源、数字电源,尽可能在靠近供电端处相连。
17
MIC
本端连至片内前置放大器,外接话筒应通过串联电容耦合到本端,耦合电容值和本端的10KΩ输入电阻(如图2)决定了芯片频带的低频截止点。
18
MICREF
本端是前置放大器的反向输入。
当以差分形式连接话筒时,可减小噪声,提高共模抑制比。
19
AGC
AGC动态调整前置增益以补偿话筒输入电平的宽幅变化,使得录制变化很大的音量时失真都能保持最小。
响应时间取决于本端的5KΩ输入阻抗外接的对地电容(即图2中C2)的时间常数。
释放时间取决于本端外接的并联对地电容和电阻(即图2中R5和C2)的时间常数。
470KΩ和4.7uF的标称值在绝大多数场合下可获得满意的效果.
20
ANAIN
本端为芯片录音信号输出。
对话筒输入来说ANAOUT端应通过外接电容连至本端。
21
ANAOUT
前置放大器的输出.前置电压增益取决于AGC端电平
22
/OVF
芯片处于存储空间末尾时本端输出低电平脉冲表示溢出,之后本端状态跟随/CE端的状态,直到PD端变高。
本端可用于级联。
23
/CE
本端变低后(而且PD为低),允许进行录放操作。
芯片在本端的下降沿锁存地址线和P/R端的状态。
24
PD
本端拉高使芯片停止工作,进入不耗电的节电状态,芯片发生溢出,即/OVF端输出低电平后,要将本端短暂变高复位芯片,才能使之再次工作。
25
/EOM
EOM标志在录音时由芯片自动插入到该信息的结尾。
放音遇到EOM时,本端输出低电平脉冲。
芯片内部会检测电源电压以维护信息的完整性,当电压低于3.5V时,本端变低,芯片只能放音。
26
XCLK
外部时钟。
本端内部有下拉元件,不用时应接地。
27
P/R
本端状态在/CE的下降沿锁存。
高电平选择放音,低电平选择录音。
录音时,由地址端提供起始地址,录音持续到/CE或PD变高,或内存溢出;
如果是前一种情况,芯片自动在录音结束处写入EOM标志。
放音时由地址端提供起始地址,放音持续到EOM标志。
如果/CE一直为低,或芯片工作在某些操作模式,放音会忽略EOM,继续进行下去。
ISD2560内置若干种操作模式,因而可用最少的外围器件实现最多的功能。
操作模式也由地址端控制;
当最高两位都为1时,其它地址端置高可选择某个(或某几个)特定模式。
因此操作模式和直接寻址相互排斥。
具体操作模式见表2.3-2。
操作模式可由微控制器也可由硬件实现。
使用操作模式要注意两点:
(1)所有操作最初都是从0地址(即存储空间的起始端)开始。
后续的操作根据选用的模式可从其它地址开始。
但电路由录转放或由放转录(M6模式除外)或都执行了掉电周期后,地址计数器将复位为0。
(2)当CE变低且最高两地址位同为高时,执行操作模式。
这种操作模式将一直有效。
直到CE再次由高变低,芯片重新锁存当前的地址/模式端电平并执行相应的操作为止
表2.3-2操作模式简表
模式
功能
典型应用
可组合使用的模式
M1
信息检索
快进入信息
M4、M5、M6
M2
删除WOM
在最后一条信息结束处放EOM
M3、M4、M5、M6
M3
循环
从0地址连续放音
M1、M5、M6
M4
连续寻址
录放连续的多段信息
M0、M1、M5
M5
/CE电平有效
允许暂停
M0、M1、M3、M4
M6
按键模式
简化外围电路
M0、M1、M3
M0(信息检索):
快速跳过信息而不必知道其确切地址。
/CE每输入一个低脉冲,内部地址计器就跳到下一条信息,此模式仅用于放音,M4同时使用。
M1(删除EOM标志):
使分段信息变为一条信息,仅在信息后保留一个EOM标志.这个模式
完成后,
录入的所有信息就变成一条连续的信息。
M3(信息循环):
循环重入位于存储空间起始处的那条信息。
一条信息可以完全占满存储空
间,那么循环就从头至尾进行,这进/OVF不变低。
M4(连续寻址):
正常操作中,重放遇到EOM标志时,
地址计数器会复位。
M4禁止地址计
数器复位,使得信息可连续录放或重放。
M5(/CE电平有效):
通常,录音时/CE为电平触发,放音时/CE为边沿触发。
本模式将放音
时/CE设置为电平触发,特别适用于需用/CE终止放音的场合。
操作为:
/CE变低扣,芯
片从内存起始放音,/CE变高放音即刻停止。
/CE再变低后。
仍从内存起处开始放音,除
非M4也是高。
M6(按键模式):
本模式的外围电路最简,成本大为降低;
在录放结束,/CE变高后,芯片自
动进入节电模式。
而且,/CE、PD、/EOM的作用重新定义如下,
/CE(开始/暂停,低脉冲有效):
/CE端的下降沿控制操作的开始和暂停。
当芯片不录不放时,
/CE端的下降沿就启动录/放操作。
之后,如果在芯片没遇到EOM标志(放音时)或没发
生溢出疥,再来一个/CE下降沿将暂停当操作。
暂停后,地址并不复位,再来一个/CE下
降沿后从暂停处继续操作。
PD(停止/复位,高脉冲有效):
PD端的上升沿停止妆前录/放操作,并复位地址。
/EOM(运行指示):
/EOM变高表示录/放操作正在进行,可驱动LED等。
ISD2560内部地址单元寻址ISD2560虽然提供了地址输入线,但它的内部信息段的地址却无法读出。
本系统采用单片机来控制,不需读出信息地址,而直接设置信息段起始地址。
其实现方式有两种:
一是由于ISD2560的地址分辨率为100ms,所以可用单片机内部定时器定时100ms,然后再利用一计数器对单片机定时次数进行计数,则计数器的计数值为语音段所占用的地址单元。
该方式能充分利用ISD2560内部的E2PROM,在字段较多时可利用该方法。
二是语音字段如果较少,则可根据每一字段的内容多少,直接分配地址单元。
一般按每1s说3个字计算,60s可说180个字,再根据ISD2560的地址分辨率为100ms,即可计算出语音段所需的地址单元数。
本文采用第二种方式。
录放音时AT89C51单片机对ISD2560的控制录音时,按下录音键,单片机通过口线设置语音段的起始地址,再使PD端、P/R端和/CE端为低电平启动录音;
结束时,再次按下录音键,单片机又让/CE端回到高电平,即完成一段语音的录制。
同样的方法可录取第二段、第三段、……。
特别值得注意的是,录音时间不能超过预先设定的每段语音的时间。
放音时,根据需播放的语音内容,找到相应的语音段起始地址,并通过口线送出。
再将P/R端设为高电平,PD端设为低电平,并让/CE端产生一负脉冲启动放音,这时单片机只需等待ISD2560的信息结束信号,即/EOM的产生。
信号为一负脉冲,在负脉冲的上升沿,该段语音才播放结束,所以单片机必须要检测到/EOM的上升沿才能播放第二段,否则播放的语音就不连续,而且会产生啪啪声。
第三章电路原理图及说明
硬件电路由单片机芯片AT89C51和语音芯片ISD2560及它们的接口电路构成。
电路实现的功能如下。
按下开始按钮键,启动录音,再次按下开始键,结束录音。
注意,录音时间不能超过预先设置的每段语音时间。
3.1复位电路
3.1.1复位电路的作用
如图3.1.1为复位电路,复位时单片机的初始化操作,单片机启动运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而复位是一个很重要的操作,但单片机本身一般不能自动进行复位,必须配合相应的外部电路才能实现。
图3.1.1复位电路仿真图
在上电或复位过程中,控制CPU的复位状态:
这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执
行错误操作,也可以提高电磁兼容性能。
无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
电容在上接高电平,电阻在下接地,中间为RST。
这种复位电路的工作原理是:
通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。
3.1.2基本的复位方式
首先RST保持两个机器周期以上的高电平时自动复位
1、上电复位:
上电瞬间,电容充电电流最大,电容相当于短路,RST端为高电平,自动复位;
电容两端的电压达到电源电压时,电容充电电流为零,电容相当于开路,RST端为低电平,程序正常运行。
2、手动复位:
首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被短路放电;
按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,正常工作。
3.2时钟电路
单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。
单片机的时钟信号通常有两种产生方式:
内部时钟方式和外部时钟方式。
内部时钟方式的原理如图3.2所示是在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。
晶振的取值范围一般为0~24MHz,常用的晶振频率有6MHz、12MHz、11.0592MHz、24MHz等。
一些新型的单片机还可以选择更高的频率。
外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率的作用,一般选用20~30pF的瓷片电容。
图3.2晶振电路仿真图
外部时钟方式则是在单片机XTAL1引脚上外接一个稳定的时钟信号源,它一般适用于多片单片机同时工作的情况,使用同一时钟信号可以保证单片机的工作同步。
这种方式适宜用来使单片机的时钟与外部信号保持同步。
而时序是单片机在执行指令时CPU发出的控制信号在时间上的先后顺序。
AT89C51单片机的时序概念有4个,可用定时单位来说明,包括振荡周期、时钟周期、机器周期和指令周期。
振荡周期:
是片内振荡电路或片外为单片机提供的脉冲信号的周期。
时
序中1个振荡周期定义为1个节拍,用P表示。
时钟周期:
振荡脉冲送入内部时钟电路,由时钟电路对其二分频后输出的时钟脉冲周期称为时钟周期。
时钟周期为振荡周期的2倍。
时序中1个时钟周期定义为1个状态,用S表示。
每个状态包括2个节拍,用P1、P2表示。
机器周期:
机器周期是单片机完成一个基本操作所需要的时间。
一条指令的执行需要一个或几个机器周期。
一个机器周期固定的由6个状态S1~S6组成。
指令周期:
执行一条指令所需要的时间称为指令周期。
一般用指令执行所需机器周期数表示。
AT89C51单片机多数指令的执行需要1个或2个机器周期,只有乘除两条指令的执行需要4个机器周期。
了解了以上几个时序的概念后,我们就可以很快的计算出执行一条指令所需要的时间。
例如:
若单片机使用12MHz的晶振频率,则振荡周期=1/(12MHz)=1/12us,时钟周期=1/6us,机器周期=1us,执行一条单周期指令只需要1us,执行一条双周期指令则需要2us。
3.3单片机与语音芯片部分外围接线
如图3.3-1中,U1为单片机芯片AT89C51,工作于12MHz的时钟。
单片机的P0口和P2.0、P2.1引脚提供语音芯片ISD2560的地址/模式输入,通过P2.0、P2.1,单片机可以配置ISD2560的操作模式。
单片机的P3.6和P3.7脚控制语音芯片ISD2560的录/放模式选择,低电平置ISD2560为录音状态,高电平置芯片为放音状态。
单片机的P1.6脚和ISD2560的节电控制输入相连,单片机通过此引脚可以控制芯片的开关。
单片机的P1.7脚用于控制语音芯片的片选,低电平时选中芯片。
单片机的INT0脚、P1.4与ISD2560的EOM标志输出相连,EOM标志在录音时由芯片自动插入到录音信息的结尾处,放音遇到EOM时,会产生低电平脉冲,触发单片机中断,单片机必须在检测到此输出的上升沿后才会播放新的录音,否则播音就不连续。
图3.3-1单片机部分外围接线仿真图
图3.3-2ISD2560外部接线仿真图
在图3.3-2中,为语音ISD2560,SP和MK分别为扬声器和话筒。
芯片的外围电路已经详细给出,这些可参考ISD2560的芯片资料。
ISD2560语音芯片和单片机的端口I/O表如下:
系统I/O分配表
输入信号
输出
单片机端口
元器件
语音芯片端口
P3.5
SB1
SP+
SPEAKER
P3.6
SB2
P3.7
SB3
SP-
MIC
MK
第四章语音录放工作流程
4.1硬件流程
该系统的硬件电路主要由单片机、语音录放器件、麦克风及扬声器构成。
图4.1-1为其硬件结构框图。
图4.1-1系统硬件框图
该系统的核心为AT89C51单片机,AT89C51具有快速8051内核、8KBFlashE2pROM、256BIDATARAM,完全符合该系统硬件要求。
为实现语音录放功能,采用ISD2560器件,其录音时间为60s,并且能够接收单片机发出的命令,接收录音指令时,将从麦克风传出的语音段直接保存在内部存储器中;
接收到放音指令时,按照单片机给定的地址,从存储器中取出语音段并驱动扬声器,以声音的形式播出语音段。
(a)录音工作流程
(b)放音工作流程
图4.1-2系统录放音工作流程
其具体的操作方法如下:
(a)录音
录音时,第一次按录音键开始录音,第二次按录音键表示暂停(即保存,设置EOM)。
暂停录音后后,按放音键,可以从地址指针为0处开始录音。
录音时,可通过PD段的高脉冲来停止录音。
按“STOP”键为复位,再录音时,又将从第一段开始。
(b)放音
播放时,第一次按播音键即开始播放。
播放过程中,再次按放音键则可暂停,第三次按播放键可以在暂停处继续播放。
如果在第二次播放键按下后,再按录音键,则可以从暂停处开始录音。
播放中,可通过PD端产生的高脉冲来停止播放,同时将地址指针复位到0.播放中没有PD高脉冲,则一直播放下去,直到遇到芯片溢出处时,再返回地址指针为0