基于SPI总线的语音录放系统实现_第1页
基于SPI总线的语音录放系统实现_第2页
基于SPI总线的语音录放系统实现_第3页
基于SPI总线的语音录放系统实现_第4页
基于SPI总线的语音录放系统实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、基于SPI总线的语音录放系统实现 黄崇摘 要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录音模块电路53.4放音模块电路54 软件设计64.1 录音程序设计64.2 放音程

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

3、可将信息长期保存于存储介质中,同时对语音信息进行编辑整理非常方便,可快速查找。2 SPI总线简介2.1 SPI总线简介SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。它是一种符合工业标准、全双工、三线或四线通信方式的总线系统。它允许MCU与各种外围设备以串行方式进行通信。在SPI接口中,数据的传输需要一条时钟线,一条数据线和一条控制线(有些芯片需要两条控制线)。SPI可以工作在主模式下或从模式下。在主模式下每位数据发送/接收需要一个时钟周期。2.2 接口信号(1)MOSI 主

4、器件数据输出,从器件数据输入(2)MISO 主器件数据输入,从器件数据输出(3)SCLK 时钟信号,由主器件产生 (4)SS 从器件使能信号,由主器件控制 图2.1为SPI常见的与控制器的连接图。图2.1 SPI常见的与控制器的连接图2.3 SPI接口硬件结构SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的上升沿上数据改变,同时一位数据被存入移位寄存器。3 硬件电路设计本文讨论的语音录放系统包括单片机控制器模块、语音录放模块、键盘控制模块以及显示模块。考虑到本文主要的任务应该是讨

5、论与系统总线相关的内容,也就是与ISD4004有关的硬件软件设计,所以下边的内容讲的主要是与SPI总线相关的内容,硬件模块包括与单片机接口模块、录音模块以及放音模块。因为ISD4004芯片在音频输入端和输出端都集成了合适的滤波器和放大器,所以实际实现起来的硬件电路非常简单。3.1 ISD4004简介ISD4004语音芯片是与普通的录音/重放芯片相比,ISD4004具有如下特点:(1)记录声音没有段长度限制,并且声音记录不需要A/D转换和压缩。(2)快速闪存作为存储介质,无需电源可保存数据长达100年,重复记录10000次以上。(3)ISD4004具有记录时间长(可达16分钟,本文采用的为8分钟

6、的ISD4004语音芯片)的优点。(4)ISD4004开发应用具有所需外围电路简单的优点,这一点从本文介绍的其在语音报站器中的实际应用中可以体会到。 图3.1为ISD4004内部结构图。图3.1 ISD4004内部结构图3.2 ISD4004与单片机接口电路本文讨论的语音录放系统主电路主要由单片机AT89S52和ISD4004构成。该系统的硬件电路连接如图2.1所示。AT89S52单片机并没有集成SPI控制器,所以设计中必须用普通IO口来模拟,单片机的32个IO口理论上说说是可以随便连接四个的。本设计中单片机的P1.0P1.3引脚接分别接的ISD4004的SS、SCLK、MOSI、MISO引脚

7、,可以看出AT89S52和ISD4004之间的连接较少。图3.2 ISD4004与单片机接口电路 3.3录音模块电路 正如前文所述,ISD4004内部集成有音频输入端的放大器和滤波器,所以这部分电路也是非常简单的。麦克风输出信号经过一个三极管放大电路输入到ISD4004中。在实践中,笔者也尝试着将此部分电路去除,直接接到ISD4004上,但是发现录音声音太小,看来此部分电路还是不能省的。图3.3录音模块电路3.4放音模块电路放音模块电路连接图如图3.4所示。 LM386是一款常用的音频放大芯片,只需要简单的外围电路就能实现一个语音放大电路。本设计中放音模块电路就是把ISD4004的音频输出接到

8、LM386放大器上,经过放大驱动喇叭发声。图中header 3为一个滑动变阻器,通过改变此变阻器的阻值,可以调节输出声音的大小。图3.4放音模块电路4 软件设计系统软件设计从文件的角度说,包括主程序文件、ISD4004驱动文件、功能函数文件。主程序文件调用功能函数文件提供的函数构造主程序框架,功能函数调用ISD4004文件提供的驱动函数实现录音、放音、暂停等等功能函数。ISD4004驱动文件时根据ISD4004芯片手册编写的驱动程序,包括发送启动、8位命令、发送16位命令、暂停等等相关的函数。本文主要的任务是阐述与SPI总线相关的软件设计部分,在4.3部分会详细阐述SPI总线协议的实现方法。至

9、于系统其他的与SPI总线关联不大的软件设计本文不再过多阐述,以免淡化了主题。4.1 录音程序设计发POWER UP 命令;等待TPUD(上电延时);发POWER UP 命令;4. 等待2 倍TPUD;发地址值为00 的SETREC 命令;发REC 命令。器件便从00 地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。4.2 放音程序设计发POWERUP 命令;等待TPUD(上电延时);发地址值为00 的SETPLAY 命令;发PLAY 命令。器件会从此00 地址开始放音,当出现EOM 时,立即中断,停止放音。4.3 部分工作子程序图4.1为向ISD4004发送一个八位命令的时序图。从图

10、中可以看出,从MOSI数据线向ISD4004发送命令的同时,主机也会从MISO数据线得到8位数据。无论主机是否选择接受,ISD4004都会在主机发送命令的同时,将一组状态数据发送回来。图4.1 ISD4004发送八位命令的时序图 正如前文所述,由于AT89S52单片机内部没有集成SPI控制器,所以需要通过普通IO口来模拟这样的时序。虽然这带来的编程的复杂性,但是对于理解SPI总线的协议是非常有帮助的,因为实际上程序模拟了一个SPI控制器。笔者从源程序中摘出了SPI串行发送8位命令并同时接收8位数据的函数,接收的8位数据的这样一个函数见于附录。 从这段代码可以看出,程序发送命令isd_cmd,同

11、时接收一个8位的数据保存在isd_rxd。这也验证了SPI全双工通信的特征。数据在发送和接收过程中,需要通过SCLK来驱动数据流动,这样体现了SPI通信的同步特征。isd_rxd = isd_rxd >> 1和isd_cmd = isd_cmd >> 1这两句代码模拟了主机的移位寄存器,这也是对SPI控制器的硬件电路用软件方法的模拟实现。4.4 录音放音暂停功能的实现录音放音暂停功能是非常重要的功能,一个成熟的录音放音系统是不能缺少的。ISD4004可以向主机发送当前录音放音的存储地址给系统实现这种功能提供了硬件支持。实现思路是这样的:在录音或者放音进行中,可以通过发送

12、一个暂停命令,在停止录音放音的同时,将ISD4004会将当前录音放音的存储器地址发送给控制器。控制器在接收到这个地址后,可以从这个地址继续放音或者录音,从而达到暂停后再启动继续放音或者录音的功能。 5 结束语本文并没有详细阐述有关系统实现的具体细节,而把重点集中在SPI总线硬件连接和软件编程上,这样与本学期“电子与系统总线”这门课联系的更加紧密。本文通过对ISD4004语音芯片在语音录音放音系统的实现,熟悉了ISD4004的基本应用,也掌握了SPI总线的硬件工作原理以及软件编程控制。系统设计基本上满足了录音、放音、暂停以及暂停后继续录音放音的功能,但是也存在一些问题,比如说录音音质差,缺少分段录音放音的功能,系统还有待于进一步完善。附录:/*函数功能:SPI串行发送8位命令并同时接收8位数据的函数,接收的8位数据 高位低位反向(P5|P4|P3|P2|P1|P0|EOM|OVF)*/unsigned char spi_8bit_tr(unsigned char isd_cmd)unsigned char isd_rxd = 0;unsigned char count;SS = 0;for(count=0;count<8;count+) isd_rxd = isd_rxd &

温馨提示

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

评论

0/150

提交评论