毕业设计(论文)-基于ISD4004芯片的语音录放系统设计.doc_第1页
毕业设计(论文)-基于ISD4004芯片的语音录放系统设计.doc_第2页
毕业设计(论文)-基于ISD4004芯片的语音录放系统设计.doc_第3页
毕业设计(论文)-基于ISD4004芯片的语音录放系统设计.doc_第4页
毕业设计(论文)-基于ISD4004芯片的语音录放系统设计.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

基于ISD4004芯片的语音录放系统设计大连理工大学城市学院本科生毕业设计学院:电子与自动化学院专业:电子信息工程班学生:指导教师:完成日期:2012年5月31日基于ISD4004芯片的语音录放系统设计大连理工大学城市学院本科生毕业设计(论文)基于ISD4004芯片的语音录放系统设计总计毕业设计(论文)48页表格5个插图18幅基于ISD4004芯片的语音录放系统设计I摘摘要要基于ISD4004芯片的语音录放系统设计用单片机控制语音芯片,再把单片机和语音芯片嵌入到通信设备,智能仪器,治安报警及儿童玩具中,就可做成语音播放的机器。本文介绍了基于AT89C2051单片机及ISD4004语音板为主要部件的语音录放电路的工作原理、硬件和软件的设计。ISD4004系列工作电压3V单片录放时间8至16分钟音质好适用于移动电话及其他便携式电子产品中。芯片设计是基于所有操作必须由微控制器控制操作命令可通过串行通信接口SPI送入。论文概述了语音录放电路的原理,并且在介绍语音录放系统功能的基础上,提出了系统的总体构成。针对录放系统的录音、放音部分的总体设计方案进行了论证。进一步介绍了单片机AT89C2051应用在系统中的应用,分析了系统各部分的硬件及软件实现。关键词关键词:ISD4004AT89C2051单片机语音录放基于ISD4004芯片的语音录放系统设计IIAbstractThedesignofvoicerecordingandplaybacksystembasedonisd4004Withthesingle-chipmicrocomputercontrolandthenmakethepronunciationchipmicrocontrollerandpronunciationchipembeddedincommunicationequipmentintelligentinstrumentssecurityalarmandchildrenstoyssocanmakeaspeechbroadcastmachine.ThispaperintroducesISD4004basedonAT89C52singlechipcomputerandofthemainpartsofspeechplateastheworkingprincipleofvoicerecordingcircuitandthedesignofhardwareandsoftware.ISD4004seriesworkingvoltagemonolithic3Vrecordingtime8to16minutestimbresuitableobilephonesandotherportableelectronics.ChipdesignisbasedonalltheoperationmustbySPIinto.Thispapersummarizestheprincipleofvoicerecordingcircuitandintroducesthefunctionofspeechonthebasisofrecordingsystemputsforwardthegeneralstructureofthesystem.Recordingsystemfortherecordingplaybackpartoftheoveralldesignschemeisdemonstrated.ThispaperintroducesmicrocontrollerAT89C52singleapplicationsinsystemtheapplicationsystemwereanalyzedeachpartofhardwareandsoftwarerealization.KeywordsKeywords:ISD4004;89C2051microcontroller;voicerecordingandplayback基于ISD4004芯片的语音录放系统设计III目目录录摘摘要要.IABSTRACT.II目目录录.III引引言言.1第第1章绪论章绪论.21.1系统设计的意义.21.2系统设计的目的.31.3系统的主要工作方法.3第第2章章单片机控制技术和开发环境介绍单片机控制技术和开发环境介绍.32.189C2051单片机性能和引脚介绍.32.1.1概述.32.1.2AT89C2051主要性能参数.42.1.3引脚功能说明.42.2KEIL开发环境和建立工程.62.2.1keil简介.62.2.2Keil工程建立.72.3ISD4004介绍.102.3.1性能简述和引脚图.102.3.2引脚描述.112.4SPI(串行外设接口).132.4.1协议介绍.132.4.2信息快进.142.4.3上电顺序.142.4.4SPI端口的控制位.162.4.5SPI控制寄存器.16基于ISD4004芯片的语音录放系统设计IV2.4.6时序.17第第33章章系统总体设计系统总体设计.183.1硬件电路设计.183.1.1硬件电路图.183.1.2ISD4004原理图.193.1.3各电路图分解.203.2软件设计.233.2.1语音芯片的内部信息寻址机制.233.2.2监控ISD4004录音地址的实例.253.2.3程序流程图.26第4章测试实例.394.1测试内容.394.2测试结果.40结结论论.40致致谢谢.41参考文献参考文献.41基于ISD4004芯片的语音录放系统设计5引言语音,作为一种典型的非平稳随机信号,是人类交流信息最自然、最有效、最方便的手段,在人类文明和社会进步中起着重要的作用。随着电子通信业的出现和计算机技术的发展,人们开始可以从数字信号处理的角度了解语音。语音信号的研究可以从时域和频域两个方面进行。其中时域的分析处理有两种方法:一是进行语音信号分析,这属于小型处理的范畴,主要是通过信号的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号,这属于非线性的范畴,主要是对信号平均累加器的动态范围进行压缩扩张,用门限方法对噪声的抑制。对频域分析处理,即对信号的频率特性在频谱中加以分析研究,这拓展了信号分析的范围,是对不确定信号分析的主要方法。随着计算机技术处理和信息技术的发展,语音交互已经成为人机交互的必要手段,而语音信号的采集处理是人机交互的前提和基础。声卡是计算机对语音信息进行加工的重要部件,它具有对信号滤波、放大、采样保持、AD和DA转换等功能。语音信号处理作为一个重要的研究领域,已经有很长的研究历史。但是它的快速发展可以说是从1940年前后Dudley的声码器和Potter等人的可见语音开始的;20世纪60年代中期形成的一系列数字信号处理方法和技术,如数字滤波器、快速傅里叶变换等成为语音信号数字处理的理论和技术基础;到了80年代,由于矢量量化、隐马尔克夫模型和人工神经网络等相继被应用于语音信号处理,并经过不断改进与完善,使得语音信号处理技术产生了突破性的进展。进入90年代以来,语音信号处理在实用化方面取得了许多实质性的进展。一方面,对声音语音学统计模型的研究逐渐深入,鲁棒的语音识别、基于语音段的建模方法及隐马尔可夫模型与人工神经网络的结合成为研究的热点。另一方面,为了语音识别使用化的需要,讲着自适应、听觉模型、快速搜索识别算法以及进一步的语言模型的研究等课题备受关注。基于ISD4004芯片的语音录放系统设计6第第1章绪论章绪论1.1系统设计的意义语音不仅是人与人之间进行信息交流最直接、最方便和最有效的工具,而且也是人与机器之间进行通信的重要工具。1874年电话的发展可以认为是现代处理的开端。电话的理论基础是尽可能不失真地传送语音波形。这种“波形原则”几乎统治了其后整整一百年。1939年产生了一种概念全新的语音处理技术,这就是著名的通道声码器技术。声码器的理论基础是认为语音是由人的声带振动产生的生源(载波)受到运动的声道的控制(调制)而产生的,因而将载波和调制两部分分开来进行传送便可极大地压缩频带。这一概念已经包含着其后出现的语音参数模型的基本思想。40年代后期,研制成功了能够把语音信号的时变谱用语音表示出来的仪器语音仪,为语音信号分析提供了一个有力的工具。对于语音信号,数字处理比模拟处理具有更多的优点。这是因为:第一,数字技术能够完成许多很复杂的信号处理工作;第二,通过语音进行交换的信息本质上具有离散的性质,因为语音可以看成是因素的组合,这就特别适合于数字处理;第三,数字系统具有高可靠性、价廉、紧凑、快速等特点,很容易完成实时处理任务;第四,数字语音适合于在强干扰通信中传输,易于和数据一起在通信网中传输,也易于进行加密传输。因此数字语音信号处理是主要研究方向。无论是人与人之间还是人与计算机之间的语音通信,语音处理,特别是语音数字处理的理论和技术,具有特别重要的作用。单片机的应用无处不在,利用单片机控制语音的录放也多不胜举。用单片机控制语音芯片,再把单片机和语音芯片嵌入到通信设备,智能仪器,治安报警及儿童玩具中,就可做成语音播放的机器,应用范围广泛。用单片机控制语音芯片设计语音录放系统该系统功能多,录放音音质好,外围电路简单。基于ISD4004芯片的语音录放系统设计71.2系统设计的目的设计一个语音录放系统,可以应用于通讯设备、智能仪表、治安报亭、语音报站、报数报价、语音讲解、语音记录、语音复读、教学仪器、智能玩具、电子礼品等领域。要求放音质量好,用二极管显示工作状态。系统具有较强的抗干扰能力,便于安装和扩展。1.3系统的主要工作方法设计硬件原理图焊接语音模块包括电压转换芯片音频小功率放大器和ISD4004的连接.编写软件程序利用单片机控制技术实现录、放、停等操作。基于ISD4004芯片的语音录放系统设计8第第2章章单片机控制技术和开发环境介绍单片机控制技术和开发环境介绍2.189C2051单片机性能和引脚介绍2.1.1概述AT89C2051是美国ATMEL公司生产的低电压,高性能CMOS8位单片机片内含2Kbytes的可反复可擦写的只读程序储存器(PEROM)和128bytes的随机存储数据储存器(RAM),器件采用ATMEL公司的高密度,非易失性储存技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和flash存储单元。2.1.2AT89C2051主要性能参数与MCS-51产品指令系统完全兼容2K字节可重擦写闪速储存器1000次擦写周期2.76V的工作电压范围全静态操作:0Hz24MHz两级加密程序存储器1288字节内部RAM15个可编程IO口线两个16位定时计数器6个中断源可编程串行UART通道可直接驱动LED的输出端口内置一个模拟比较器低功耗空闲和掉电模式基于ISD4004芯片的语音录放系统设计92.1.3引脚功能说明图1AT89C2051Vcc:电压电源GND:接地P1口:P1口是一个8位双向IO口,P1.2-P1.7提供内部上拉电阻,P1.0内部无上拉电阻,主要是了考虑它们分别是内部精密比较器的同相输入端(AINO)和反向输入端(AINI),如果需要应外部接上拉电阻,P1口输出端缓冲器可吸收20mA电流并可直接驱动LED,当P1口引脚写入“1”时可作输入端,当引脚P1.2-P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流(I);P1口还在flash闪速编程及程序校验时接收代码数据;基于ISD4004芯片的语音录放系统设计10P3口:P3口的P3.0P3.5,P3.7是带上拉电阻的7个双向IO口。P3.6没有引出,它作为一个通用I.O但不可访问,但可作为固定输入片内比较器的输出信号,P3口缓冲器可吸收20mA电流,当P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口:作为输入端口时,被外部拉低的P3口将用上拉电阻输出电流P3口还用于实现AT89c2051特殊的功能,如下图所示:口引脚功能特性P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)0INTP3.3(外中断1)1INTP3.4T0(定时计数器0外部输入)P3.5T1(定时计数器1外部输入)表1管脚功能介绍RET:复位输入,RST引脚一旦变成俩个机械周期以上高电平,所有IO口都复位到“1”(高电平)状态,当振荡器工作时,持续俩个周期以上的高电平便可完成复位,每个机械周期为12个振荡周期;XTAL1:振荡器反相放大器的及内部时钟发生器的输入端;XTAL2:振荡器反相放大器的输出端振荡器特征:XTAL1,XTAL2为片内振荡器的反相放大器的输入和输出端,可采用石英晶体或陶瓷振荡器组成时钟振荡器,如需要外部输入时钟驱动AT89C2051,时钟信号从XTAL1出入,XTAL2应悬空。由于出入到内部电路是经过一个2分频触发器,所以输入的外部时钟信号无特殊要求,但它必须符合电平的最大和最小值及时序规范基于ISD4004芯片的语音录放系统设计112.2keil开发环境和建立工程2.2.1keil简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。2.2.2Keil工程建立启动uVison3,点击“FileNew”在工程管理器的右侧打开一个新的文件输入窗口,在这个窗口里输入一个源程序,注意大小写及每行后的分号,不要错输及漏输。输入完毕之后,选择“FileSave”,给这个文件取名保存,取名字的时候必须要加上扩展名,一般C语言程序均以“.C”为扩展名,这里将其命名为fgf.c,保存完毕后可以将该文件关闭。Keil不能直接对单个的C语言源程序进行处理,还必须选择单片机型号;确定编译、汇编、连接的参数;指定调试的方式;而且一些项目中往往有多个文件,为管理和使用方便,Keil使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译和连接等操作。点击“Project-NewProject”菜单,出现对话框,要求给将要建立的工程起一个名字,这里起名为fgf,不需要输入扩展名。点击“保存”按钮,出现第二个对话框,如图2.2所示,这个对话框要求选择目标CPU(即你所用芯片的型号),Keil支持的CPU很多,这里选择Atmel公司的89S52芯片。点击ATMEL前面的“+”号,展开该层,点击其中的89S52,然后再点基于ISD4004芯片的语音录放系统设计12击“确定”按钮,回到主窗口,此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“SourceGroup1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SourceGroup1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图2.3所示,选中其中的“AddfiletoGroupSourceGroup1”,出现一个对话框,要求寻找源文件。图2选择单片机型号图3加入文件基于ISD4004芯片的语音录放系统设计13双击fgf.c文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图2.4所示的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击“Close”即可返回主接口,返回后,点击“SourceGroup1”前的加号,fgf.c文件已在其中。双击文件名,即打开该源程序。图4重复加入源程序得到的提示2.3ISD4004介绍2.3.1性能简述和引脚图ISD4004系列工作电压3V单片录放时间8至16分钟音质好适用于移动电话及其他便携式电子产品中。芯片采用CMOS技术内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。芯片设计是基于所有操作必须由微控制器控制操作命令可通过串行通信接口SPI送入。芯片采用多电平直接模拟量存储技术每个采样值直接存贮在片内闪烁存贮器中因此能够非常真实、自然地再现语音、音乐、音调和效果声避免了一般固体录音电路因量化和压缩造成的量化噪声和金属声。采样频率可为4.05.36.48.0kHz频率越低录放时间越长而音质则有所下降片内信息存于闪烁存贮器中可在断电情况下保存100年(典型基于ISD4004芯片的语音录放系统设计14值)反复录音10万次。图5ISD4004引脚图图6ISD4004实物图基于ISD4004芯片的语音录放系统设计152.3.2引脚描述1电源:(VCCAVCCD)为使噪声最小芯片的模拟和数字电路使用不同的电源总线并且分别引到外封装的不同管脚上模拟和数字电源端最好分别走线尽可能在靠近供电端处相连而去耦电容应尽量靠近器件。2地线:(VSSAVSSD)芯片内部的模拟和数字电路也使用不同的地线。3同相模拟输入(ANAIN+)这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时信号由耦合电容输入最大幅度为峰峰值32mV耦合电容和本端的3K电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时信号最大幅度为峰峰值16mV,为ISD33000系列相同。4反相模拟输入(ANAIN-)差分驱动时这是录音信号的反相输入端。信号通过耦合电容输入最大幅度为峰峰值16mV音频输出(AUDOUT)提供音频输出可驱动5K的负载。5片选(SS)此端为低即向该ISD4004芯片发送指令,两条指令之间为高电平。6串行输入(MOSI)此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端供ISD输入。7串行输出(MISO)ISD的串行输出端。ISD未选中时本端呈高阻态。8串行时钟(SCLK)ISD的时钟输入端由主控制器产生用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD在下降沿移出ISD。9中断(INT)本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EOM或OVF时本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。OVF标志-指示ISD的录、放操作已到达存储器的未尾。EOM标志-只在放音中检测到内部的EOM标志时此状态位才置1。10行地址时钟(RAC)漏极开路输出。每个RAC周期表示ISD存储基于ISD4004芯片的语音录放系统设计16器的操作进行了一行(ISD4004系列中的存贮器共2400行)。该信号175ms保持高电平低电平为25ms。快进模式下RAC的218.75s是高电平31.25s为低电平。图7时序11外部时钟(XCLK)本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校误差在+1%内。商业级芯片在整个温度和电压范围内频率变化在+2.25%内。工业级芯片在整个温度和电压范围内频率变化在-6+4%内此时建议使用稳压电源。若要求更高精度可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要因内部首先进行了分频。在不外接地时钟时此端必须接地。12自动静噪(AMCAP)当录音信号电平下降到内部设定的某一阈值以下时自动静噪功能使信号衰弱这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF的电容构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较决定自动静噪功能的翻转点。大信号时自动静噪电路不衰减静音时衰减6dB。1mF的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。2.4SPI(串行外设接口)2.4.1协议介绍ISD4004工作于SPI串行接口。SPI协议是一个同步串行数据传输协议基于ISD4004芯片的语音录放系统设计17协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作因此对ISD4004而言在时钟止升沿锁存MOSI引脚的数据在下降沿将数据送至MISO引脚。协议的具体内容为:1所有串行数据传输开始于SS下降沿。2SS在传输期间必须保持为低电平在两条指令之间则保持为高电平。3数据在时钟上升沿移入在下降沿移出。4SS变低输入指令和地址后ISD才能开始录放操作。5指令格式是(8位控制码)加(16位地址码)。6ISD的任何操作(含快进)如果遇到EOM或OVF则产生一个中断该中断状态在下一个SPI周期开始时被清除。7使用读指令使中断状态位移出ISD的MISO引脚时控制及地址数据也应同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然也允许在一个SPI周期里同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。8所有操作在运行位(RUN)置1时开始置0时结束。9所有指令都在SS端上升沿开始执行。2.4.2信息快进用户不必知道信息的确切地址就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正常的1600倍遇到EOM后停止然后内部地址计数器加1指向下条信息的开始处。2.4.3上电顺序器件延时TPUD(8kHz采样时约为25毫秒)后才能开始操作。因此用户发完上电指令后必须等待TPUD才能发出一条操作指令。参见表2.3。例如从00从处发音应遵循如下时序:1发POWERUP命令基于ISD4004芯片的语音录放系统设计182等待TPUD(上电延时)3发地址值为00的SETPLAY命令4发PLAY命令。器件会从此00地址开始放音当出现EOM时立即中断停止放音。如果从00处录音则按以下时序:1发POWERUP命令2等待TPUD(上电延时)3发POWERUP命令4等待2倍TPUD5发地址值为00的SETREC命令6发REC命令。器件便从00地址开始录音一直到出现OVF(存贮器末尾)时录音停止。指令8位控制码操作摘要POWERUP00100XXX上电:等待TPUD后器件可以工作SETPLAY11100XXX从指定地址开始放音。后跟PLAY指令可使放音继续进行下去PLAY11110XXX从当前地址开始放音(直至EOM或OVF)SETREC10100XXX从指定地址开始录音。后跟REC指令可使录音继续进行下去REC10110XXX从当前地址开始录音(直至OVF或停止)SETMC11101XXX从指定地址开始快进。后跟MC指令可使快进继续进行下去基于ISD4004芯片的语音录放系统设计19MC11111XXX执行快进直到EOM.若再无信息则进入OVF状态STOP0X110XXX停止当前操作STOPWRDN0X01XXXX停止当前操作并掉电RINT0X110XXX读状态:OVF和EOM表2指令表注:快进只能在放音操作开始时选择。2.4.4SPI端口的控制位SPI端口有两个硬件控制位MISO和MOSI,SPI控制寄存器控制放、录、信息检索、上电、掉电、启动和停止、忽视地址指示等功能。详见图2.4图8各端口功能2.4.5SPI控制寄存器SPI控制寄存器控制器件的每个功能如录放、录音、信息检索(快进)、基于ISD4004芯片的语音录放系统设计20上电掉电、开始和停止操作、忽略地址指针等。位值功能位值功能RUN10允许禁止操作开始停止PU10电源控制上电掉电P-R10录放模式放音录音IAB10操作是否使用指令地址忽略输入地址寄存的内容使用输入地址寄存的内容MC10快进模式允许快进禁止P15-P0A15-A0行指针寄存器输出输入地址寄存器表3控制器功能注:IAB置0时录、放操作从A9-A0地址开始。为了能连贯地录、放到后续的存储空间在操作到达该行末之前应发出第二个SPI指令将IAB置1否则器件在同一地址上反复循环。这个特点对语音提示功能很有用。RAC脚和IAB位可用于信息管理。SPI端口简单框图如下:图8SPI端口基于ISD4004芯片的语音录放系统设计212.4.6时序SPI总线协议是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序主要是在sck的控制下,两个双向移位寄存器进行数据交换。假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010 x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。SymbolParametersMinTypMaxUnitsTSSSSSSetupTime500nsecTSSHSSHoldTime500nsecTDISDatainSetupTime200nsecTDIHDatainHoldTime200nsecTPDOutputDelay500nsecTDFOutputDelaytoHiz500nsecTSSminSSHIGH1secTSCKhiSCLKHighTime400nsecTSCKlowSCLKLowTime400nsecF0CLK(Frequency)1000kHz表4SPI时序参数第第3章章系统总体设计系统总体设计3.1硬件电路设计本文的语音录放系统所采用的是录放时间为八至十六分钟的ISD4004语音芯片。该语音录放电路主要由单片机AT89C51,ISD4004构成,本系统可以主要分为三部分单片机控制部分、录音部分和放音部分。控制部分则主要由单片机AT89C51构成,包含必要的按键电路、复基于ISD4004芯片的语音录放系统设计22位电路和指示电路等外围电路。3.1.1硬件电路图本文讨论的主要由单片机89C2051和ISD4004构成。该系统的硬件电路连接如图1所示:本系统可以主要分为三部分。单片机控制部分、录音部分、放音部分。控制部分则主要由单片机89C2051构成,包含必要的按键电路、复位电路和看门狗电路等外围电路。放音部分主要由ISD4004构成,包含配套的变压电路,功放电路等。图9硬件连接图3.1.2ISD4004原理图ISD4004开发板是由ISD4004芯片、LM386低压音频小功率放大器和AMS1117电压转换芯片焊接而成,其连接如图3.2所示。图10ISD4004原理图基于ISD4004芯片的语音录放系统设计233.1.3各电路图分解电源电路图115V-3.3V转换电路图12输入DC5V通过LM1117-3.3稳压芯片将5V转变为3.3V给ISD4004供电主控电路基于ISD4004芯片的语音录放系统设计24图13主控电路采用的是AT89C2051组建的最小系统。用来控制ISD4004的录放音操作。图14按键电路基于ISD4004芯片的语音录放系统设计25图14指示灯电路图15录放电路基于ISD4004芯片的语音录放系统设计263.2软件设计3.2.1语音芯片的内部信息寻址机制ISD4004语音芯片具有能够准确控制语音录放地址的功能,这种功能使我们能够方便灵活地对语音信息进行处理以达到我们对语音信息的要求。例如,我们可以利用软件编程的方法实现对语音信息的剪辑、合成等操作来达到我们对语音信息特殊的要求。还有,我们可以通过程序控制做到语音的定时放音和循环放音。若干条信息按顺序分别录入到芯片内,比如称其为abcd信息。我们需要知道每一时刻的录音信息在芯片存储器中所处的位置,这样有利于我们实时地监控ISD4004语音芯片工作的位置,从而能够知道所录的每段信息的开头和结尾的准确地址,便于我们对已录入的信息进行管理。下面以ISD4004-8MP为例来说明如何利用硬件结构寻址。ISD4004-8MP内置了特殊的信息寻址机制,即行地址时钟(以下简称RAC)。为了理解其工作原理,有必要先介绍器件的存储结构。ISD4004的存储器分为2400行。对器件寻址,就是选择一行,从行首开始录、放操作,而每行中的各列是不可寻址的。每一行的所有操作都从第一列开始。ISD4004-8MP每一行周期为200ms这就是器件的地址分辨率。其中每行有175ms的高电平,25ms的低电平。每个录放周期都从这200ms的“语音存储块”的块首开始,如图3.21所示。还以ISD4004-8MP为例,RAC在行末前25ms变低,在恰好到达行末时变高这就类似一个时钟,帮助你确定录放操作已到何处。这个时钟相对于微控制器的速度来说较慢,上例为200ms。因此,微控制器很容易通过软件查询RAC的方法来确定何时已到达图16录放时序行末。但由于微处理器的查询速度相对于RAC时钟频率要快得多,所以,如果通过查询的方法检测RAC每个周期的低电平时,在上一次检测到RAC低基于ISD4004芯片的语音录放系统设计27电平时必须要经过一段延时才能再检测RAC,这样检测到的低电平才是有效的这段延时可以说是“假延时”。延时的时间必须大于RAC低电平的时间,而小于RAC的周期。我们可以利用一个计数器对RAC引脚进行计数,并且通过LED显示器实时地把计数器的值显示出来,这样我们不但可以知道录入的每段信息的开头和结尾的地址,而且还可以知道每段信息之中特定内容的地址,从而可以建立地址表对信息进行剪辑、合成等处理达到对语音信息特定的要求。同样,在放音时我们也可以实现对语音信息的准确放音。只需把事先编辑好的语音信息的准确地址传送到ISD4004的控制口就可以实现指定地址的放音。如果需要的话,我们还可以对ISD4004的放音地址进行实时的监控,其方法与录音时类似。3.2.2监控ISD4004录音地址的实例我们可以用ST89C51来检测ISD4004的RAC引脚来实现录音地址的监控。如图3.4所示,当AN键按下时则开始录音,放开则停止录音,可检测INT引脚看ISD芯片是否到末。R2R3为地址计数器。基于ISD4004芯片的语音录放系统设计28图17硬件原理图3.2.3程序流程图电路上电后,程序首先完成程序的初始化,随后查询按键状态,进入系统待机状态。如果有按键按下,则转去执行该按键指向的工作程序。按键包括录音键看放音键.图18程序流程图基于ISD4004芯片的语音录放系统设计29C源程序#include#include#defineucharunsignedchar#defineuintunsignedint=分段录音首地址定义=ISD4004-8录音时间为8分钟,即860=480S根据4004的资料,480秒可分为2400段,也就是1S的段数为5段,即从,00000005H的内容为1秒.#defineISD_ADDS10 x0000录音存放地址160秒0 x0000-0 x012c#defineISD_ADDS20 x012D录音存放地址2600 x012d-0 x0258#defineISD_ADDS30 x0259录音存放地址3600 x0259-0 x0384#defineISD_ADDS40 x0385录音存放地址4600 x0385-0 x04B0=ISD4004指令定义=#definePOWER_UP0 x20上电指令#defineSET_PLAY0 xE0指定放音指令#definePLAY0 xF0当前放音指令#defineSET_REC0 xA0指定录音指令#defineREC0 xB0当前录音指令#defineSET_MC0 xE1指定快进指令#defineMC0 xF1快进执行指令#defineSTOP0 x30停止当前操作#defineSTOP_WRDN0 xF1停止当前操作并掉电#defineRINT0 x30读状态:OVF和EOM基于ISD4004芯片的语音录放系统设计30=ISD4004-c51接口定义=P1.7-放音指示灯P1。6-录音指示灯P1.5-地址1指示灯P1.4-地址2P1.3-地址3P1.2-地址4P3.3-SETP3.7-RECP1.0-PLAYP1.1-STOPP3.4-SSP3.5-MOSIP3.2-SCLKsbitSS=P34LOWISACTIVELYsbitMOSI=P35sbitSCLK=P32sbitINT=P30sbitRAC=P31=按键定义=sbitKY_SET=P33sbitKY_REC=P37sbitKY_PLAY=P10sbitKY_STOP=P11=指示灯定义=sbitLED_PLAY=P17基于ISD4004芯片的语音录放系统设计31sbitLED_REC=P16sbitLED_ADDR1=P15sbitLED_ADDR2=P14sbitLED_ADDR3=P13sbitLED_ADDR4=P12=ISD4004函数定义=voidISD_SPI_Send8(ucharisdx8)spi串行发送子程序,8位数据从低到高voidISD_SPI_Send16(uintisdx16)spi串行发送子程序,16位数据.从低到高uintISD_SPI_Radd(void)读取标行地址voidISD_Stop(void)发送stop指令voidISD_PowerUp(void)发送上电指令,并延迟50msvoidISD_PowerDown(void)发送掉电指令,并延迟50msvoidISD_Play(void)发送放音指令,并延迟50msvoidISD_SetPlay(uintadd)发送指定放音指令,并延迟50msvoidISD_Rec(void)发送录音指令,并延迟50msvoidISD_SetRec(uintadd)发送指定录音指令,并延迟50msucharISD_Chk_Isdovf(void)=延时函数=voidDelay1Ms(uchart)延时t1毫秒voidDelay()=按键函数=voidKey(void)voidid_case1_key()=变量定义=基于ISD4004芯片的语音录放系统设计32unsignedcharid=0bitplay_flag名称:ISD_SPI_Send8(ucharisdx)功能:spi串行发送子程序,8位数据指令:调用:无返回:无voidISD_SPI_Send8(ucharisd_data)uchariSS=0选中ISD4004SCLK=0for(i=0i=1右移一位SCLK=1时钟下降沿发送SCLK=0基于ISD4004芯片的语音录放系统设计33名称:ISD_SPI_Send16(uintisdx16)功能:spi串行发送子程序,16位数据指令:调用:无返回:无voidISD_SPI_Send16(uintisd_data)uchariSS=0选中ISD4004SCLK=0for(i=0i1右移一位SCLK=1时钟下降沿发送SCLK=0基于ISD4004芯片的语音录放系统设计34名称:ISD_Stop(void)功能:发送stop指令指令:ISD_SPI_Send8(ucharisdx8)调用:无返回:无voidISD_Stop(void)SS=0MOSI=0SCLK=0ISD_SPI_Send8(STOP)SS=1名称:ISD_PowerUp(void)功能:发送上电指令指令:ISD_SPI_Send8(ucharisdx8)调用:无返回:无voidISD_PowerUp(void)SS=0MOSI=0SCLK=0基于ISD4004芯片的语音录放系统设计35ISD_SPI_Send8(POWER_UP)SS=1名称:ISD_PowerDown(void)功能:发送掉电指令指令:ISD_SPI_Send8(ucharisdx8)调用:无返回:无voidISD_PowerDown(v

温馨提示

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

评论

0/150

提交评论