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

下载本文档

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

文档简介

基于 ISD4004 芯片的语音录放系统设计 大连理工大学城市学院 本科生毕业设计 学 院 电子与自动化学院 专 业 电子信息工程 班 学 生 常一鸣 指导教师 巢明 完成日期 2012 年 5 月 31 日 基于 ISD4004 芯片的语音录放系统设计 大连理工大学城市学院本科生毕业设计 论文 基于 ISD4004 芯片的语音录放系统设计 总计 毕业设计 论文 48 页 表格 5 个 插图 18 幅 基于 ISD4004 芯片的语音录放系统设计 I 摘摘 要要 基于 ISD4004 芯片的语音录放系统设计 用单片机控制语音芯片 再把单片机和语音芯片嵌入到通信设备 智 能仪器 治安报警及儿童玩具中 就可做成语音播放的机器 本文介绍了基于 AT89C2051 单片机及 ISD4004 语音板为主要部件的语 音录放电路的工作原理 硬件和软件的设计 ISD4004 系列工作电压 3V 单 片录放时间 8 至 16 分钟 音质好 适用于移动电话及其他便携式电子产品中 芯片设计是基于所有操作必须由微控制器控制 操作命令可通过串行通信接 口 SPI 送入 论文概述了语音录放电路的原理 并且在介绍语音录放系统 功能的基础上 提出了系统的总体构成 针对录放系统的录音 放音部分 的总体设计方案进行了论证 进一步介绍了单片机 AT89C2051 应用在系统 中的应用 分析了系统各部分的硬件及软件实现 关键词关键词 ISD4004 AT89C2051 单片机 语音录放 基于 ISD4004 芯片的语音录放系统设计 II Abstract The design of voice recording 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 children s toys so can make a speech broadcast machine 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 mobile 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 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 voice recording and playback 基于 ISD4004 芯片的语音录放系统设计 III 目目 录录 摘摘 要要 I ABSTRACT II 目目 录录 III 引引 言言 1 第第 1 章绪论章绪论 2 1 1 系统设计的意义 2 1 2 系统设计的目的 3 1 3 系统的主要工作方法 3 第第 2 章章 单片机控制技术和开发环境介绍单片机控制技术和开发环境介绍 3 2 1 89C2051 单片机性能和引脚介绍 3 2 1 1 概述 3 2 1 2 AT89C2051 主要性能参数 4 2 1 3 引脚功能说明 4 2 2 KEIL开发环境和建立工程 6 2 2 1 keil 简介 6 2 2 2 Keil 工程建立 7 2 3 ISD4004 介绍 10 2 3 1 性能简述和引脚图 10 2 3 2 引脚描述 11 2 4 SPI 串行外设接口 13 2 4 1 协议介绍 13 2 4 2 信息快进 14 2 4 3 上电顺序 14 2 4 4 SPI 端口的控制位 16 2 4 5 SPI 控制寄存器 16 基于 ISD4004 芯片的语音录放系统设计 IV 2 4 6 时序 17 第第 3 3 章章 系统总体设计系统总体设计 18 3 1 硬件电路设计 18 3 1 1 硬件电路图 18 3 1 2 ISD4004 原理图 19 3 1 3 各电路图分解 20 3 2 软件设计 23 3 2 1 语音芯片的内部信息寻址机制 23 3 2 2 监控 ISD4004 录音地址的实例 25 3 2 3 程序流程图 26 第 4 章 测试实例 39 4 1 测试内容 39 4 2 测试结果 40 结结 论论 40 致致 谢谢 41 参考文献参考文献 41 基于 ISD4004 芯片的语音录放系统设计 5 引 言 语音 作为一种典型的非平稳随机信号 是人类交流信息最自然 最 有效 最方便的手段 在人类文明和社会进步中起着重要的作用 随着电 子通信业的出现和计算机技术的发展 人们开始可以从数字信号处理的角 度了解语音 语音信号的研究可以从时域和频域两个方面进行 其中时域 的分析处理有两种方法 一是进行语音信号分析 这属于小型处理的范畴 主要是通过信号的加减 时移 倍乘 卷积 求相关函数等来实现 另一 种是生成和变换成各种调制信号 这属于非线性的范畴 主要是对信号平 均累加器的动态范围进行压缩扩张 用门限方法对噪声的抑制 对频域分 析处理 即对信号的频率特性在频谱中加以分析研究 这拓展了信号分析 的范围 是对不确定信号分析的主要方法 随着计算机技术处理和信息技术的发展 语音交互已经成为人机交互 的必要手段 而语音信号的采集处理是人机交互的前提和基础 声卡是计 算机对语音信息进行加工的重要部件 它具有对信号滤波 放大 采样保 持 A D 和 D A 转换等功能 语音信号处理作为一个重要的研究领域 已经有很长的研究历史 但 是它的快速发展可以说是从 1940 年前后 Dudley 的声码器和 Potter 等人的 可见语音开始的 20 世纪 60 年代中期形成的一系列数字信号处理方法和技 术 如数字滤波器 快速傅里叶变换等成为语音信号数字处理的理论和技 术基础 到了 80 年代 由于矢量量化 隐马尔克夫模型和人工神经网络等 相继被应用于语音信号处理 并经过不断改进与完善 使得语音信号处理 技术产生了突破性的进展 进入 90 年代以来 语音信号处理在实用化方面 取得了许多实质性的进展 一方面 对声音语音学统计模型的研究逐渐深 入 鲁棒的语音识别 基于语音段的建模方法及隐马尔可夫模型与人工神 经网络的结合成为研究的热点 另一方面 为了语音识别使用化的需要 讲着自适应 听觉模型 快速搜索识别算法以及进一步的语言模型的研究 等课题备受关注 基于 ISD4004 芯片的语音录放系统设计 6 第第 1 章绪论章绪论 1 1 系统设计的意义 语音不仅是人与人之间进行信息交流最直接 最方便和最有效的工具 而且也是人与机器之间进行通信的重要工具 1874 年电话的发展可以认为 是现代处理的开端 电话的理论基础是尽可能不失真地传送语音波形 这 种 波形原则 几乎统治了其后整整一百年 1939 年产生了一种概念全新 的语音处理技术 这就是著名的通道声码器技术 声码器的理论基础是认 为语音是由人的声带振动产生的生源 载波 受到运动的声道的控制 调 制 而产生的 因而将载波和调制两部分分开来进行传送便可极大地压缩 频带 这一概念已经包含着其后出现的语音参数模型的基本思想 40 年代 后期 研制成功了能够把语音信号的时变谱用语音表示出来的仪器 语 音仪 为语音信号分析提供了一个有力的工具 对于语音信号 数字处理比模拟处理具有更多的优点 这是因为 第 一 数字技术能够完成许多很复杂的信号处理工作 第二 通过语音进行 交换的信息本质上具有离散的性质 因为语音可以看成是因素的组合 这 就特别适合于数字处理 第三 数字系统具有高可靠性 价廉 紧凑 快 速等特点 很容易完成实时处理任务 第四 数字语音适合于在强干扰通 信中传输 易于和数据一起在通信网中传输 也易于进行加密传输 因此 数字语音信号处理是主要研究方向 无论是人与人之间还是人与计算机之间的语音通信 语音处理 特别 是语音数字处理的理论和技术 具有特别重要的作用 单片机的应用无处不在 利用单片机控制语音的录放也多不胜举 用单 片机控制语音芯片 再把单片机和语音芯片嵌入到通信设备 智能仪器 治安报警及儿童玩具中 就可做成语音播放的机器 应用范围广泛 用单 片机控制语音芯片设计语音录放系统 该系统功能多 录放音音质好 外围 电路简单 基于 ISD4004 芯片的语音录放系统设计 7 1 2 系统设计的目的 设计一个语音录放系统 可以应用于通讯设备 智能仪表 治安报亭 语音报站 报数报价 语音讲解 语音记录 语音复读 教学仪器 智能 玩具 电子礼品等领域 要求放音质量好 用二极管显示工作状态 系统 具有较强的抗干扰能力 便于安装和扩展 1 3 系统的主要工作方法 设计硬件原理图 焊接语音模块 包括电压转换芯片 音频小功率放大器和 ISD4004 的连接 编写软件程序 利用单片机控制技术 实现录 放 停等操作 基于 ISD4004 芯片的语音录放系统设计 8 第第 2 章章 单片机控制技术和开发环境介绍单片机控制技术和开发环境介绍 2 1 89C2051 单片机性能和引脚介绍 2 1 1 概述 AT89C2051 是美国 ATMEL 公司生产的低电压 高性能 CMOS8 位单片机片 内含 2K bytes 的可反复可擦写的只读程序储存器 PEROM 和 128bytes 的 随机存储数据储存器 RAM 器件采用 ATMEL 公司的高密度 非易失性储 存技术生产 兼容标准 MCS 51 指令系统 片内置通用 8 位中央处理器和 flash 存储单元 2 1 2 AT89C2051 主要性能参数 与 MCS 51 产品指令系统完全兼容 2K 字节可重擦写闪速储存器 1000 次擦写周期 2 7 6V 的工作电压范围 全静态操作 0Hz 24MHz 两级加密程序存储器 128 8 字节内部 RAM 15 个可编程 I O 口线 两个 16 位定时 计数器 6 个中断源 可编程串行 UART 通道 可直接驱动 LED 的输出端口 内置一个模拟比较器 低功耗空闲和掉电模式 基于 ISD4004 芯片的语音录放系统设计 9 2 1 3 引脚功能说明 图 1 AT89C2051 Vcc 电压电源 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 闪速编程及程序校验时接收代码数据 基于 ISD4004 芯片的语音录放系统设计 10 P3 口 P3 口的 P3 0 P3 5 P3 7 是带上拉电阻的 7 个双向 I O 口 P3 6 没有引出 它作为一个通用 I O 但不可访问 但可作为固定输入片内比较器 的输出信号 P3 口缓冲器可吸收 20mA 电流 当 P3 口写入 1 时 它们 被内部上拉电阻拉高并可作为输入端口 作为输入端口时 被外部拉低的 P3 口将用上拉电阻输出电流 P3 口还用于实现 AT89c2051 特殊的功能 如下图所示 口引脚功能特性 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 外中断 0 0INT P3 3 外中断 1 1INT P3 4 T0 定时 计数器 0 外部输入 P3 5 T1 定时 计数器 1 外部输入 表 1 管脚功能介绍 RET 复位输入 RST 引脚一旦变成俩个机械周期以上高电平 所有 I O 口都复位 到 1 高电平 状态 当振荡器工作时 持续俩个周期以上的高电平便 可完成复位 每个机械周期为 12 个振荡周期 XTAL1 振荡器反相放大器的及内部时钟发生器的输入端 XTAL2 振荡器反相放大器的输出端 振荡器特征 XTAL1 XTAL2 为片内振荡器的反相放大器的输入和输出端 可 采用石英晶体或陶瓷振荡器组成时钟振荡器 如需要外部输入时钟驱动 AT89C2051 时钟信号从 XTAL1 出入 XTAL2 应悬空 由于出入到内部 电路是经过一个 2 分频触发器 所以输入的外部时钟信号无特殊要求 但 它必须符合电平的最大和最小值及时序规范 基于 ISD4004 芯片的语音录放系统设计 11 2 2 keil 开发环境和建立工程 2 2 1 keil 简介 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软 件开发系统 与汇编相比 C 语言在功能上 结构性 可读性 可维护性 上有明显的优势 因而易学易用 Keil C51 软件提供丰富的库函数和功能 强大的集成开发调试工具 全 Windows 界面 另外重要的一点 只要 看一下编译后生成的汇编代码 就能体会到Keil C51 生成的目标代码 效率非常之高 多数语句生成的汇编代码很紧凑 容易理解 2 2 2 Keil 工程建立 启动 uVison3 点击 File New 在工程管理器的右侧打开一个新的文 件输入窗口 在这个窗口里输入一个源程序 注意大小写及每行后的分号 不要错输及漏输 输入完毕之后 选择 File Save 给这个文件取名保存 取名字的时候 必须要加上扩展名 一般 C 语言程序均以 C 为扩展名 这里将其命名为 fgf c 保存完毕后可以将该文件关闭 Keil 不能直接对单个的 C 语言源程 序进行处理 还必须选择单片机型号 确定编译 汇编 连接的参数 指 定调试的方式 而且一些项目中往往有多个文件 为管理和使用方便 Keil 使用工程 Project 这一概念 将这些参数设置和所需的所有文件都加在一 个工程中 只能对工程而不能对单一的源程序进行编译和连接等操作 点击 Project New Project 菜单 出现对话框 要求给将要建立的工 程起一个名字 这里起名为 fgf 不需要输入扩展名 点击 保存 按钮 出 现第二个对话框 如图 2 2 所示 这个对话框要求选择目标 CPU 即你所 用芯片的型号 Keil 支持的 CPU 很多 这里选择 Atmel 公司的 89S52 芯 片 点击 ATMEL 前面的 号 展开该层 点击其中的 89S52 然后再点 基于 ISD4004 芯片的语音录放系统设计 12 击 确定 按钮 回到主窗口 此时 在工程窗口的文件页中 出现了 Target 1 前面有 号 点击 号展开 可以看到下一层的 Source Group1 这时的工程还是一个空的工程 里面什么文件也没有 需要手动把刚才编写好的源程序加入 点击 Source Group1 使其反白显示 然后 点击鼠标右键 出现一个下拉菜单 如图 2 3 所示 选中其中的 Add file to Group Source Group1 出现一个对话框 要求寻找源文件 图 2 选择单片机型号 图 3 加入文件 基于 ISD4004 芯片的语音录放系统设计 13 双击 fgf c 文件 将文件加入项目 注意 在文件加入项目后 该对话 框并不消失 等待继续加入其它文件 但初学时常会误认为操作没有成功 而再次双击同一文件 这时会出现如图 2 4 所示的对话框 提示你所选文件 已在列表中 此时应点击 确定 返回前一对话框 然后点击 Close 即可 返回主接口 返回后 点击 Source Group 1 前的加号 fgf c 文件已在其中 双击文件名 即打开该源程序 图 4 重复加入源程序得到的提示 2 3 ISD4004 介绍 2 3 1 性能简述和引脚图 ISD4004 系列工作电压 3V 单片录放时间 8 至 16 分钟 音质好 适用于移 动电话及其他便携式电子产 品中 芯片采用 CMOS 技术 内含振荡器 防 混淆滤波器 平滑滤波器 音频放大器 自动静噪及高密 度多电平闪烁存 贮陈列 芯片设计是基于所有操作必须由微控制器控制 操作命令可通过串 行通信接口 SPI 送入 芯片采用多电平直接模拟量存储技术 每个采样值 直接存贮在片内闪烁存贮器 中 因此能够非常真实 自然地再现语音 音乐 音调和效果声 避免了一般固体录音电路因量化和压缩 造成的量化噪声和 金属声 采样频率可为 4 0 5 3 6 4 8 0kHz 频率越低 录放时间越长 而音质 则有所下 降 片内信息存于闪烁存贮器中 可在断电情况下保存 100 年 典型 基于 ISD4004 芯片的语音录放系统设计 14 值 反复录音 10 万次 图 5 ISD4004 引脚图 图 6 ISD4004 实物图 基于 ISD4004 芯片的语音录放系统设计 15 2 3 2 引脚描述 1 电源 VCCA VCCD 为使噪声最小 芯片的模拟和数字电路使用不 同的电源总线 并且分别引到外封装的 不同管脚上 模拟和数字电源端最好 分别走线 尽可能在靠近供电端处相连 而去耦电容应尽量靠近器件 2 地线 VSSA VSSD 芯片内部的模拟和数字电路也使用不同的地线 3 同相模拟输入 ANA IN 这是录音信号的同相输入端 输入放大 器可用单端或差分驱动 单端输入时 信号由耦合电容输入 最大幅度为峰 峰值 32mV 耦合电容和本端的 3K 电阻输入阻抗决定了芯片频带的 低端 截止频率 差分驱动时 信号最大幅度为峰峰值 16mV 为 ISD33000 系列 相同 4 反相模拟输入 ANA IN 差分驱动时 这是录音信号的反相输入端 信号通过耦合电容输入 最大幅度为 峰峰值 16mV音频输出 AUD OUT 提 供音频输出 可驱动 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 75 s 是高电 平 31 25 s 为低电平 图 7 时序 11 外部时钟 XCLK 本端内部有下拉元件 芯片内部的采样时钟在出 厂前已调校 误差在 1 内 商业级 芯片在整个温度和电压范围内 频率 变化在 2 25 内 工业级芯片在整个温度和电压范围内 频率变化 在 6 4 内 此时建议使用稳压电源 若要求更高精度 可从本端输入外部时钟 如前表 所列 由于内部 的防混淆及平滑滤波器已设定 故上述推荐的时钟频率不 应改变 输入时钟的占空比无关紧要 因内部首 先进行了分频 在不外接 地时钟时 此端必须接地 12 自动静噪 AMCAP 当录音信号电平下降到内部设定的某一阈值以 下时 自动静噪功能使信号衰弱 这样有 助于养活无信号 静音 时的噪声 通常本端对地接 1mF 的电容 构成内部信号电平峰值检测电路的一部 分 检出的峰值电平与内部设定的阈值作比较 决定自动静噪功能的翻转点 大 信号时 自动静噪电路不衰减 静音时衰减 6dB 1mF 的电容也影响自动静 噪电路对信号幅度的响应速度 本端接 VCCA 则禁止自动静噪 2 4 SPI 串行外设接口 2 4 1 协议介绍 ISD4004 工作于 SPI 串行接口 SPI 协议是一个同步串行数据传输协议 基于 ISD4004 芯片的语音录放系统设计 17 协议假定微控制器的 SPI 移 位寄存器在SCLK 的下降沿动作 因此对 ISD4004 而言 在时钟止升沿锁存MOSI 引脚的数据 在下降沿将数据送至 MISO 引脚 协议的具体内容为 1 所有串行数据传输开始于 SS 下降沿 2 SS 在传输期间必须保持为低电平 在两条指令之间则保持为高电平 3 数据在时钟上升沿移入 在下降沿移出 4 SS 变低 输入指令和地址后 ISD 才能开始录放操作 5 指令格式是 8 位控制码 加 16 位地址码 6 ISD 的任何操作 含快进 如果遇到 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 芯片的语音录放系统设计 18 2等待 TPUD 上电延时 3 发地址值为 00 的 SETPLAY 命令 4 发 PLAY 命令 器件会从此 00 地址开始放音 当出现 EOM 时 立即 中断 停止放音 如果从 00 处录音 则按以下时序 1 发 POWER UP 命令 2 等待 TPUD 上电延时 3 发 POWER UP 命令 4 等待 2 倍 TPUD 5 发地址值为 00 的 SETREC 命令 6 发 REC 命令 器件便从 00 地址开始录音 一直到出现 OVF 存贮器 末尾 时 录音停止 指令8 位控制码 操作摘要 POWERUP 00100XXX 上电 等待TPUD后器件可以工作 SET PLAY11100XXX 从指定地址开始放音 后跟 PLAY 指令 可使放音继续进行下去 PLAY 11110XXX 从当前地址开始放音 直至 EOM 或 OVF SET REC 10100XXX 从指定地址开始录音 后跟 REC 指令 可使录音继续进行下去 REC 10110XXX 从当前地址开始录音 直至 OVF 或停止 SET MC 11101XXX 从指定地址开始快进 后跟 MC 指令可 使快进继续进行下去 基于 ISD4004 芯片的语音录放系统设计 19 MC 11111XXX 执行快进 直到 EOM 若再无信息 则进 入 OVF 状态 STOP 0X110XXX 停止当前操作 STOP WRDN 0X01XXXX 停止当前操作并掉电 RINT 0X110XXX 读状态 OVF 和 EOM 表2 指令表 注 快进只能在放音操作开始时选择 2 4 4 SPI 端口的控制位 SPI 端口有两个硬件控制位 MISO 和 MOSI SPI 控制寄存器控制放 录 信息检索 上电 掉电 启动和停止 忽视地址指示等功能 详见图 2 4 图 8 各端口功能 2 4 5 SPI 控制寄存器 SPI控制寄存器控制器件的每个功能 如录放 录音 信息检索 快进 基于 ISD4004 芯片的语音录放系统设计 20 上电 掉电 开始和停止操 作 忽略地址指针等 位值功能位值功能 RUN 1 0 允许 禁止操作 开始 停止 PU 1 0 电源控制 上电 掉电 P R 1 0 录 放模式 放音 录音 IAB 1 0 操作是否使用指令地址 忽略输入地址寄存的内容 使用输入地址寄存的内容 MC 1 0 快进模式 允许快进 禁止 P15 P0 A15 A0 行指针寄存器输出 输入地址寄存器 表 3 控制器功能 注 IAB 置 0 时 录 放操作从 A9 A0 地址开始 为了能连贯地录 放到后续的存储空间 在操作到达该 行末之前 应发出第二个 SPI 指令将 IAB 置 1 否则器件在同一地址上反复循环 这个特点对语音提 示功能很有 用 RAC 脚和 IAB 位可用于信息管理 SPI 端口简单框图如下 图 8 SPI 端口 基于 ISD4004 芯片的语音录放系统设计 21 2 4 6 时序 SPI 总线协议是一个环形总线结构 由 ss cs sck sdi sdo 构成 其时序主要是在 sck 的控制下 两个双向移位寄存器进行数据交换 假设下 面的8位寄存器装的是待发送的数据10101010 上升沿发送 下降沿接收 高位先发送 那么第一个上升沿来的时候数据将会是 sdo 1 寄存器 0101010 x 下降沿到来的时候 sdi 上的电平将所存到寄存器中去 那么 这时寄存器 0101010sdi 这样在8个时钟脉冲以后 两个寄存器的内容互相 交换一次 这样就完成里一个 spi 时序 SymbolParametersMinTy p Ma x Unit s TSS S SS Setup Time500nse c TSSH SS Hold Time500nse c TDI S Data in Setup Time200nse c TDIHData in Hold Time200nse c TP D Output Delay50 0 nse c TD F Output Delay to Hiz50 0 nse c TSSmin SS HIGH1 se c TSCKhiSCLK High Time400nse c TSCKlowSCLK Low Time400nse c F 0 CLK Frequency 100 0 kH z 表 4 SPI 时序参数 第第 3 章章系统总体设计系统总体设计 3 1 硬件电路设计 本文的语音录放系统所采用的是录放时间为八至十六分钟的ISD4004 语音芯片 该语音录放电路主要由单片机AT89C51 ISD4004 构成 本系 统可以主要分为三部分单片机控制部分 录音部分和放音部分 控制部分则主要由单片机AT89C51 构成 包含必要的按键电路 复 基于 ISD4004 芯片的语音录放系统设计 22 位电路和指示电路等外围电路 3 1 1 硬件电路图 本文讨论的主要由单片机89C2051 和ISD4004 构成 该系统的硬件电路 连接如图1 所示 本系统可以主要分为三部分 单片机控制部分 录音部 分 放音部分 控制部分则主要由单片机 89C2051 构成 包含必要的按键电路 复位 电路和看门狗电路等外围电路 放音部分主要由ISD4004 构成 包含配套的 变压 电路 功放电路等 图 9 硬件连接图 3 1 2 ISD4004 原理图 ISD4004 开发板是由 ISD4004 芯片 LM386 低压音频小功率放大器和 AMS1117 电压转换芯片焊接而成 其连接如图 3 2 所示 图10 ISD4004原理图 基于 ISD4004 芯片的语音录放系统设计 23 3 1 3 各电路图分解 电源电路 图 11 5V 3 3V 转换电路 图 12 输入 DC5V 通过 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语音芯片具有能够准确控制语音录放地址的功能 这种功 能使我们能够方便灵活地对语音 信 息进行处理以达到我们对语音信息 的要求 例如 我们可以利用软件编程的方法实现对语音信息的剪辑 合成等操作来达到我们对语音信息特殊的要求 还有 我们可以通过程序 控制做到语音的定时放音和循 环 放音 若干条信息按顺序分别录入 到 芯片内 比如称其为a b c d信息 我们需要知道每一时刻的录音信息 在芯片 存储器中所处的位置 这样有利于我们实时地监控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 芯片的语音录放系统设计 29 C 源程序 include include define uchar unsigned char define uint unsigned int 分段录音首地址定义 ISD4004 8 录音时间为 8 分钟 即 8 60 480S 根据 4004 的资料 480 秒 可分为 2400 段 也就是 1S 的段数为 5 段 即从 0000 0005H 的内容为 1 秒 define 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 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 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 SCLK sbit SS P3 4 LOW IS ACTIVELY sbit MOSI P3 5 sbit SCLK P3 2 sbit INT P3 0 sbit RAC P3 1 按键定义 sbit KY SET P3 3 sbit KY REC P3 7 sbit KY PLAY P1 0 sbit KY STOP P1 1 指示灯定义 sbit LED PLAY P1 7 基于 ISD4004 芯片的语音录放系统设计 31 sbit LED REC P1 6 sbit LED ADDR1 P1 5 sbit LED ADDR2 P1 4 sbit LED ADDR3 P1 3 sbit LED ADDR4 P1 2 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 PowerUp void 发送上电指令 并延迟 50ms void ISD PowerDown void 发送掉电指令 并延迟 50ms void ISD Play void 发送放音指令 并延迟 50ms void ISD SetPlay uint add 发送指定放音指令 并延迟 50ms void ISD Rec void 发送录音指令 并延迟 50ms void ISD SetRec uint add 发送指定录音指令 并延迟 50ms uchar ISD Chk Isdovf void 延时函数 void Delay1Ms uchar t 延时 t 1 毫秒 void Delay 按键函数 void Key void void id case1 key 变量定义 基于 ISD4004 芯片的语音录放系统设计 32 unsigned 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 时钟下降沿发送 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 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 功能 发送掉电指令 指令 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 芯片的语音录放系统设计 36 void ISD Play void SS 0 MOSI 0 SCLK 0 ISD SPI Send8 PLAY SS 1 名称 ISD Rec void 功能 发送 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 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 指令字节 SS 1 基于 ISD4004 芯片的语音录放系统设计 38 名称 void Delay1Ms uchar t 功能 延时 1ms 参数 t 最大 255 调用 无 返回 无 void Delay1Ms uchar t uchar i for t 0 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 0 LED ADDR2 1 LED ADDR3 1 LED ADDR4 1 id case 1 key if id 2 LED ADDR1 1 LED ADDR2 0 LED ADDR3 1 LED ADDR4 1 id case 1 key if id 3 LED ADDR1 1 LED ADDR2 1 LED ADDR3 0 LED ADDR4 1 id case 1 key if id 4 LED ADDR1 1 LED ADDR2 1 LED ADDR3 1 LED ADDR4 0 id case 基于 ISD4004 芯片的语音录放系统设计 41 1 key if play flag 1 if INT 0 play flag 0 ISD Stop SS 1 MOSI 1 SCLK 1 LED PLAY 1 voi

温馨提示

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

评论

0/150

提交评论