基于TMS320VC5509芯片语音采集系统(共13页)

上传人:des****85 文档编号:227286475 上传时间:2021-12-20 格式:DOC 页数:13 大小:633KB
返回 下载 相关 举报
基于TMS320VC5509芯片语音采集系统(共13页)_第1页
第1页 / 共13页
基于TMS320VC5509芯片语音采集系统(共13页)_第2页
第2页 / 共13页
基于TMS320VC5509芯片语音采集系统(共13页)_第3页
第3页 / 共13页
基于TMS320VC5509芯片语音采集系统(共13页)_第4页
第4页 / 共13页
基于TMS320VC5509芯片语音采集系统(共13页)_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《基于TMS320VC5509芯片语音采集系统(共13页)》由会员分享,可在线阅读,更多相关《基于TMS320VC5509芯片语音采集系统(共13页)(13页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上DSP作业基于TMS320VC5509的语音处理系统姓系统简要介绍:语音信号的采集和播放是语音信号处理的基础, DSP 是各种语音信号处理的平台。TMS320VC55xDSP是德州仪器( TIC5000DSP系列里新的一代产品。TMS320VC55xDSP系列主要特点是低功耗, 非常适合在音频处理方面的应用。TLV320AIC23 (以下简称AIC23是TI公司生产的一种高性能立体声音频编解码器, 该器件的数字传输字长可以是16、20、24、32 bit, 它支持896 kHz的采样率。在数模转换器中的二阶多比特结构还可在采样率为96 kHz的情况下使信躁比达到100

2、dB, 从而使得高质量的数字音频回放成为可能。该芯片在回放中的功率消耗作为系统的核心处理器和控制器, 利用A IC23采集语音信号, 然后传送给VC5509。系统硬件设计:下图是系统的硬件结构框图, 系统主要包括VC5509和A IC23 两个模块。系统硬件结构框图利用VC5509 的片上外设I2C( Inter - Integrated Circuit, 内部集成电路模块配置AIC23 的内部寄存器。 通过VC5509 的McBSP (MultichannelBuffered Serial Ports, 多通道缓存串口接收和发送采样的音频数据。控制通道只在配置AIC23 的内部寄存器时工作,

3、 而当传输音频数据时则处于闲置状态。AIC23通过麦克风输入或者立体声音频输入采集模拟信号, 并把模拟信号转化为数字信号, 存储到DSP的内部RAM中,以便DSP处理。当DSP完成对音频数据的处理以后, AIC23再把数字信号转化为模拟信号, 这样就能够在立体声输出端或者耳机输出端听到声音。AIC23能够实现与VC5509 DSP的McBSP端口的无缝连接, 使系统设计更加简单。接口的原理框图, 如下图所示。AIC23与VC5509接口原理图系统中A IC23的主时钟12 MHz直接由外部的晶振提供。MODE接数字地, 表示利用I2 C控制接口对AIC23传输控制数据。CS接数字地, 定义了I

4、2 C总线上AIC23的外设地址, 通过将CS接到高电平或低电平, 可以选择A IC23作为从设备在I2 C总线上的地址。SCLK和SDIN是AIC23控制端口的移位时钟和数据输入端,分别与VC5509的I2C模块端口SCL和SDA相连。收发时钟信号CLKX1和CLKR1由A IC23的串行数据输入时钟BCLK提供, 并由A IC23的帧同步信号LRCIN、LRCOUT启动串口数据传输。DX1和DR1分别与A IC23 的D IN 和DOUT 相连, 从而完成VC5509与AIC23间的数字信号通信。系统软件设计语音信号在基于DSP的语音处理系统上处理过程的软件流程图如下:程序流程图要正确配置

5、DSP的时钟发生器, 产生DSP工作的正常时钟频率,这一个步骤的关键就是数字琐相环PLL 的应用。I2C模块是TMS320VC55xx新增的片内集成外设, 通过I2C对TLV320AIC23进行编程控制,可以使DSP与I2C兼容设备通过该接口进行数据通信。通过硬件和软件调试, 最终成功采集到语音信号并播放出来, 可以在CCS软件中观察到采集到的语音信号的波形。改变程序中的延迟参数, 可以明显改变混响效果。硬件电路设计2.1 总输入电路自行总结设计)从左到右各部分电路为:话筒,开关,语音输入电路,UA741高增益放大电路,有源二阶带通滤波器。2.2 总输出电路。extern void OpenM

6、cBSP(void。extern void CloseMcBSP(void。extern void READAD50(void。extern void WRITEAD50(void。/* Main Function Program*/ #include stdio.h #include math.h #define pi 3. void main(voidint k=0。int x_ad,y_da。int *px = (int*0x3000。int *py = (int*0x3100。/for ( 。 。 InitC5402(。OpenMcBSP(。 for ( 。 。 / for (j=0。

7、 j READAD50(。px = (int*(0x3000。x_ad = *px。 y_da = x_ad。 py = (int*(0x3100。 *py = y_da。WRITEAD50(。k+。 Asm文件:.global _InitC5402 .global _OpenMcBSP.global _CloseMcBSP .global _READAD50 .global _WRITEAD50.include MMRegs.h_InitC5402:NOPLD #0, DP 。 reset datapage pointerSTM #0, CLKMD 。 software setting of

8、 DSP clockSTM #0, CLKMD 。 (to divider mode before settingTstStatu1: LDM CLKMD, A AND #01b, A 。poll STATUS bit BC TstStatu1, ANEQSTM #0xF7ff, CLKMD 。 set C5402 DSP clock to 10MHz* STM #0x4007, CLKMD 。 set C5402 DSP clock to 100MHz。 (based on DSK crystal at 20MHz* Configure C5402 System Registers *STM

9、 #0x2000, SWWSR 。 2 wait cycle for IO space &。 0 wait cycle for data&prog spacesSTM #0x0000,BSCR 。 set wait states for bank switch:。 64k mem bank, extra 0 cycle between。 consecutive prog/data read。STM #0x1800,ST0 。 ST0 at default setting。STM #0x2900,ST1 。 ST1 at default setting(note:INTX=1。STM #0x00

10、A0,PMST 。 MC mode & OVLY=1, vectors at 0080h* Set up Timer Control Registers *STM #0x0010, TCR 。 stop onchip timer0STM #0x0010, TCR1 。 stop onchip timer1。 Timer0 is used as main loop timer。STM #2499, PRD 。 timer0 rate=CPUCLK/1/(PRD+1。 =40M/2500=16KHz* STM #6249, PRD 。 if CPU at 100M/6250=16KHz * Ini

11、tialize McBSP1 Registers *STM SPCR1, McBSP1_SPSA 。 register subaddr of SPCR1STM #0000h, McBSP1_SPSD 。 McBSP1 recv = leftjustify。 RINT generated by frame syncSTM SPCR2, McBSP1_SPSA 。 register subaddr for SPCR2。 XINT generated by frame syncSTM #0000h, McBSP1_SPSD 。 McBSP1 Tx = FREE(clock stops。 to run

12、 after SW breakpointSTM RCR1, McBSP1_SPSA 。 register subaddr of RCR1STM #0040h, McBSP1_SPSD 。 recv frame1 Dlength = 16 bitsSTM RCR2, McBSP1_SPSA 。 register subaddr of RCR2 STM #0040h, McBSP1_SPSD 。 recv Phase = 1。 ret frame2 Dlength = 16bitsSTM XCR1, McBSP1_SPSA 。 register subaddr of XCR1STM #0040h,

13、 McBSP1_SPSD 。 set the same as recvSTM XCR2, McBSP1_SPSA 。 register subaddr of XCR2STM #0040h, McBSP1_SPSD 。 set the same as recvSTM PCR, McBSP1_SPSA 。 register subaddress of PCRSTM #000eh, McBSP1_SPSD 。 clk and frame from external (slave。 FS at pulsemode(00* Finish DSP Initialization *STM #0x0000, IMR 。 d

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

当前位置:首页 > 办公文档 > 教学/培训

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