版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 ISD4004 芯片的语音录放系统设计 本科生毕业设计 学 院: 专 业: 学 生: 指导教师: 基于 ISD4004 芯片的语音录放系统设计基于 ISD4004 芯片的语音录放系统设计 总计 毕业设计(论文) 48 页表格 5 个插图 18 幅基于 ISD4004 芯片的语音录放系统设计I摘摘 要要基于 ISD4004 芯片的语音录放系统设计用单片机控制语音芯片,再把单片机和语音芯片嵌入到通信设备,智能仪器,治安报警及儿童玩具中,就可做成语音播放的机器。本文介绍了基于 AT89C2051 单片机及 ISD4004 语音板为主要部件的语音录放电路的工作原理、硬件和软件的设计。ISD400
2、4 系列工作电压 3V,单片录放时间 8 至 16 分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口 SPI 送入。论文概述了语音录放电路的原理,并且在介绍语音录放系统功能的基础上,提出了系统的总体构成。针对录放系统的录音、放音部分的总体设计方案进行了论证。进一步介绍了单片机 AT89C2051 应用在系统中的应用,分析了系统各部分的硬件及软件实现。关键词关键词:ISD4004 AT89C2051 单片机 语音录放基于 ISD4004 芯片的语音录放系统设计IIAbstractThe design of voice rec
3、ording and playback system based on isd4004 With the single-chip microcomputer control, and then make the pronunciation chip microcontroller and pronunciation chip embedded in communication equipment, intelligent instruments, security alarm and childrens toys, so can make a speech broadcast machine.
4、This paper introduces ISD4004 based on AT89C52 single chip computer and of the main parts of speech plate as the working principle of voice recording circuit and the design of hardware and software. ISD4004 series working voltage, monolithic 3V recording time 8 to 16 minutes, timbre, suitable for mo
5、bile phones and other portable electronics. Chip design is based on all the operation must by SPI into. This paper summarizes the principle of voice recording circuit, and introduces the function of speech on the basis of recording system, puts forward the general structure of the system. Recording
6、system for the recording, playback part of the overall design scheme is demonstrated. This paper introduces microcontroller AT89C52 single applications in system, the application system were analyzed each part of hardware and software realization. KeywordsKeywords: ISD4004;89C2051microcontroller;voi
7、ce recording and playback基于 ISD4004 芯片的语音录放系统设计III目目 录录摘摘 要要.IABSTRACT.II目目 录录 .III引引 言言.1第第 1 章绪论章绪论.21.1 系统设计的意义.21.2 系统设计的目的.31.3 系统的主要工作方法.3第第 2 章章 单片机控制技术和开发环境介绍单片机控制技术和开发环境介绍.32.1 89C2051 单片机性能和引脚介绍 .32.1.1 概述.32.1.2 AT89C2051 主要性能参数.42.1.3 引脚功能说明.42.2 KEIL开发环境和建立工程.62.2.1 keil 简介.62.2.2 Keil
8、工程建立.72.3 ISD4004 介绍 .102.3.1 性能简述和引脚图.102.3.2 引脚描述.112.4 SPI(串行外设接口) .132.4.1 协议介绍.132.4.2 信息快进.142.4.3 上电顺序.142.4.4 SPI 端口的控制位.162.4.5 SPI 控制寄存器.16基于 ISD4004 芯片的语音录放系统设计IV2.4.6 时序.17第第 3 3 章章 系统总体设计系统总体设计.183.1 硬件电路设计 .183.1.1 硬件电路图.183.1.2 ISD4004 原理图 .193.1.3 各电路图分解.203.2 软件设计.233.2.1 语音芯片的内部信息寻
9、址机制.233.2.2 监控 ISD4004 录音地址的实例 .253.2.3 程序流程图.26第 4 章 测试实例.394.1 测试内容 .394.2 测试结果 .40结结 论论.40致致 谢谢.41参考文献参考文献 .41基于 ISD4004 芯片的语音录放系统设计5引 言语音,作为一种典型的非平稳随机信号,是人类交流信息最自然、最有效、最方便的手段,在人类文明和社会进步中起着重要的作用。随着电子通信业的出现和计算机技术的发展,人们开始可以从数字信号处理的角度了解语音。语音信号的研究可以从时域和频域两个方面进行。其中时域的分析处理有两种方法:一是进行语音信号分析,这属于小型处理的范畴,主要
10、是通过信号的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号,这属于非线性的范畴,主要是对信号平均累加器的动态范围进行压缩扩张,用门限方法对噪声的抑制。对频域分析处理,即对信号的频率特性在频谱中加以分析研究,这拓展了信号分析的范围,是对不确定信号分析的主要方法。随着计算机技术处理和信息技术的发展,语音交互已经成为人机交互的必要手段,而语音信号的采集处理是人机交互的前提和基础。声卡是计算机对语音信息进行加工的重要部件,它具有对信号滤波、放大、采样保持、A/D 和 D/A 转换等功能。语音信号处理作为一个重要的研究领域,已经有很长的研究历史。但是它的快速发展可以说是从
11、1940 年前后 Dudley 的声码器和 Potter 等人的可见语音开始的;20 世纪 60 年代中期形成的一系列数字信号处理方法和技术,如数字滤波器、快速傅里叶变换等成为语音信号数字处理的理论和技术基础;到了 80 年代,由于矢量量化、隐马尔克夫模型和人工神经网络等相继被应用于语音信号处理,并经过不断改进与完善,使得语音信号处理技术产生了突破性的进展。进入 90 年代以来,语音信号处理在实用化方面取得了许多实质性的进展。一方面,对声音语音学统计模型的研究逐渐深入,鲁棒的语音识别、基于语音段的建模方法及隐马尔可夫模型与人工神经网络的结合成为研究的热点。另一方面,为了语音识别使用化的需要,讲
12、着自适应、听觉模型、快速搜索识别算法以及进一步的语言模型的研究等课题备受关注。基于 ISD4004 芯片的语音录放系统设计6第第 1 章绪论章绪论1.1 系统设计的意义语音不仅是人与人之间进行信息交流最直接、最方便和最有效的工具,而且也是人与机器之间进行通信的重要工具。1874 年电话的发展可以认为是现代处理的开端。电话的理论基础是尽可能不失真地传送语音波形。这种“波形原则”几乎统治了其后整整一百年。1939 年产生了一种概念全新的语音处理技术,这就是著名的通道声码器技术。声码器的理论基础是认为语音是由人的声带振动产生的生源(载波)受到运动的声道的控制(调制)而产生的,因而将载波和调制两部分分
13、开来进行传送便可极大地压缩频带。这一概念已经包含着其后出现的语音参数模型的基本思想。40 年代后期,研制成功了能够把语音信号的时变谱用语音表示出来的仪器语音仪,为语音信号分析提供了一个有力的工具。对于语音信号,数字处理比模拟处理具有更多的优点。这是因为:第一,数字技术能够完成许多很复杂的信号处理工作;第二,通过语音进行交换的信息本质上具有离散的性质,因为语音可以看成是因素的组合,这就特别适合于数字处理;第三,数字系统具有高可靠性、价廉、紧凑、快速等特点,很容易完成实时处理任务;第四,数字语音适合于在强干扰通信中传输,易于和数据一起在通信网中传输,也易于进行加密传输。因此数字语音信号处理是主要研
14、究方向。无论是人与人之间还是人与计算机之间的语音通信,语音处理,特别是语音数字处理的理论和技术,具有特别重要的作用。单片机的应用无处不在,利用单片机控制语音的录放也多不胜举。用单片机控制语音芯片,再把单片机和语音芯片嵌入到通信设备,智能仪器,治安报警及儿童玩具中,就可做成语音播放的机器,应用范围广泛。用单片机控制语音芯片设计语音录放系统,该系统功能多,录放音音质好,外围电路简单。基于 ISD4004 芯片的语音录放系统设计71.2 系统设计的目的设计一个语音录放系统,可以应用于通讯设备、智能仪表、治安报亭、语音报站、报数报价、语音讲解、语音记录、语音复读、教学仪器、智能玩具、电子礼品等领域。要
15、求放音质量好,用二极管显示工作状态。系统具有较强的抗干扰能力,便于安装和扩展。1.3 系统的主要工作方法设计硬件原理图,焊接语音模块,包括电压转换芯片,音频小功率放大器和ISD4004 的连接.编写软件程序,利用单片机控制技术,实现录、放、停等操作。 基于 ISD4004 芯片的语音录放系统设计8第第 2 章章 单片机控制技术和开发环境介绍单片机控制技术和开发环境介绍2.1 89C2051 单片机性能和引脚介绍2.1.1 概述AT89C2051 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机片内含 2K bytes 的可反复可擦写的只读程序储存器(PEROM)和 128by
16、tes 的随机存储数据储存器(RAM) ,器件采用 ATMEL 公司的高密度,非易失性储存技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和flash 存储单元。2.1.2 AT89C2051 主要性能参数与 MCS-51 产品指令系统完全兼容2K 字节可重擦写闪速储存器1000 次擦写周期2.76V 的工作电压范围全静态操作:0Hz24MHz两级加密程序存储器1288 字节内部 RAM15 个可编程 IO 口线两个 16 位定时计数器6 个中断源可编程串行 UART 通道可直接驱动 LED 的输出端口内置一个模拟比较器低功耗空闲和掉电模式基于 ISD4004 芯片的语
17、音录放系统设计9 2.1.3 引脚功能说明 图 1 AT89C2051Vcc:电压电源GND:接地P1 口:P1 口是一个 8 位双向 I/O 口,P1.2-P1.7 提供内部上拉电阻,P1.0内部无上拉电阻,主要是了考虑它们分别是内部精密比较器的同相输入端(AINO)和反向输入端(AINI) ,如果需要应外部接上拉电阻,P1 口输出端缓冲器可吸收 20mA 电流并可直接驱动 LED,当 P1 口引脚写入“1”时可作输入端,当引脚 P1.2-P1.7 用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流(I) ; P1 口还在 flash 闪速编程及程序校验时接收代码数据;基于 ISD40
18、04 芯片的语音录放系统设计10P3 口:P3 口的 P3.0P3.5,P3.7 是带上拉电阻的 7 个双向 I/O 口。P3.6没有引出,它作为一个通用 I.O 但不可访问,但可作为固定输入片内比较器的输出信号,P3 口缓冲器可吸收 20mA 电流,当 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口:作为输入端口时,被外部拉低的P3 口将用上拉电阻输出电流P3 口还用于实现 AT89c2051 特殊的功能,如下图所示:口引脚功能特性P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断 0)0INTP3.3(外中断 1)1INTP3.4T0(定时计数器 0 外
19、部输入)P3.5T1(定时计数器 1 外部输入) 表 1 管脚功能介绍RET:复位输入,RST 引脚一旦变成俩个机械周期以上高电平,所有 I/O 口都复位到“1” (高电平)状态,当振荡器工作时,持续俩个周期以上的高电平便可完成复位,每个机械周期为 12 个振荡周期;XTAL1:振荡器反相放大器的及内部时钟发生器的输入端;XTAL2:振荡器反相放大器的输出端;振荡器特征: XTAL1,XTAL2 为片内振荡器的反相放大器的输入和输出端,可采用石英晶体或陶瓷振荡器组成时钟振荡器,如需要外部输入时钟驱动AT89C2051,时钟信号从 XTAL1 出入,XTAL2 应悬空。由于出入到内部电路是经过一
20、个 2 分频触发器,所以输入的外部时钟信号无特殊要求,但它必须符合电平的最大和最小值及时序规范基于 ISD4004 芯片的语音录放系统设计112.2 keil 开发环境和建立工程2.2.1 keil 简介Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51 生成的目标代码效率非常之高,多数
21、语句生成的汇编代码很紧凑,容易理解。2.2.2 Keil 工程建立启动 uVison3,点击“File New”在工程管理器的右侧打开一个新的文件输入窗口,在这个窗口里输入一个源程序,注意大小写及每行后的分号,不要错输及漏输。输入完毕之后,选择“File Save”,给这个文件取名保存,取名字的时候必须要加上扩展名,一般 C 语言程序均以“.C”为扩展名,这里将其命名为fgf.c,保存完毕后可以将该文件关闭。Keil 不能直接对单个的 C 语言源程序进行处理,还必须选择单片机型号;确定编译、汇编、连接的参数;指定调试的方式;而且一些项目中往往有多个文件,为管理和使用方便,Keil使用工程(Pr
22、oject)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译和连接等操作。 点击“Project-New Project”菜单,出现对话框,要求给将要建立的工程起一个名字,这里起名为 fgf,不需要输入扩展名。点击“保存”按钮,出现第二个对话框,如图 2.2 所示,这个对话框要求选择目标 CPU(即你所用芯片的型号) ,Keil 支持的 CPU 很多,这里选择 Atmel 公司的 89S52 芯片。点击 ATMEL 前面的“+”号,展开该层,点击其中的 89S52,然后再点基于 ISD4004 芯片的语音录放系统设计12击“确定”按钮,回到主窗口
23、,此时,在工程窗口的文件页中,出现了“Target 1”,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Group1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图 2.3 所示,选中其中的“Add file to Group Source Group1”,出现一个对话框,要求寻找源文件。图 2 选择单片机型号 图 3 加入文件基于 ISD4004 芯片的语音录放系统设计13双击 fgf.c 文件,将文件加入项目,注意,在文件加入项目后,该对话框并
24、不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图 2.4 所示的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击“Close”即可返回主接口,返回后,点击“Source Group 1”前的加号,fgf.c 文件已在其中。双击文件名,即打开该源程序。图 4 重复加入源程序得到的提示 2.3 ISD4004 介绍2.3.1 性能简述和引脚图ISD4004 系列工作电压 3V,单片录放时间 8 至 16 分钟,音质好,适用于移动电话及其他便携式电子产 品中。芯片采用 CMOS 技术,内含振荡器、防混淆滤波器、平滑滤波器、音
25、频放大器、自动静噪及高密 度多电平闪烁存贮陈列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口 SPI 送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存贮在片内闪烁存贮器 中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩 造成的量化噪声和金属声。采样频率可为 4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下 降,片内信息存于闪烁存贮器中,可在断电情况下保存 100 年(典型基于 ISD4004 芯片的语音录放系统设计14值),反复录音 10 万次。图 5 ISD4004 引脚图 图 6 IS
26、D4004 实物图基于 ISD4004 芯片的语音录放系统设计152.3.2 引脚描述1 电源:(VCCA,VCCD) 为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的 不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。2 地线:(VSSA,VSSD) 芯片内部的模拟和数字电路也使用不同的地线。3 同相模拟输入(ANA IN+) 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时, 信号由耦合电容输入,最大幅度为峰峰值 32mV,耦合电容和本端的 3K电阻输入阻抗决定了芯片频带的 低端截止频率。差分驱动时,信
27、号最大幅度为峰峰值 16mV,为 ISD33000 系列相同。4 反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为 峰峰值 16mV音频输出(AUD OUT) 提供音频输出,可驱动 5K的负载。5 片选(SS) 此端为低,即向该 ISD4004 芯片发送指令,两条指令之间为高电平。6 串行输入(MOSI) 此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。7 串行输出(MISO) ISD 的串行输出端。ISD 未选中时,本端呈高阻态。8 串行时钟(SCLK) ISD 的时钟输入端,由主控制器产生,用于同步
28、 MOSI 和 MISO 的数据传输。数据在 SCLK上升沿锁存到 ISD,在下降沿移出 ISD。9 中断(/INT) 本端为漏极开路输出。ISD 在任何操作(包括快进)中检测到 EOM 或 OVF 时,本端变低并保 持。中断状态在下一个 SPI 周期开始时清除。中断状态也可用 RINT 指令读取。OVF 标志-指示 ISD 的录、放操作已到达存储器的未尾。EOM 标志-只在放音中检测到内部的 EOM 标志时,此状态位才置1。10 行地址时钟(RAC) 漏极开路输出。每个 RAC 周期表示 ISD 存储基于 ISD4004 芯片的语音录放系统设计16器的操作进行了一行(ISD4004 系列中的
29、 存贮器共 2400 行)。该信号 175ms 保持高电平,低电平为25ms。快进模式下,RAC 的 218.75s 是高电 平,31.25s 为低电平。图 7 时序 11 外部时钟(XCLK) 本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在 +1%内。商业级 芯片在整个温度和电压范围内, 频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化 在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部 的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首 先进行了分频。在不外接地时钟
30、时,此端必须接地。12 自动静噪(AMCAP) 当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有 助于养活无信号(静音)时的噪声。通常本端对地接 1mF 的电容,构成内部信号电平峰值检测电路的一部 分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减 6dB。1mF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接 VCCA 则禁止自动静噪。2.4 SPI(串行外设接口)2.4.1 协议介绍ISD4004 工作于 SPI 串行接口。 SPI 协议是一个同步串行数据传输协议,基于 ISD4004 芯片的语音录
31、放系统设计17协议假定微控制器的 SPI 移 位寄存器在SCLK 的下降沿动作,因此对ISD4004 而言,在时钟止升沿锁存MOSI 引脚的数据,在下降沿将数据送至 MISO 引脚。协议的具体内容为:1 所有串行数据传输开始于 SS 下降沿。2 SS 在传输期间必须保持为低电平,在两条指令之间则保持为高电平。3 数据在时钟上升沿移入,在下降沿移出。4 SS 变低,输入指令和地址后,ISD 才能开始录放操作。5 指令格式是(8 位控制码)加(16 位地址码)。6 ISD 的任何操作(含快进)如果遇到 EOM 或 OVF,则产生一个中断,该中断状态在下一个 SPI 周期开始时被清除。7 使用读指令
32、使中断状态位移出 ISD 的 MISO 引脚时,控制及地址数据也应同步从 MOSI 端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个 SPI 周期里,同时执行读状 态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。8 所有操作在运行位(RUN)置 1 时开始,置 0 时结束。9 所有指令都在 SS 端上升沿开始执行。2.4.2 信息快进 用户不必知道信息的确切地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正常的 1600 倍,遇到 EOM 后停止,然后内部地址计数器加 1,指向下条信息的开始处。2.4.3 上电顺序器件延时 TPUD(8k
33、Hz 采样时,约为 25 毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出一条操作指令。参见表2.3。例如,从 00 从处发音,应遵循如下时序:1发 POWERUP 命令;基于 ISD4004 芯片的语音录放系统设计182等待 TPUD(上电延时);3 发地址值为 00 的 SETPLAY 命令;4 发 PLAY 命令。器件会从此 00 地址开始放音,当出现 EOM 时,立即中断,停止放音。如果从 00 处录音,则按以下时序:1 发 POWER UP 命令;2 等待 TPUD(上电延时);3 发 POWER UP 命令;4 等待 2 倍 TPUD;5 发地址值为 00
34、 的 SETREC 命令;6 发 REC 命令。器件便从 00 地址开始录音,一直到出现 OVF(存贮器末尾)时,录音停止。指令8 位控制码 操作摘要POWERUP00100XXX上电:等待TPUD后器件可以工作SET PLAY11100XXX从指定地址开始放音。后跟 PLAY 指令可使放音继续进行下去PLAY11110XXX从当前地址开始放音(直至 EOM 或 OVF)SET REC 10100XXX从指定地址开始录音。后跟 REC 指令可使录音继续进行下去REC10110XXX从当前地址开始录音(直至 OVF 或停止)SET MC 11101XXX从指定地址开始快进。后跟 MC 指令可使快
35、进继续进行下去基于 ISD4004 芯片的语音录放系统设计19MC11111XXX执行快进,直到 EOM.若再无信息,则进入 OVF 状态STOP0X110XXX停止当前操作STOP WRDN0X01XXXX停止当前操作并掉电RINT0X110XXX读状态:OVF 和 EOM表2 指令表注:快进只能在放音操作开始时选择。2.4.4 SPI 端口的控制位SPI 端口有两个硬件控制位 MISO 和 MOSI,SPI 控制寄存器控制放、录、信息检索、上电、掉电、启动和停止、忽视地址指示等功能。详见图 2.4图 8 各端口功能2.4.5 SPI 控制寄存器SPI控制寄存器控制器件的每个功能,如录放、录
36、音、信息检索(快进)、基于 ISD4004 芯片的语音录放系统设计20上电/掉电、开始和停止操 作、忽略地址指针等。位值功能位值功能RUN 1 0允许/禁止操作开始 停止PU10电源控制上电 掉电P/-R10录/放模式放音 录音IAB10操作是否使用指令地址忽略输入地址寄存的内容 使用输入地址寄存的内容MC10快进模式允许快进 禁止P15-P0A15-A0行指针寄存器输出输入地址寄存器 表 3 控制器功能 注:IAB 置 0 时,录、放操作从 A9-A0 地址开始。为了能连贯地录、放到后续的存储空间,在操作到达该 行末之前,应发出第二个 SPI 指令将 IAB 置 1,否则器件在同一地址上反复
37、循环。这个特点对语音提 示功能很有用。RAC 脚和 IAB 位可用于信息管理。SPI 端口简单框图如下:图 8 SPI 端口基于 ISD4004 芯片的语音录放系统设计212.4.6 时序SPI 总线协议是一个环形总线结构,由 ss(cs) 、sck、sdi、sdo 构成,其时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。那么第一个上升沿来的时候数据将会是 sdo=1;寄存器=0101010 x。下降沿到来的时候,sdi 上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,
38、这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个 spi 时序。SymbolParametersMinTypMaxUnitsTSSS/SS Setup Time500nsecTSSH/SS Hold Time500nsecTDISData in Setup Time200nsecTDIHData in Hold Time200nsecTPDOutput Delay500nsecTDFOutput Delay to Hiz500nsecTSSmin/SS HIGH1secTSCKhiSCLK High Time400nsecTSCKlowSCLK Low Time400ns
39、ecF0CLK(Frequency)1000kHz表 4 SPI 时序参数第第 3 章章系统总体设计系统总体设计3.1 硬件电路设计本文的语音录放系统所采用的是录放时间为八至十六分钟的ISD4004 语音芯片。该语音录放电路主要由单片机AT89C51,ISD4004 构成,本系统可以主要分为三部分单片机控制部分、录音部分和放音部分。控制部分则主要由单片机AT89C51 构成,包含必要的按键电路、复基于 ISD4004 芯片的语音录放系统设计22位电路和指示电路等外围电路。3.1.1 硬件电路图本文讨论的主要由单片机89C2051 和ISD4004 构成。 该系统的硬件电路连接如图1 所示: 本
40、系统可以主要分为三部分。单片机控制部分、录音部分、放音部分。控制部分则主要由单片机 89C2051 构成,包含必要的按键电路、复位 电路和看门狗电路等外围电路。放音部分主要由ISD4004 构成,包含配套的变压 电路,功放电路等。图 9 硬件连接图 3.1.2 ISD4004 原理图ISD4004 开发板是由 ISD4004 芯片、LM386 低压音频小功率放大器和AMS1117 电压转换芯片焊接而成,其连接如图 3.2 所示。 图10 ISD4004原理图基于 ISD4004 芯片的语音录放系统设计233.1.3 各电路图分解电源电路 图 11 5V-3.3V 转换电路 图 12输入 DC5
41、V 通过 LM1117-3.3 稳压芯片将 5V 转变为 3.3V,给 ISD4004 供电主控电路基于 ISD4004 芯片的语音录放系统设计24 图 13主控电路采用的是 AT89C2051 组建的最小系统。用来控制 ISD4004 的录放音操作。 图 14 按键电路基于 ISD4004 芯片的语音录放系统设计25图 14 指示灯电路 图 15 录放电路基于 ISD4004 芯片的语音录放系统设计26 3.2 软件设计3.2.1 语音芯片的内部信息寻址机制ISD4004语音芯片具有能够准确控制语音录放地址的功能 ,这种功能使我们能够方便灵活地对语音 信 息进行处理以达到我们对语音信息的要求
42、。例如,我们可以利用软件编程的方法实现对语音信息的剪辑 、合成等操作来达到我们对语音信息特殊的要求 。还有,我们可以通过程序控制做到语音的定时放音和循 环 放音。若干条信息按顺序分别录入 到芯片内,比如称其为a,b,c,d信息。 我们需要知道每一时刻的录音信息 在芯片存储器中所处的位置, 这样有利于我们实时地监控ISD4004语音芯片工作的位置, 从而能够知道所录的每段信息的开头和结尾的准确地址 , 便于我们对已录入的信息进行管理。下面以ISD4004-8MP 为例来说明如何利用硬件结构寻址。ISD4004-8MP 内置了特殊的信息寻址机制,即行地址时钟(以下简称RAC)。为了理解其工作原理,
43、有必要先介绍器件的存储结构。ISD4004的存储器分为2400行。对器件寻址,就是选择一行,从行首开始录、放操作,而每行中的各列是不可寻址的。每一行的所有操作都从第一列开始。ISD4004-8MP 每一行周期为200ms,这就是器件的地址分辨率。其中每行有175ms的高电平,25ms的低电平。每个录放周期都从这200ms的“语音存储块”的块首开始,如图3.21 所示。还以ISD4004-8MP为例,RAC在行末前25ms变低,在恰好到达行末时变高,这就类似一个时钟,帮助你确定录放操作已到何处。这个时钟相对于微控制器的速度来说较慢,上例为200ms。因此,微控制器很容易通过软件查询RAC的方法来
44、确定何时已到达 图16 录放时序 行末。但由于微处理器的查询速度相对于RAC时钟频率要快得多,所以,如果通过查询的方法检测RAC 每个周期的低电平时,在上一次检测到RAC低基于 ISD4004 芯片的语音录放系统设计27电平时必须要经过一段延时才能再检测RAC,这样检测到的低电平才是有效的,这段延时可以说是“假延时”。延时的时间必须大于RAC低电平的时间,而小于RAC的周期。我们可以利用一个计数器对RAC引脚进行计数,并且通过LED显示器实时地把计数器的值显示出来,这样我们不但可以知道录入的每段信息的开头和结尾的地址,而且还可以知道每段信息之中特定内容的地址,从而可以建立地址表对信息进行剪辑、
45、合成等处理达到对语音信息特定的要求。同样,在放音时我们也可以实现对语音信息的准确放音。只需把事先编辑好的语音信息的准确地址传送到ISD4004的控制口就可以实现指定地址的放音。如果需要的话,我们还可以对ISD4004的放音地址进行实时的监控,其方法与录音时类似。3.2.2 监控 ISD4004 录音地址的实例我们可以用ST89C51来检测ISD4004的RAC引脚来实现录音地址的监控。如图3.4所示,当AN键按下时则开始录音,放开则停止录音,可检测INT引脚看ISD芯片是否到末。R2R3为地址计数器。基于 ISD4004 芯片的语音录放系统设计28图 17 硬件原理图3.2.3 程序流程图电路
46、上电后,程序首先完成程序的初始化,随后查询按键状态,进入系统待机状态。 如果有按键按下, 则转去执行该按键指向的工作程序。 按键包括录音键看,放音键.图 18 程序流程图基于 ISD4004 芯片的语音录放系统设计29C 源程序#include #include #define uchar unsigned char#define uint unsigned int/=分段录音首地址定义=/ISD4004-8 录音时间为 8 分钟,即 8*60=480S, 根据 4004 的资料,480 秒可分为 2400 段,也就是 1S 的段数为 5 段,即从,00000005H 的内容为 1秒.#def
47、ine ISD_ADDS1 0 x0000 /录音存放地址 1 /60 秒 0 x0000-0 x012c #define ISD_ADDS2 0 x012D /录音存放地址 2 /60 0 x012d-0 x0258#define ISD_ADDS3 0 x0259 /录音存放地址 3 /60 0 x0259-0 x0384#define ISD_ADDS4 0 x0385 /录音存放地址 4 /60 0 x0385-0 x04B0/=ISD4004 指令定义=#define POWER_UP 0 x20 /上电指令#define SET_PLAY 0 xE0 /指定放音指令#define
48、PLAY 0 xF0 /当前放音指令#define SET_REC 0 xA0 /指定录音指令#define REC 0 xB0 /当前录音指令#define SET_MC 0 xE1 /指定快进指令#define MC 0 xF1 /快进执行指令#define STOP 0 x30 /停止当前操作#define STOP_WRDN 0 xF1 /停止当前操作并掉电#define RINT 0 x30 /读状态:OVF 和 EOM基于 ISD4004 芯片的语音录放系统设计30/=ISD4004-c51 接口定义=/P1.7-放音指示灯/P1。6-录音指示灯/P1.5-地址 1 指示灯/P1.
49、4-地址 2/P1.3-地址 3/P1.2-地址 4/P3.3-SET/P3.7-REC/P1.0-PLAY/P1.1-STOP/P3.4-SS/P3.5-MOSI/P3.2-SCLKsbit SS=P34; /LOW IS ACTIVELYsbit MOSI=P35;sbit SCLK=P32; sbit INT=P30;sbit RAC=P31;/=按键定义=sbit KY_SET=P33;sbit KY_REC=P37;sbit KY_PLAY=P10;sbit KY_STOP=P11;/=指示灯定义=sbit LED_PLAY=P17;基于 ISD4004 芯片的语音录放系统设计31s
50、bit LED_REC=P16;sbit LED_ADDR1=P15;sbit LED_ADDR2=P14;sbit LED_ADDR3=P13;sbit LED_ADDR4=P12;/=ISD4004 函数定义=void ISD_SPI_Send8( uchar isdx8 ); /spi 串行发送子程序,8 位数据,从低到高void ISD_SPI_Send16( uint isdx16 ); /spi 串行发送子程序,16 位数据.从低到高uint ISD_SPI_Radd(void); /读取标行地址void ISD_Stop(void); /发送 stop 指令void ISD_Po
51、werUp(void); /发送上电指令,并延迟 50msvoid ISD_PowerDown(void); /发送掉电指令,并延迟 50msvoid ISD_Play(void); /发送放音指令,并延迟 50ms void ISD_SetPlay(uint add); /发送指定放音指令,并延迟 50msvoid ISD_Rec(void); /发送录音指令,并延迟 50ms void ISD_SetRec(uint add); /发送指定录音指令,并延迟 50ms uchar ISD_Chk_Isdovf(void);/=延时函数=void Delay1Ms(uchar t); /延时
52、t*1 毫秒void Delay();/=按键函数=void Key(void);void id_case1_key();/=变量定义=基于 ISD4004 芯片的语音录放系统设计32unsigned char id=0;bit play_flag;/*名称:ISD_SPI_Send8(uchar isdx)功能:spi 串行发送子程序,8 位数据 指令:调用:无返回:无/*/void ISD_SPI_Send8( uchar isd_data ) uchar i; SS = 0; /选中 ISD4004 SCLK = 0; for(i=0;i= 1; /右移一位 SCLK = 1; /时钟下
53、降沿发送 SCLK = 0; 基于 ISD4004 芯片的语音录放系统设计33/*名称:ISD_SPI_Send16(uint isdx16)功能:spi 串行发送子程序,16 位数据 指令:调用:无返回:无/*/void ISD_SPI_Send16( uint isd_data ) uchar i; SS = 0; /选中 ISD4004 SCLK = 0; for(i=0;i 1; /右移一位 SCLK=1; /时钟下降沿发送 SCLK=0; 基于 ISD4004 芯片的语音录放系统设计34/*名称:ISD_Stop(void)功能:发送 stop 指令 指令:ISD_SPI_Send8
54、(uchar isdx8);调用:无返回:无/*/void ISD_Stop(void)SS=0;MOSI=0;SCLK=0; ISD_SPI_Send8(STOP); SS=1;/*名称:ISD_PowerUp(void)功能:发送上电指令 指令:ISD_SPI_Send8(uchar isdx8);调用:无返回:无/*/void ISD_PowerUp(void) SS=0; MOSI=0;SCLK=0; 基于 ISD4004 芯片的语音录放系统设计35 ISD_SPI_Send8(POWER_UP); SS = 1;/*名称:ISD_PowerDown(void)功能:发送掉电指令 指令
55、:ISD_SPI_Send8(uchar isdx8);调用:无返回:无/*/void ISD_PowerDown(void)SS=0;MOSI=0;SCLK=0; ISD_SPI_Send8(STOP_WRDN); SS = 1;/*名称:ISD_Play(void)功能:发送 play 指令 指令:ISD_SPI_Send8(uchar isdx8);调用:无返回:无/*/基于 ISD4004 芯片的语音录放系统设计36void ISD_Play(void) SS=0;MOSI=0;SCLK=0; ISD_SPI_Send8(PLAY); SS = 1;/*名称:ISD_Rec(void)
56、功能:发送 rec 录音指令 指令:ISD_SPI_Send8(uchar isdx8);调用:无返回:无/*/void ISD_Rec(void) SS=0;MOSI=0;SCLK=0; ISD_SPI_Send8(REC); SS = 1; /*名称:ISD_SetPlay(uint add)功能:发送 setplay 指令 指令:ISD_SPI_Send8(uchar isdx8);基于 ISD4004 芯片的语音录放系统设计37 ISD_SPI_Send16(uint isdx16);调用:无返回:无/*/void ISD_SetPlay(uint add) Delay1Ms(1);
57、ISD_SPI_Send16(add); /发送放音起始地址 ISD_SPI_Send8(SET_PLAY); /发送 setplay 指令字节 SS = 1;/*名称:ISD_SetRec(uint add)功能:发送 setrec 指令 指令:ISD_SPI_Send8(uchar isdx8); ISD_SPI_Send16(uint isdx16);调用:无返回:无/*/void ISD_SetRec(uint add) Delay1Ms(1); ISD_SPI_Send16(add); /发送录音起始地址 ISD_SPI_Send8(SET_REC); /发送 setrec 指令字节
58、 SS = 1;/*基于 ISD4004 芯片的语音录放系统设计38/*=名称: void Delay1Ms(uchar t);功能:延时 1ms参数:t,最大 255调用: 无返回:无=*/void Delay1Ms(uchar t) uchar i; for (;t0;t-) for (i=0;i4) id=0; ISD_Stop();SS=1; MOSI=1; SCLK=1;LED_REC=1;LED_PLAY=1;play_flag=0; if(id=0)LED_ADDR1=1;LED_ADDR2=1;LED_ADDR3=1;LED_ADDR4=1; if(id=1)LED_ADDR1
59、=0;LED_ADDR2=1;LED_ADDR3=1;LED_ADDR4=1;id_case1_key(); if(id=2)LED_ADDR1=1;LED_ADDR2=0;LED_ADDR3=1;LED_ADDR4=1;id_case1_key(); if(id=3)LED_ADDR1=1;LED_ADDR2=1;LED_ADDR3=0;LED_ADDR4=1;id_case1_key(); if(id=4)LED_ADDR1=1;LED_ADDR2=1;LED_ADDR3=1;LED_ADDR4=0;id_case基于 ISD4004 芯片的语音录放系统设计411_key(); if(pl
60、ay_flag=1) if(INT=0) play_flag=0; ISD_Stop(); SS=1; MOSI=1; SCLK=1; LED_PLAY=1; /=void id_case1_key(void) if (!KY_REC) Delay1Ms(15); if(!KY_REC) while(!KY_REC); 基于 ISD4004 芯片的语音录放系统设计42 ISD_PowerUp(); Delay1Ms(50); if(id=1) LED_REC=0; ISD_SetRec(ISD_ADDS1); else if(id=2) LED_REC=0; ISD_SetRec(ISD_AD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《卖油翁》课获奖课件
- 《学习只有靠自己》课件
- 2026年地质勘察安全管理岗位考试题及答案
- 2026年电子病历分级评价试卷(含答案)
- 2026年法宣在线考试(含答案)
- 2026年法考知识试题库(含答案)
- 2026年高职综合测试(光纤通信技术)试题及答案
- 2026年农业拖拉机机械安全培训模拟试题及参考答案
- 2026年武林外史模拟试卷(含答案)
- 廉洁主题知识问答题库及答案详解
- 2026-2027学年第一学期小学生少先队建队日课件
- 2026年注册安全工程师初级实务真题试卷附答案
- 2026四川省定向乡镇 公共基础知识试题及答案
- 辽宁朝阳市2026-2027学年高三上学期开学英语试题(文字版含答案)
- 养牛疾病防治培训试题与答案
- 深圳报业集团笔试题目答案大全解析
- 2026统考专升本政治:考前冲刺资料
- 临床尿激酶溶栓治疗同意书模板
- 【MOOC】电路理论-华中科技大学 中国大学慕课MOOC答案
- 统编版语文七年级下册第六单元课外古诗词诵读《贾生》公开课一等奖创新教学设计
- 医院培训课件:《床旁快速检测(POCT)》
评论
0/150
提交评论