《基于DSP的最小应用系统设计实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于DSP的最小应用系统设计实现毕业论文.doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于DSP的最小应用系统设计实现摘要语音信号处理就是研究如何能更加有效地产生、传输和获取语音信息的学科。本论文首先介绍了语音信号处理的发展概况与国外研究现状,并对未来发展做了展望,分析了语音特征参数的物理意义以与如何对其进行提取。在硬件部分本文主要围绕TMS320VC5402为核心,给出一个语音处理系统的设计方案。首先对DSP系统的组成简要说明了一下,然后给出了设计的基本框架,接下来分别就音频转换模块、电源电压转换模块等主要部分做了详细说明,最后对其它附属电路简要介绍。在设计中应用到了数字信号处理器(DSP)技术。在软件部分本文首先对TI公司的DSP开发工具CCS作了介绍,接着对DSP软件开发
2、流程进行了简要的叙述,然后就详细的分别对DSP的初始化、音频采集、TMS320VC5402的并行引导装载程序进行了分析与设计。本文所涉与容属于一个语音识别系统的一部分,在研究过程中对于语音处理的发展与研究现状进行了深入了解,对于TMS320VC5402芯片的性能参数以与软硬件相关知识掌握较详细,熟悉了DSP系统的设计与开发流程。关键词:语音信号处理;特征参数;数字信号处理器;ISD4004;SPI35 / 39AbstractSpeech signal processing is a subject to study how to produce,transmit and obtain spe
3、ech information effectivelyThe thesis starts with a literature review about the development of speech signal processing and provides an expectation for the futureNextan analysis is carried out on production mechanism of speech signal,setting up a simple and feasible mathematic model to analyze the p
4、hysical significance of speech characteristic parameter and how to determine itFrom the aspect of its hardware,a designing project of the speech processing system is established on the basis of TMS320VC5402The project first gives a brief introduction about the composition of DSP system and then disp
5、lays its basic frameworkNext ,all elaboration is provided for the parts like selection of chip,module of audio frequency switch,extended memorizer, UART data communication and power voltage switchThe technology of DSP is applied in the designing process From the aspect of softwarethe thesis starts w
6、ith an introduction about CCSand then about DSP software developing flowAt last,a detailed elaboration is given respectively to the designing and analysis of initialization of DSP collection of audio frequency and parallel boot load procedure of TMS320VC5402The study in the thesis touches upon a par
7、t of a speech identification systemA profound exploration has been conducted on the areas like development and research statement of speech processing,capability parameter of TMS320VC5402 chip, knowledge about software and hardware,as well as the designing and developing flow of DSP systemKey words:
8、speech signal processing,characteristic parameter, Digital signal processor, information storage devices 4004 (ISD4004),Serial Peripheral Interface(SPI目录摘要IAbstractII第1章绪论11.1引言11.2系统设计的意义21.3 系统设计的目的31.4 系统采用的实现方法3第2章 DSP控制技术和开发环境介绍42.1 DSP核心芯片TMS320C5402引脚的介绍42.1.1 概述42.1.2TMS320C5402主要性能参数42.1.3T
9、MS320C5402引脚功能说明42.2 CCS开发环境和建立工程72.2.1 CCS简介72.2.2 CCS的组成72.2.3 CCS的主要功能82.3 ISD4004 介绍92.3.1 性能简述和引脚图92.3.2 引脚描述92.4 SPI(串行外设接口)112.4.1协议介绍112.4.2 信息管理112.4.3 ISD4004与DSP的SPI时序配合132.4.4ISD4004语音芯片的部信息寻址机制14第三章系统硬件设计153.1系统硬件总体框图153.2硬件电路图153.4 PCB设计18第四章系统软件设计194.1程序流程图194.2系统关键程序设计204.2.1 TMS320V
10、C5402 McBSP初始化程序204.2.2ISD4004录音子程序214.2.3 ISD4004放音子程序24第五章系统测试265.1 测试容26第六章总结27参考文献28附录29附录一系统硬件PCB 3D视图29附录二软件设计主程序30致34第1章绪论1.1引 言语音,作为一种典型的非平稳随机信号,是人类交流信息最自然、最有效、最方便的手段,在人类文明和社会进步中起着重要的作用。随着电子通信业的出现和计算机技术的发展,人们开始可以从数字信号处理的角度了解语音。语音信号的研究可以从时域和频域两个方面进行。其中时域的分析处理有两种方法:一是进行语音信号分析,这属于小型处理的畴,主要是通过信号
11、的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号,这属于非线性的畴,主要是对信号平均累加器的动态围进行压缩扩,用门限方法对噪声的抑制。对频域分析处理,即对信号的频率特性在频谱中加以分析研究,这拓展了信号分析的围,是对不确定信号分析的主要方法。随着计算机技术处理和信息技术的发展,语音交互已经成为人机交互的必要手段,而语音信号的采集处理是人机交互的前提和基础。声卡是计算机对语音信息进行加工的重要部件,它具有对信号滤波、放大、采样保持、A/D和D/A转换等功能。语音信号处理作为一个重要的研究领域,已经有很长的研究历史。但是它的快速发展可以说是从1940年前后Dudley
12、的声码器和Potter等人的可见语音开始的;20世纪60年代中期形成的一系列数字信号处理方法和技术,如数字滤波器、快速傅里叶变换等成为语音信号数字处理的理论和技术基础;到了80年代,由于矢量量化、隐马尔克夫模型和人工神经网络等相继被应用于语音信号处理,并经过不断改进与完善,使得语音信号处理技术产生了突破性的进展。进入90年代以来,语音信号处理在实用化方面取得了许多实质性的进展。一方面,对声音语音学统计模型的研究逐渐深入,鲁棒的语音识别、基于语音段的建模方法与隐马尔可夫模型与人工神经网络的结合成为研究的热点。另一方面,为了语音识别使用化的需要,讲着自适应、听觉模型、快速搜索识别算法以与进一步的语
13、言模型的研究等课题备受关注。在语音记录芯片中,美国ISD公司的ISD系列芯片倍受广大用户的青睐。它采用直接模拟存储专利技术,把语音信号以原始的模拟形式直接存储在片的EEPROM存储器中.无须进行A/D转换和压缩处理,没有大多数固态数字化声音存储技术对声音质量的影响,从而减少了失真,提高了录放音质量,并具有抗断电、音质好、使用方便、可反复录放、无需专的语音开发工具、能随意更改容和耗电少等优点,很适合于现场录放音系统。国用户多习惯使用8031系列单片机作微控制器,与ISD330000,40000系列均可以方便地连接。因此很多资料均是ISD系列芯片与单片机构成的系统,而ISD40000系列芯片与DS
14、P的应用文献几乎没有。本文以TMS320C54x系列的TMS320VC5402为例,说明语音录放芯片ISD4004应用在DSP系统的设计方法。1.2系统设计的意义语音不仅是人与人之间进行信息交流最直接、最方便和最有效的工具,而且也是人与机器之间进行通信的重要工具。1874年的发展可以认为是现代处理的开端。的理论基础是尽可能不失真地传送语音波形。这种“波形原则”几乎统治了其后整整一百年。1939年产生了一种概念全新的语音处理技术,这就是著名的通道声码器技术。声码器的理论基础是认为语音是由人的声带振动产生的生源(载波)受到运动的声道的控制(调制)而产生的,因而将载波和调制两部分分开来进行传送便可极
15、压缩频带。这一概念已经包含着其后出现的语音参数模型的基本思想。40年代后期,研制成功了能够把语音信号的时变谱用语音表示出来的仪器语音仪,为语音信号分析提供了一个有力的工具。对于语音信号,数字处理比模拟处理具有更多的优点。这是因为:第一,数字技术能够完成许多很复杂的信号处理工作;第二,通过语音进行交换的信息本质上具有离散的性质,因为语音可以看成是因素的组合,这就特别适合于数字处理;第三,数字系统具有高可靠性、价廉、紧凑、快速等特点,很容易完成实时处理任务;第四,数字语音适合于在强干扰通信中传输,易于和数据一起在通信网中传输,也易于进行加密传输。因此数字语音信号处理是主要研究方向。无论是人与人之间
16、还是人与计算机之间的语音通信,语音处理,特别是语音数字处理的理论和技术,具有特别重要的作用。用DSP控制语音芯片,再把DSP和语音芯片嵌入到通信设备,智能仪器,治安报警与儿童玩具中,就可做成语音播放的机器,应用围广泛。用DSP控制语音芯片设计语音录放系统,该系统功能多,录放音音质好,外围电路简单。1.3系统设计的目的设计一个基于DSP的语音录放系统,语音录放模块由单片语音录放芯片ISD4004与其外围电路组成;控制电路是由DSP编程控制实现。要现功能:录音、放音、快进、擦除、音量控制。可以应用于通讯设备、智能仪表、治安报亭、语音报站、报数报价、语音讲解、语音记录、语音复读、教学仪器、智能玩具、
17、电子礼品等领域。要求放音质量好,系统具有较强的抗干扰能力,便于安装和扩展。1.4系统采用的实现方法本系统主要设计一个DSP控制的语音录放系统,该系统由语音录放模块、放音电路、电源电路、控制电路构成,实现录音、放音、快进、擦除、音量控制。在实际生活中,本系统可以应用在汽车倒车系统、家庭安防系统、公交车报站以与医院的病房室等应用之中。技术关键是理解ISD4004语音芯片操作功能的时序图,部地址构架,以与与DSP之间的SPI通信模式。实现顺序依次是设计硬件原理图,焊接语音模块,包括电压转换芯片,音频小功率放大器ISD4004的连接.编写软件程序,利用DSP控制技术控制实现录、放、停等操作。第2章 D
18、SP控制技术和开发环境介绍2.1 DSP核心芯片TMS320C5402引脚的介绍2.1.1 概述TMS320VC5402是美国TI(仪器)公司推出的一款高性能的定点DSP,最高频率为100MHz,部提供16K的存储空间。它提供的多信道缓冲串口(MCBSP)可以设置为SPI工作方式,从而使得DSP与ISD4004的接口设计成为可能。2.1.2TMS320C5402主要性能参数TMS320C5402是TI公司于1996年推出的一种定点DSP芯片,采用先进的修正哈佛结构和8总线结构,使处理器的性能大大提高。其独立的程序和数据总线,允许同时访问程序存储器和数据存储器,实现高速并行操作。例如,可以在一条
19、指令中,同时执行3次读操作和1次写操作。TMS320C5402的运行速度为40MIPS(每秒执行40百万条指令)。指令周期为25ns。此外,还可以在数据总线与程序总线之间相互传送数据。从而使处理器具有在单个周期同时执行算术运算,逻辑运算,位移操作,乘法累加运算以与访问程序和数据存储器的强大功能。图1为TMS320C5402DSP的部硬件组成框图。包括:CPU,总线,存储器,在片外围电路,串行口,以与外部总线接口等部分组成2.1.3TMS320C5402引脚功能说明图2-1TMS320C5402外部引脚分布A19(MSB)A0(LSB) :20位并行地址总线。低16位地址(A15A0)用于寻址外
20、部数据/程序存储器或I/O空间,高四位地址(A19A16)仅用于寻址外部程序存储器。当处于保持方式或者OFF 引脚为低电平时,这些引脚处于高阻状态。D15(MSB) D0(LSB):16位并行数据总线。D15D0用于CPU与外部数据/程序存储器或I/O设备之间传送数据。当没有输出或者RS 或HOLD 信号有效时,D15D0处于高阻状态。若EMU1/OFF 为低电平时,则D15D0也变成高阻状态。数据总线具有总线保持功能,降低由悬浮的、未使用的管脚引起的静态能量消耗。总线保持功能使未使用管脚上无需外接偏置电阻,当5402不驱动数据总线时,总线保持引脚上处于先前的逻辑电平。5402复位时总线保持功
21、能无效,但可以通过分区转换控制寄存器(BSCR)的BH位使能/无效。IACK: 中断响应信号。IACK 有效时,表示接收到一次中断,程序计数器按照 A15A0所指示的位置取出中断向量。当OFF 为低电平时, IACK 也变成高阻状态外部中断请求信号。INT0 INT3的优先级为:INT0最高,INT3最低。这四个中断请求信号都可以用中断屏蔽寄存器(IMR)和中断方式位屏蔽。INT0 INT3可以通过中断标志寄存器(IFR)进行查询和复位。NMI: 非屏蔽中断。NMI 是一种外部中断,不能用IMR和中断方式位对其屏蔽。RS: 复位信号。RS 有效时,DSP结束当前正在执行的操作,CPU和外设重新
22、初始化。当RS 有效,强迫程序计数器变成0FF80h,当RS 变为高电平时,处理器从程序存储器的0FF80h单元开始执行程序。RS 对各寄存器和状态位有影响。BIO: 控制分支转移的输入信号。当BIO 低电平有效时,有条件的执行分支转移。执行XC指令,是在流水线的译码阶段采样BIO ,执行其他条件指令时,是在流水线的读操作数阶段采样BIO 。REDAY: 数据准备好信号。REDAY高电平有效时,表明外部器件已经做好传送数据的准备。如果外部器件没有做好传送数据的准备(REDAY为低电平),处理器就等待一个周期,再检查REDAY信号。注意,如果软件编程2个以上等待状态,处理器才检测REDAY信号。
23、而且在软件等待状态完成之后,CPU才检测READY信号。BCLKR0BCLKR1: 接收时钟输入。BCLKR能够被设置为输入或输出。在缓冲串行口传送数据期间,这个信号必须存在。如果不用缓冲串行口,可以把BCLKR0和BCLKR1作为输入端,通过缓冲串行口控制寄存器(BSPC)的IN0位检查它们的状态。BDR0 BDR1: 串行数据接收输入端。串行数据由BDR0/BDR1端接收后,传送到缓冲串行口接收移位寄存器(BRSR)。BFSR0BFSR1: 用于接收输入的帧同步脉冲。BFSR能够被设置为输入或输出,复位后BFSR配置为输入信号。BFSR脉冲启动BDR的数据接收过程。BCLKX0BCLKX1
24、: 发送时钟。BCLKX作为McBSP发送器的串行移位时钟。BCLKX能够被设置为输入或输出,复位后被配置为输入信号。当EMU1/OFF为低电平时,BCLKX变成高阻状态。BDX0 BDX1: 缓冲串行口数据发送端。来自缓冲串行口发送移位寄存器(BXSR)的数据经BDX引脚串行传送出去。当不发送数据或EMU1/OFF 为低电平时,BDX变成高阻状态。BFSX0BFSX1:用于数据输入/输出的帧同步脉冲。BFSX初始化数据传输过程。BFSX能够被设置为输入或输出,复位后被配置为输入信号。当EMU1/OFF 为低电平时,BFSX变成高阻状态。2.2CCS开发环境和建立工程2.2.1 CCS简介C5
25、402的开发工具包括代码生成和代码调试工具两大类。代码生成工具是将源程序进行编译、汇编并成可执行程序。代码调试工具是对可执行程序进行调试,使其能够达到预计目标。CCS(Code Composer Studio)是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、软件仿真、硬件调试以与实时跟踪等功能于一体,能完成DSP系统开发过程的各个环节,极方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。CCS有两种工作模式,即:软件仿真器模式和硬件在线编程模式;前者可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现
26、和调试;后者可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。CCS运行时的主窗口如图2-2所示。 图2-22.2.2 CCS的组成CCS的开发系统主要由以下组件构成:TMS320VC54X集成代码产生工具;CCS集成开发环境;DSP/BIOS实时核插件与其应用程序接口API;实时数据交换的RTDX插件以与相应的程序接口API;由TI公司以外的第三方提供的各种应用模块插件。2.2.3 CCS的主要功能CCS的功能十分强大,它集成了代码的编辑、编译、和调试等诸多功能,而且支持C/C+和汇编的混合编程,其主要功能如下:具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编
27、、.cmd文件等;含有集成代码生成工具,包括汇编器、优化C编译器、器等,将代码的编辑、编译、和调试等诸多功能集成到一个软件环境中;高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;工程项目管理工具可对用户程序实行项目管理。在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理;基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试;断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置;探测点工具,可用于算法的仿真,数据的实时监视等;分析工具,包括模拟器和仿真器分析,可用
28、于模拟和监视硬件的功能、评价代码执行的时钟;数据的图形显示工具,可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新;提供GEL工具,利用GEL扩展语言,用户可以编写自己的控制面板/菜单,设置GEL菜单选项,方便直观地修改变量,配置参数等;支持多DSP的调试;支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换;提供DSP/BIOS工具,增强对代码的实时分析能力。2.3 ISD4004 介绍2.3.1 性能简述和引脚图ISD4004 系列工作电压 3V,单片录放时间 8 至 16 分钟,音质好,适用于移动与其他便携式电子产 品
29、中。芯片采用 CMOS 技术,含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪与高密 度多电平闪烁存贮列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口SPI送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存贮在片闪烁存贮器 中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩 造成的量化噪声和金属声。采样频率可4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下 降,片信息存于闪烁存贮器中,可在断电情况下保存 100 年(典型值),反复录音 10 万次图5 ISD4004引脚图 图2-3 I
30、SD4004管脚分布图2.3.2 引脚描述电源:(VCCA,VCCD) 为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的 不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。地线:(VSSA,VSSD) 芯片部的模拟和数字电路也使用不同的地线。同相模拟输入(ANA IN+) 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时, 信号由耦合电容输入,最大幅度为峰峰值 32mV,耦合电容和本端的 3K电阻输入阻抗决定了芯片频带的 低端截止频率。差分驱动时,信号最大幅度为峰峰值 16mV,为 ISD33000 系列一
31、样。反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为 峰峰值 16mV音频输出(AUD OUT) 提供音频输出,可驱动 5K的负载。片选(SS) 此端为低,即向该 ISD4004 芯片发送指令,两条指令之间为高电平。串行输入(MOSI) 此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。串行输出(MISO) ISD 的串行输出端。ISD 未选中时,本端呈高阻态。串行时钟(SCLK) ISD 的时钟输入端,由主控制器产生,用于同步 MOSI 和 MISO 的数据传输。数据在 SCLK上升沿锁存到 ISD,在
32、下降沿移出 ISD。中断(/INT) 本端为漏极开路输出。ISD 在任何操作(包括快进)中检测到 EOM 或 OVF 时,本端变低并保 持。中断状态在下一个 SPI 周期开始时清除。中断状态也可用 RINT 指令读取。OVF 标志-指示 ISD 的录、放操作已到达存储器的未尾。EOM 标志-只在放音中检测到部的 EOM 标志时,此状态位才置1。 行地址时钟(RAC) 漏极开路输出。每个 RAC 周期表示 ISD 存储器的操作进行了一行(ISD4004 系列中的 存贮器共 2400 行)。该信号 175ms 保持高电平,低电平为25ms。快进模式下,RAC 的 218.75s 是高电 平,31.
33、25s 为低电平。 图2-4 RAC周期外部时钟(XCLK) 本端部有下拉元件。芯片部的采样时钟在出厂前已调校,误差在 +1%。商业级 芯片在整个温度和电压围, 频率变化在+2.25%。工业级芯片在整个温度和电压围,频率变化 在-6/+4%,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于部 的防混淆与平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因部首 先进行了分频。在不外接地时钟时,此端必须接地。自动静噪(AMCAP) 当录音信号电平下降到部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有 助于养活无信号(静音)时的噪声。通常本
34、端对地接 1mF 的电容,构成部信号电平峰值检测电路的一部 分。检出的峰值电平与部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不 衰减,静音时衰减 6dB。1mF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接 VCCA 则禁止自动静噪。2.4 SPI(串行外设接口)2.4.1协议介绍ISD4004工作于SPI串行接口。SPI 协议是一个同步串行数据传输协议,协议假定微控制器的 SPI 移 位寄存器在 SCLK 的下降沿动作,因此对 ISD4004 而言,在时钟止升沿锁存 MOSI 引脚的数据,在下降沿将数据送至 MISO 引脚。协议的具体容为:所有串行数据传输开始
35、于 SS 下降沿。SS 在传输期间必须保持为低电平,在两条指令之间则保持为高电平。数据在时钟上升沿移入,在下降沿移出。SS 变低,输入指令和地址后,ISD 才能开始录放操作。指令格式是(8 位控制码)加(16 位地址码)。ISD 的任何操作(含快进)如果遇到 EOM 或 OVF,则产生一个中断,该中断状态在下一个 SPI 周期开始时被清除。使用读指令使中断状态位移出 ISD 的 MISO 引脚时,控制与地址数据也应同步从 MOSI 端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个 SPI 周期里,同时执行读状 态和开始新的操作(即新移入的数据与器件当前的操作可以不兼
36、容)。所有操作在运行位(RUN)置 1 时开始,置 0 时结束。所有指令都在 SS 端上升沿开始执行。2.4.2 信息管理在采用本模块的拟人机器人语言交互系统中,若干条语音按顺序分别被录入到芯片,并将其编程为1、2、3等。DSP可以通过SPI接口获得每次录音结束时的ISD部信息指针,据此构建一个信息地址表(MAT),并将此表存入Flash Memory中,作为以后录放、删除操作时信息管理的依据。ISD4004部存储器分为2400行,每行1600列。对器件寻址即选择一行,从行首开始录放,而每行中的列不可寻址。对于8kHz采样率的ISD4004,采样间隔为125s。器件地址分辨率可按如下计算:(1
37、/Fs)1600=200ms由于ISD4004部可寻址多达2400行,而每行固定存储200ms语音,为了可录放、删除任意长度的语音,有必要建立MAT。MAT跟踪每一条语音的开始地址以与每一个信息碎块的开始结束地址。ISD4004共2400行,实际只需要12位地址即可完成寻址。为节省MAT存储空间,将地址最高位bit15作为语音起始点标志。建立MAT的规则如下:MAT表项值全为0(0000 0000 0000 0000):表示对应行未存储任何语音;MAT表项值的bit15为1(1XXX XXXX XXXX XXXX),表示对应的是某句语音的起始行;MAT表项值的bit15为0,其余各位是有效地址
38、(0XXX XXXX XXXX XXXX),表示对应的行是某句语音的一行,但不是起始行;ISD的第一行总是某句语音的起始行。同一句语音的地址在MAT中总是连续存储的。由若干行组成的句语音,它的各行地址总是从小到大,但不一定两两相连。以行地址为表项的MAT,所要求的存储空间是较大的。本例中为2400行语句,则要求MAT具有2400个表项。为了减小MAT大小,也可对语音进行分块。若8以位为一个语音块,则MAT大小减小为300个表项。经过几次录音和删除手,建立的MAT如表1所示。表1 MAT实例MATbit15实际行地址句1000 0000 0000 000010000 0000 0000 0000
39、10000 0000 0000 000100000 0000 0000 00010000 0000 0000 000200000 0000 0000 00021000 0000 0000 000310000 0000 0000 000320000 0000 0000 000500000 0000 0000 00050000 0000 0000 000600000 0000 0000 00061000 0000 0000 000410000 0000 0000 000440000 0000 0000 000700000 0000 0000 00070000 0000 0000 000800000
40、 0000 0000 0008放音时,DSP从MAT表头开始搜索bit15为1的表项。要播放第几条语句,则寻找第几个bit15为1的表项。由于RAC的周期和器件的行一样,且其低脉冲时间长达25ms,在播放当前行语音的同时,RAC触发DSP的INT3中断。INT3中断服务程序验证下一行bit15是否为1,若不为1则将该行地址送入ISD,则输入的地址不会立刻生效,而是在缓冲器中等待当前结束;若为1则指示下一行为新语句开始地址,DSP不送任何指令。放音遇到EOM或者OVF时产生INT中断,停止放音。录音时,按K2键启动录音操作,DSP首先找出MAT中的个全0行,发录音指令;在录制当前行的同时,DSP
41、等待RAC信号触发INT3中断,中断服务程序继续寻找全0行、发带该行地址的录音指令,直到按STOP键触发INT0中断发录音停止命令为止。删除语音可通过将相应语音行全置零来完成。本文详细阐述了TMS320VC5402 DSP与ISD4004语音录放芯片的SPI接口设计、ISD4004的语音信息管理以与DSP与ISD4004之间的通讯与控制程序算法的设计。该模块作为拟人机器人语音互系统的语音应答模块,可以对机器人识别的命令语音进行相应的实时应答。2.4.3 ISD4004与DSP的SPI时序配合根据ISD4004的时序要求,DSP设置串口为SPI工作模式,发送数据先于串行时钟半个周期建立、数据在时
42、钟上升沿发送。ISD接收命令字的方式是先地址后命令,且位序从低到高;而DSP发送数据方式是先高位后低位,故在DSP发送程序中须将待送地址和命令进行高低位对调。串行时钟(SCLK)由DSP主时钟产生。在DSP运行于10MHz时,设置时钟分频因子为255,得到约40kHz的串行传输时钟,适应ISD4004相对慢速的要求。DSP串口SPI方式数据传输时序如图2-5所示。ISD4004的RAC管脚(行地址时钟)用于指示录放操作已经接近一行的末发展。RAC在行末前25ms变低,在到达行末时变高,DSP将它作为中断INT3的中断源,指示录放操作进行到何处;INT管脚在遇到EOM标志和OVF溢出时向DSP发
43、中断,DSP将它作中断INT2的中断源,用来指示是否到达一段信息的末尾。按下NUM键触发INT1中断开始录音,按下STOP键触发INT0中断终止录音。放音时按下NUM即开始,遇以语句EOM时自动停止放音。图2-5 DSP串口与SPI时序图2.4.4ISD4004语音芯片的部信息寻址机制ISD4004语音芯片具有能够准确控制语音录放地址的功能,这种功能使我们能够方便灵活地对语音信 息进行处理以达到我们对语音信息的要求。例如,我们可以利用软件编程的方法实现对语音信息的剪辑、合成等操作来达到我们对语音信息特殊的要求。还有,我们可以通过程序控制做到语音的定时放音和循环 放音。若干条信息按顺序分别录入到
44、芯片,比如称其为a,b,c,d信息。我们需要知道每一时刻的录音信息在芯片存储器中所处的位置,这样有利于我们实时地监控ISD4004语音芯片工作的位置,从而能够知道所录的每段信息的开头和结尾的准确地址,便于我们对已录入的信息进行管理。下面以ISD4004-8MP为例来说明如何利用硬件结构寻址。ISD4004-8MP 置了特殊的信息寻址机制,即行地址时钟(以下简称RAC)。为了理解其工作原理,有必要先介绍器件的存储结构。ISD4004的存储器分为2400行。对器件寻址,就是选择一行,从行首开始录、放操作,而每行中的各列是不可寻址的。每一行的所有操作都从第一列开始。ISD4004-8MP 每一行周期
45、为200ms,这就是器件的地址分辨率。其中每行有175ms的高电平,25ms的低电平。每个录放周期都从这200ms的“语音存储块”的块首开始,还以ISD4004-8MP为例,RAC在行末前25ms变低,在恰好到达行末时变高,这就类似一个时钟,帮助你确定录放操作已到何处。这个时钟相对于微控制器的速度来说较慢,上例为200ms。因此,微控制器很容易通过软件查询RAC的方法来确定何时已到达行末。但由于微处理器的查询速度相对于RAC时钟频率要快得多,所以,如果通过查询的方法检测RAC 每个周期的低电平时,在上一次检测到RAC低电平时必须要经过一段延时才能再检测RAC,这样检测到的低电平才是有效的,这段
46、延时可以说是“假延时”。延时的时间必须大于RAC低电平的时间,而小于RAC的周期。我们可以利用一个计数器对RAC引脚进行计数,并且通过LED显示器实时地把计数器的值显示出来,这样我们不但可以知道录入的每段信息的开头和结尾的地址,而且还可以知道每段信息之中特定容的地址,从而可以建立地址表对信息进行剪辑、合成等处理达到对语音信息特定的要求。同样,在放音时我们也可以实现对语音信息的准确放音。只需把事先编辑好的语音信息的准确地址传送到ISD4004的控制口就可以实现指定地址的放音。如果需要的话,我们还可以对ISD4004的放音地址进行实时的监控,其方法与录音时类似第三章系统硬件设计3.1系统硬件总体框
47、图图 3-1 系统硬件接口框图3.2硬件电路图语音录放系统主要是通过DSP来控制语音芯片ISD4004来实现语音的录放的功能。在录音模式下,语音信号,即声波信号,通过麦克风,将其转换成电信号。但此时的电信号很微弱,需要经放大电路,放大语音信号。由于电路中可能存在高频分量,信号经过带通滤波器,以滤除语音频带以外的噪声。最后,ISD4004采样得到的语音信号相对“干净”。在语音播放的模式下,单片机向ISD4004发送播放的地址和语音播放指令后,便可以播放相应段的语音。为了使播放的语音依然“干净”,本系统依然设置了一个滤波电路。由于ISD4004不能驱动一块喇叭,需要在滤波电路添加一个功率放大电路,在本系统中,采用的是LM386语音驱动电路。如图3-2所示, 图 3-2 硬件电路图3.3各电路图分解3.3.1语音信号功率放大电路模块语音芯片ISD4004输出的电压只有毫伏级,难以驱动扬声器发声。本系统采用采用LM386功率放大器,以提高扬声器的驱动能力。有时喇叭放音会出现失真现象,这是可能是运放的增益过高所致,需要在1脚和8脚之间加一个10uF电容或串联一个10K电位器调整一下。本系统的功率放大电路图如图3-7所示。图中P2为10K的