基于SPI总线的语音录放系统实现

上传人:宝路 文档编号:17821907 上传时间:2017-11-16 格式:DOC 页数:8 大小:220.02KB
返回 下载 相关 举报
基于SPI总线的语音录放系统实现_第1页
第1页 / 共8页
基于SPI总线的语音录放系统实现_第2页
第2页 / 共8页
基于SPI总线的语音录放系统实现_第3页
第3页 / 共8页
基于SPI总线的语音录放系统实现_第4页
第4页 / 共8页
基于SPI总线的语音录放系统实现_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于SPI总线的语音录放系统实现》由会员分享,可在线阅读,更多相关《基于SPI总线的语音录放系统实现(8页珍藏版)》请在金锄头文库上搜索。

1、基于SPI总线的语音录放系统实现131040061 黄崇摘 要ISD4004 语音系列芯片是 SPI 接口,具有多次重复录放,存储时间长,使用时不需扩充存储器,所需外围电路简单等特点。本文使用 ISD4004 芯片在录音放音系统中的一个实际应用。笔者通过这个系统的实现,掌握了 SPI 总线的协议规范和编程方法。关键字:SPI 总线 ISD4004 单片机目录1 前言 .32 SPI 总线简介 .32.1 SPI 总线简介 .32.2 接口信号 .32.3 SPI 接口硬件结构 .33 硬件电路设计 .43.1 ISD4004 简介 .43.2 ISD4004 与单片机接口电路 .43.3 录音

2、模块电路 .53.4 放音模块电路 .54 软件设计 .64.1 录音程 序设计 .64.2 放音程序设计 .64.3 部分工作子程序 .64.4 录音放音暂停功能的实现 .75 结束语 .71 前言语音生成技术用于工业监控系统、自动应答系统、多媒体查询系统、智能化仪表、办公自动化系统或家用电气产品中,使它们具有语音输出功能,使之能在适当的时候用语音实时报告系统的工作状态、警告信息、提示信息或相关的解释说明等,无疑在提高人机通信能力、减少对错误处理的遗漏、提高系统性能、降低人们的工作强度等方面都有极大的好处。数字录音放音系统是将现场的语音模拟信号转变为离散的数字信号,然后存储在一定的存储介质上

3、的一种录音方式,它也是数字语音处理技术中常用的一种方式。采用数字录音技术,有较高的效率和自动化程度,录音时间也长,并可将信息长期保存于存储介质中,同时对语音信息进行编辑整理非常方便,可快速查找。2 SPI 总线简介2.1 SPI 总线简介SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使 MCU 与各种外围设备以串行方式进行通信以交换信息。它是一种符合工业标准、全双工、三线或四线通信方式的总线系统。它允许MCU 与各种外围设备以串行方式进行通信。在 SPI 接口中,数据的传输需要一条时钟线,一条数据线和一条控制线(有些芯片需要

4、两条控制线) 。SPI 可以工作在主模式下或从模式下。在主模式下每位数据发送/接收需要一个时钟周期。2.2 接口信号(1)MOSI 主器件数据输出,从器件数据输入(2)MISO 主器件数据输入,从器件数据输出(3)SCLK 时钟信号,由主器件产生 (4)SS 从器件使能信号,由主器件控制 图 2.1 为 SPI 常见的与控制器的连接图。图 2.1 SPI 常见的与控制器的连接图2.3 SPI 接口硬件结构SPI 接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为 8 位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在 SCLK 的上升沿上数据改变,

5、同时一位数据被存入移位寄存器。3 硬件电路设计本文讨论的语音录放系统包括单片机控制器模块、语音录放模块、键盘控制模块以及显示模块。考虑到本文主要的任务应该是讨论与系统总线相关的内容,也就是与 ISD4004 有关的硬件软件设计,所以下边的内容讲的主要是与SPI 总线相关的内容,硬件模块包括与单片机接口模块、录音模块以及放音模块。因为 ISD4004 芯片在音频输入端和输出端都集成了合适的滤波器和放大器,所以实际实现起来的硬件电路非常简单。3.1 ISD4004 简介ISD4004 语音芯片是与普通的录音/重放芯片相比,ISD4004 具有如下特点:(1)记录声音没有段长度限制,并且声音记录不需

6、要 A/D 转换和压缩。(2)快速闪存作为存储介质,无需电源可保存数据长达 100 年,重复记录10000 次以上。(3)ISD4004 具有记录时间长(可达 16 分钟,本文采用的为 8 分钟的 ISD4004语音芯片)的优点。(4)ISD4004 开发应用具有所需外围电路简单的优点,这一点从本文介绍的其在语音报站器中的实际应用中可以体会到。图 3.1 为 ISD4004 内部结构图。图 3.1 ISD4004 内部结构图3.2 ISD4004 与单片机接口电路本文讨论的语音录放系统主电路主要由单片机 AT89S52 和 ISD4004 构成。该系统的硬件电路连接如图 2.1 所示。AT89

7、S52 单片机并没有集成 SPI 控制器,所以设计中必须用普通 IO 口来模拟,单片机的 32 个 IO 口理论上说说是可以随便连接四个的。本设计中单片机的 P1.0P1.3 引脚接分别接的 ISD4004 的SS、SCLK、MOSI、MISO 引脚,可以看出 AT89S52 和 ISD4004 之间的连接较少。图 3.2 ISD4004 与单片机接口电路3.3 录音模块电路正如前文所述,ISD4004 内部集成有音频输入端的放大器和滤波器,所以这部分电路也是非常简单的。麦克风输出信号经过一个三极管放大电路输入到ISD4004 中。在实践中,笔者也尝试着将此部分电路去除,直接接到 ISD400

8、4上,但是发现录音声音太小,看来此部分电路还是不能省的。图 3.3 录音模块电路3.4 放音模块电路放音模块电路连接图如图 3.4 所示。 LM386 是一款常用的音频放大芯片,只需要简单的外围电路就能实现一个语音放大电路。本设计中放音模块电路就是把 ISD4004 的音频输出接到 LM386 放大器上,经过放大驱动喇叭发声。图中header 3 为一个滑动变阻器,通过改变此变阻器的阻值,可以调节输出声音的大小。图 3.4 放音模块电路4 软件设计系统软件设计从文件的角度说,包括主程序文件、ISD4004 驱动文件、功能函数文件。主程序文件调用功能函数文件提供的函数构造主程序框架,功能函数调用

9、 ISD4004 文件提供的驱动函数实现录音、放音、暂停等等功能函数。ISD4004 驱动文件时根据 ISD4004 芯片手册编写的驱动程序,包括发送启动、8 位命令、发送 16 位命令、暂停等等相关的函数。本文主要的任务是阐述与 SPI 总线相关的软件设计部分,在 4.3 部分会详细阐述 SPI 总线协议的实现方法。至于系统其他的与 SPI 总线关联不大的软件设计本文不再过多阐述,以免淡化了主题。4.1 录音程序设计发 POWER UP 命令;等待 TPUD(上电延时);发 POWER UP 命令;4. 等待 2 倍 TPUD;发地址值为 00 的 SETREC 命令;发 REC 命令。器件

10、便从 00 地址开始录音,一直到出现 OVF(存贮器末尾)时,录音停止。4.2 放音程序设计发 POWERUP 命令;等待 TPUD(上电延时);发地址值为 00 的 SETPLAY 命令;发 PLAY 命令。器件会从此 00 地址开始放音,当出现 EOM 时,立即中断,停止放音。4.3 部分工作子程序图 4.1 为向 ISD4004 发送一个八位命令的时序图。从图中可以看出,从MOSI 数据线向 ISD4004 发送命令的同时,主机也会从 MISO 数据线得到 8 位数据。无论主机是否选择接受,ISD4004 都会在主机发送命令的同时,将一组状态数据发送回来。图 4.1 ISD4004 发送八位命令的时序图正如前文所述,由于 AT89S52 单片机内部没有集成 SPI 控制器,所以需要通过普通 IO 口来模拟这样的时序。虽然这带来的编程的复杂性,但是对于理解SPI 总线的协议是非常有帮助的,因为实际上程序模拟了一个 SPI 控制器。笔者从源程序中摘出了 SPI 串行发送 8 位命令并同时接收 8 位数据的函数,接收的8 位数据的这样一个函数见于附录。从这段代码可以看出,程序发送命令 isd_cmd,同时接收一个 8 位的数据保存在 isd_rxd。这也验证了 SPI 全双工通信的特征。数据在发送和接收过程中,需要通过 SCLK 来驱

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号