现在位置:范文先生网>理工论文>电子通信论文>TMS320VC5402 DSP与ISD4004语音录放芯片

TMS320VC5402 DSP与ISD4004语音录放芯片

时间:2023-02-20 23:33:37 电子通信论文 我要投稿
  • 相关推荐

TMS320VC5402 DSP与ISD4004语音录放芯片

摘要:根据语音录放芯片ISD4004的接口特点,设计了其与TMS320VC5402 DSP的SPI接口电路。完成了DSP对ISD芯片的通讯与接口控制编程,并给出了实际应用中的一种ISD4004信息管理方法:信息地址表(MAT)。

    关键词:DSP 语音录放芯片 ISD4004 SPI接口 MAT

许多类型的语音录放应用要求具备信息管理的功能,即能够随着地录、放、删除任意一段信息。而许多语音录放系统并不能很好地满足这种要求,如磁带录音系统。ISD4004语音录放芯片提供了SPI微控制器接口,使得语音录放的信息管理成为可能。本文将详细阐述TMS320VC5402 DSP与ISD4004的SPI接口设计及其控制操作,同时设计适合应用的信息管理方法。

ISD4004语音录放芯片工作电压为3V,单片录放时间为8~16分钟。芯片设计使得所有操作必须由微控制器控制,操作命令可通过串行通信接口SPI送入。芯片采用多电平直接模拟量存储技术,每个采样值直接存储在片内内烁存储器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声。采样频率可为4.0k、5.3k、6.4k、8.0kHz,频率越低,录放时间越长,但音质有所下降。

TMS320VC5402是美国TI(德州仪器)公司推出的一款高性能的定点DSP,最高频率为100MHz,内部提供16K的存储空间。它提供的多信道缓冲串口(McBSP)可以设置为SPI工作方式,从而使得DSP与ISD4004的接口设计成为可能。
(范文先生网www.fwsir.com收集整理)
1 接口设计

DSP作为SPI(串行外设接口)的主器件(Master),负责为ISD4004提供串行时钟、片选信号以及控制ISD4004的动作信号。接口电路如图1所示。

1.1 SPI

SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。ISD4004工作于SPI工作模式。因此对于ISD4004而言,在时钟上升沿锁存MOSI引脚的数据,在下降沿将数据送至MISO引脚。ISD4004与DSP通讯协议的具体内容如下:

(1)所有串行数据传输开始于SS下降沿。

(2)SS在数据传输期间必须保持低电平,在两条指令之间则保持高电平。

(3)数据在时钟上升沿移入,在下降沿移出。

(4)SS变低时,输入指令和地址后,ISD才能开始录放操作。

(5)指令格式是8位控制码加16位地址码。

(6)ISD的任何操作(含快进)如果遇到EOM(信息结束标志)或OVF(溢出),则产生一个中断,该中断状态在下一个SPI周期开始时被清除。

(7)使用“读”指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。

(8)所有操作在运行位(RUN)置“1”时开始,置“0”时结束。

(9)所有指令都在SS上升沿开始执行。

1.2 ISD4004与DSP的SPI时序配合

根据ISD4004的时序要求,DSP设置串口为SPI工作模式,发送数据先于串行时钟半个周期建立、数据在时钟上升沿发送。由图2可知,ISD接收命令字的方式是先地址后命令,且位序从低到高;而DSP发送数据方式是先高位后低位,故在DSP发送程序中须将待送地址和命令进行高低位对调。

图2 ISD控制命令字时序图

    串行时钟(SCLK)由DSP主时钟产生。在DSP运行于10MHz时,设置时钟分频因子为255,得到约40kHz的串行传输时钟,适应ISD4004相对慢速的要求。DSP串口SPI方式数据传输时序如图3所示。

ISD4004的RAC管脚(行地址时钟)用于指示录放操作已经接近一行的末发展。RAC在行末前25ms变低,在到达行末时变高,DSP将它作为中断INT3的中断源,指示录放操作进行到何处;INT管脚在遇到EOM标志和OVF溢出时向DSP发中断,DSP将它作中断INT2的中断源,用来指示是否到达一段信息的末尾。按下NUM键触发INT1中断开始录音,按下STOP键触发INT0中断终止录音。放音时按下NUM即开始,遇以语句EOM时自动停止放音。

1.3 接口软件设计

DSP对ISD的控制是通过SPI接口实现的,因此DSP的McBSP必须设置为符合ISD控制命令时序要求的SPI工作模式。下程序段完成了McBSP的SPI模式设置(单帧数据为24bit,串行时钟上升沿发送数据,时钟频率为40kHz):

stm SPCR1,McBSP1_SPSA

stm #0000h,McBSP1_SPSD ;Reset接收

stm SPCR2,McBSP1_SPSA

stm #0000h,McBSP1_SPSD ;Reset发送

stm SPCR1,McBSP1_SPSA

stm #1800h,McBSP1_SPSD ;CLKSTP=11,数据提前半个周期

stm RCR1,McBSP1_SPSA

stm #0080h,McBSP1_SPSD ;RWDLEN1=100,每帧数据24bit

stm RCR2,McBSP1_SPSA

stm #0001h,McBSP1_SPSD ;RDATDLY=01

stm XCR1,McBSP1_SPSA

stm #0080h,McBSP1_SPSD ;XWDLEN1=100,发送数据每帧24bit

stm XCR2,McBSP1_SPSA

stm #0001h,McBSP1_SPSD

stm SRGR1,McBSP1_SPSA

stm #00ffh,McBSP1_SPSD ;CLKGDV=0xFF,SPI的时钟=DSP时钟/256

stm SRGR2,McBSP1_SPSA

stm #2000h,McBSP1_SPSD

stm PCR,McBSP1_SPSA

stm #0a08h,McBSP1_SPSD ;CLKXP=0,CLKXM=1,FSXM=1,FSXP=1

stm SPCR2,McBSP1_SPSA

stm #0040h,McBSP1_SPSD ;GRST=1

nop

nop ;等待两个周期

stm SPCR1,McBSP1_SPSA

stm #1801h,McBSP1_SPSD ;设定RRST=1,开始接收数据

stm SPCR2,McBSP1_SPSA

stm #0041h,McBSP1_SPSD ;设定XRST=1,开始发送数据

DSP中断服务程序、命令字发送程序以及信息管理程序在此不多述。

2 信息管理

在采用本模块的拟人机器人语言交互系统中,若干条语音按顺序分别被录入到芯片,并将期编程为1、2、3等。DSP可以通过SPI接口获得每次录音结束时的ISD内部信息指针,据此构建一个信息地址表(MAT),并将此表存入Flash Memory中,作为以后录放、删除操作时信息管理的依据。

ISD4004内部存储器分为2400行,每行1600列。对器件寻址即选择一行,从行首开始录放,而每行中的列不可寻址。对于8kHz采样率的ISD4004,采样间隔为125μs。器件地址分辨率可按如下计算:

(1/Fs)×1600=200ms

2.1 MAT

由于ISD4004内部可寻址多达2400行,而每行固定存储200ms语音,为了可录放、删除任意长度的语音,有必要建立MAT。MAT跟踪每一条语音的开始地址以及每一个信息碎块的开始结束地址。ISD4004共2400行,实际只需要12位地址即可完成寻址。为节省MAT存储空间,将地址最高位bit15作为语音起始点标志。建立MAT的规则如下:

(1)MAT表项值全为0(0000 0000 0000 0000):表示对应行未存储任何语音;

(2)MAT表项值的bit15为1(1XXX XXXX XXXX XXXX),表示对应的是某句语音的起始行;

(3)MAT表项值的bit15为0,其余各位是有效地址(0XXX XXXX XXXX XXXX),表示对应的行是某句语音的一行,但不是起始行;

(4)ISD的第一行总是某句语音的起始行。

同一句语音的地址在MAT中总是连续存储的。由若干行组成的句语音,它的各行地址总是从小到大,但不一定两两相连。以行地址为表项的MAT,所要求的存储空间是较大的。本例中为2400行语句,则要求MAT具有2400个表项。为了减小MAT大小,也可对语音进行分块。若8以位为一个语音块,则MAT大小减小为300个表项。经过几次录音和删除手,建立的MAT如表1所示。

表1 MAT实例

MAT bit15 实际行地址 句 1000 0000 0000 0000 1 0000 0000 0000 0000 1 0000 0000 0000 0001 0 0000 0000 0000 0001 0000 0000 0000 0002 0 0000 0000 0000 0002 1000 0000 0000 0003 1 0000 0000 0000 0003 2 0000 0000 0000 0005 0 0000 0000 0000 0005 0000 0000 0000 0006 0 0000 0000 0000 0006 1000 0000 0000 0004 1 0000 0000 0000 0004 4 0000 0000 0000 0007 0 0000 0000 0000 0007 0000 0000 0000 0008 0 0000 0000 0000 0008

2.2 信息管理操作

放音时,DSP从MAT表头开始搜索bit15为1的表项。要播放第几条语句,则寻找第几个bit15为1的表项。由于RAC的周期和器件的行相同,且其低脉冲时间长达25ms,在播放当前行语音的同时,RAC触发DSP的INT3中断。INT3中断服务程序验证下一行bit15是否为1,若不为1则将该行地址送入ISD,则输入的地址不会立刻生效,而是在缓冲器中等待当前结束;若为1则指示下一行为新语句开始地址,DSP不送任何指令。放音遇到EOM或者OVF时产生INT中断,停止放音。

录音时,按NUM键启动录音操作,DSP首先找出MAT中的个全0行,发录音指令;在录制当前行的同时,DSP等待RAC信号触发INT3中断,中断服务程序继续寻找全0行、发带该行地址的录音指令,直到按STOP键触发INT0中断发录音停止命令为止。删除语音可通过将相应语音行全置零来完成。

本文详细阐述了TMS320VC5402 DSP与ISD4004语音录放芯片的SPI接口设计、ISD4004的语音信息管理以及DSP与ISD4004之间的通讯与控制程序算法的设计。该模块作为拟人机器人语音互系统的语音应答模块,可以对机器人识别的命令语音进行相应的实时应答。


【TMS320VC5402 DSP与ISD4004语音录放芯片】相关文章:

ISD4004语音芯片在语音报站器中的应用08-06

单声道/立体声录放芯片MSM9841及其在数字语音录放机中的应用08-06

适于语音处理的SDA80D51芯片及其数字录放音系统08-06

单片机与DSP结合的dsPIC芯片08-06

HPI自举在TMS320VC5402芯片上的实现08-06

两类DSP芯片的引导过程分析08-06

多制式语音编码及其DSP实现08-06

Trimedia DSP芯片JTAG接口的仿真器设计08-06

语音处理芯片AC48105在低速语音编码设备中的应用08-06