基于TMS320VC5402语音采集压缩存储与回放Word格式.doc
《基于TMS320VC5402语音采集压缩存储与回放Word格式.doc》由会员分享,可在线阅读,更多相关《基于TMS320VC5402语音采集压缩存储与回放Word格式.doc(26页珍藏版)》请在冰豆网上搜索。
这一方面极大地促进了数字信号处理技术的进一步发展;
另一方面,它也使数字信号处理的应用领域得到了极大的拓展。
在国外DSP芯片已经被广泛地应用于当今技术革命的各个领域;
在我国,DSP技术也正以极快的速度被应用到科技和国民经济的各个领域。
目前,在微电子技术发展的带动下,DSP芯片的发展日新月异,DSP的功能日益强大,性能价格比不断上升,开发手段不断改进。
DSP芯片已经完全走下了“贵族”的圣坛。
DSP芯片已经在通信与电子系统、信号处理系统、自动控制、雷达、军事、航空航天、医疗、家用电器、电力系统等许多领域中得到了广泛的应用,而且新的应用领域在不断地被发掘。
第2章硬件设计
2.1TMS320VC5402芯片的基本原理
TMS320VC5402数字信号处理器是TI公司为实现低功耗,高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适用于远程通信等实时嵌入式应用的需要。
广泛应用于电子测试、电子设计、模拟仿真、通信工程中。
TMS320VC5402具有的主要优点如下:
(1)围绕一组程序总线、三组数据总线和四组地址总线而建立的改进哈佛结构,提高了系统的多功能性和操作的灵活性。
(2)具有高度的并行性和专用硬件逻辑的CPU设计,提高了芯片的性能。
(3)具有完善的寻址方式和高度专业化指令系统,更适用于快速算法的实现和高级语言编程的优化。
(4)模块化结构设计,使派生器件得到了更快的发展。
(5)采用先进的IC制造工艺,降低了芯片的功耗,提高了芯片的性能。
(6)采用先进的静态设计技术,进一步降低了功耗,使芯片具有更强的应用能力。
TMS320VC5402主要有中央处理器CPU,特殊功能寄存器,数据存储器RAM,程序存储器ROM,I/O接口功能,串行口,主机通信接口HPI,定时器,中断系统等10部分组成。
各部分功能如下:
(1)中央处理器(CPU)
它是DSP芯片的核心,它有以下特点:
(a)采用多总线结构,通过一组程序总线、三组数据总线和四组地址总线来实现。
(b)40位算术逻辑运算单元ALU,包括一个40位的桶形移位寄存器和两个独立的40位累加器。
(c)17×
17位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法—累加运算。
(d)比较、选择、存储单元,可用于Viterbi译码器的加法-比较-选择运算。
(e)指数编码器,是一个支持单周期指令EXP的专用硬件。
可以在一个周期内计算40位累加器数值的指数。
(f)配有两个地址生成器,包括8个辅助寄存器和2个辅助寄存器运算单元。
(2)数据存储器RAM
TMS320VC5402有两种片内数据存储器:
(a)双寻址RAM:
在一个指令周期内,可对其进行两次存取操作,一次读出和一次写入;
(b)双寻址RAM:
在一个指令周期内,只能进行一次存取操作。
(3)程序存储器ROM
TMS320VC5402的程序存储器可由ROM和RAM配置而成,程序空间可以定义在ROM上,也可以定义在ROM上。
当需要高速运行程序时,可以将片外ROM中的程序调入到片内RAM中,以提高程序运行速度。
降低对外部ROM的要求,增强系统整体抗干扰性能。
(4)I/O口
TMS320VC5402芯片只有两个通用I/O引脚BIO和XF,BIO主要用来监测外部设备工作状态,而XF用来发信号给外部设备。
另外,芯片还配有主机接口HPI,同步串行口和64K字的I/O空间,HPI和串行口通过控制,用做通用I/O口使用。
而64K字I/O空间可通过外加缓冲器或锁存电路,配合外部I/O读写控制时序构成片外外设的控制电路。
(5)定时器
定时器是一个软件可编程计数器,用来产生定时中断。
定时器主要由定时寄存器TM,定时周期寄存器PRD,定时控制寄存器TCR及相应的逻辑控制电路组成。
其中寄存器TIM、PRD和TCR都是存储映象寄存器,它们在数据存储器中的地址分别为0024H、0025H和0026H。
TIM是一个减1寄存器。
PRD用来存放定时时间常数。
TCR中包含定时器的控制位和状态位。
(6)中断系统
TMS320VC5402的中断系统具有硬件中断和软件中断。
硬件中断:
由外围设备引起的中断分为片外外设所引起的中断和片内外设所引起的中断。
软件中断:
有程序指令INTR、TRAP和RESET所引起的中断。
中断管理优先级为11—16个固定级,有4种工作方式。
(7)主机接口HPI
HPI是一个与主机通信的并行接口,主要用于DSP与其他总线或CPU进行通信,信息可通过TMS320VC5402的片内存储器与主机进行数据交换。
不同型号的器件配置不同的HPI口,可分为8位标准HPI口、8位增强型HPI接口和16位增强型HPI接口。
(8)指令系统
支持单指令重复和块指令重复;
支持存储器块传送指令;
支持32位长操作数指令;
具有支持2操作数或3操作数的读指令;
具有能并行存储和并行加载的算术指令;
支持条件存储指令及中断快速返回指令。
(9)片外围电路
具有软件可编程等待状态发生器;
设有可编程分区转换逻辑电路;
带有内部震荡器或外部时钟源的片内锁相环发生器;
支持全双工操作的串行口,可进行8位或16位串行通信。
2.2语音采集与输出模块
语音采集与输出模块采用的是TI公司推出的一款高性能的立体声音频Codec芯片TLC320AD50C,内置耳机输出放大器,支持MIC和LINEIN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。
AD50的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术,可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
与此同时,AD50还具有很低的能耗,回放模式下功率仅为23mW,省电模式下更是小于15uW。
由于具有上述优点,使得AD50是一款非常理想的音频模拟I/O器件,可以很好的应用在随声听(如CD,MP3……)、录音机等数字音频领域[2]。
由TLC320AD50C组成的语音输入与输出模块不仅采样率高最高可达96K,且外围电路简单,性价比高。
采用DSP可以直接对PCM编码后的语音信号进行μ律和A律压缩。
图2.1是DSP硬件实现数据压缩解压的简单流程,DSP将传输来的压缩后的数据进行解压成16位或者32位,然后对解压后的数据进行分析、处理,最后将处理后的数据按照要求压缩成8位的数据格式输出到相应设备,供其他设备读取。
CPU
RSR
DXR
压缩
XSR
RBR
解压
RJUST
DRR
CPU
DR
DX
图2.1数据压缩解压流程
图2.2是DSP将数据解压的值,DSP将压缩的8位数据解压成16位的DSP通用数据格式,其中高13位为解压后的数据,低3位补0。
这是因为6.711的A律压缩只能对13位数据操作。
DSP将解压后的数据放在缓冲串口的发送寄存器中,只要运行发送指令,缓冲串口就会将数据发送出去。
缓冲串口对接收数据的解压过程和压缩过程完全相反。
图2.3是μ律数据解压的示意图。
DSP内部的缓冲串口(McBSPs)带有硬件实现的μ律/A律压缩解压,只需要在相应寄存器中进行设置就可以了。
在进行A律压缩时,采样后的12位数据,默认其最高位为符号位,压缩时要保持最高位即符号位不变,原数据的后11位要压缩成7位。
这7位码由3位段落码和4位段内码组成。
具体的压缩变换后的数据根据后11位数据大小决定。
除对串行口数据实现压扩处理外,这套硬件在McBSP不使用时还可以当作一个特殊的处理单元对内部数据实现压扩处理,他有两种实现方法。
法一:
当串行口的发送和接受部分都处于复位状态时,DRR1和DXR1内部通过压扩逻辑连接在一起,数据从DXR1写入并根据XCOMPAND处理,然后根据RCOMPAND再处理,在4个CPU时钟后从DRR1中读出数据。
该处理比软件实现快,不利之处在于处理完后没有同步信息通知CPU和DMA。
法二:
在数据环回模式下,McBSP也实现了一种内连。
数据处理与第一种方法相同,但它可以提供中断信号(或同步事件)给CPU(或DMA)。
这里数据处理的时间是根据串行口的比特律确定的。
另外,在通常情况下McBSP先传输信号的高位后传输低位,但是在字长为8比特的数据传输时,McBSP提供了比特倒序的功能,即可以先传输低位后传输高位。
在本实验中,我们通过软件编程来完成线性码转换成A律。
语音信号通常是小信号概率大,大信号出现的概率小,为提高小信号时的量化信躁比,压缩比特速率,可为非线性量化。
语音压缩是把16位的数据比特转化为8位数据比特,从而到达语音压缩的目的。
在主程序中通过A/D抽样量化,可以得到16位的线性编码,再由编码表通过软件计算得到8位A律编码,其中最高位为符号位,第6位到第4位为段落码,低4位为段内码。
将8位的压缩结果存储到系统RAM中进行缓存,根据抽样率、语音存储时间以及系统RAM的容量设置语音存储缓冲区的大小,待缓冲区存满后,将缓冲区内的数据进行解压缩,然后输出到SPEAKER接口输出端。
若使用A/D转换器,必须首先对A/D转换器进行初始化设置,即设置A/D转换器的工作模式、输入增益以及抽样频率等。
第3章软件设计
3.1设计流程
在对语音进行采集时,先要初始化DSP及其串口和A/D和D/A转换器,待所有的都进行初始化后,就可以进行语音的采集,其后续的步骤如下面的流程图3.1所示:
图3.1设计流程图
3.2创建工程文件及编写程序
利用CCS创建一个新工程,然后向该工程中添加源代码文件和库文件。
首先在CCS的安装目录e:
\ccs的文件夹e:
\ccs\myprojects\下建立一个新的文件夹,命名为1111。
并将所有的源代码全部拷贝到该新建的文件夹中。
然后双击桌面上图标,在出现的对话框中选择C5402simulator模式下,然后点击“确定”按钮即可进入“codecomposerstudio”界面。
从CCS的Project菜单下选择子菜单New。
将出现ProjectCreation对话框。
在对话框中“ProjectName”处输入1111,“Location”处输入”myproject\1111\”,在“Project”处选择Executable(.out)类型,在“Target”中选择CCS所配置的TMS320C54XX类型的DSP。
最后单击“完成”即可。
创建好的工程的参数如下图3.2所示:
图3.2工程创建的参数
通过上述步骤CodeComposerStudio就建立了一个工程文件,名为1111.pjt,该工程文件用于存储工程配置以及在工程中所用到的若干文件。
可在“工程项目观察窗口(Projectvi