基于TMS320VC5509芯片语音采集系统_第1页
基于TMS320VC5509芯片语音采集系统_第2页
基于TMS320VC5509芯片语音采集系统_第3页
基于TMS320VC5509芯片语音采集系统_第4页
基于TMS320VC5509芯片语音采集系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

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

2、字音频回放成为可能。该芯片在回放中的功率消耗作为系统的核心处理器和控制器, 利用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接数字地, 定义了I2 C总线上AIC23的外

4、设地址, 通过将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的语音处理系统上处理过程的软件流程图如下:程序流程图要正确配置DSP的时钟发生器, 产生

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

6、ern 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。 j READAD50(。

7、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 DSP clockSTM

8、 #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 #0x2000, SWW

9、SR 。 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 #0x00A0,PMST 。 MC

10、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 * Initialize McBSP

11、1 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 after SW bre

12、akpointSTM 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, McBSP1_SPSD

13、。 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 。 disable

14、 peripheral interruptsSTM #0xFFFF, IFR 。 clear the intrupts flagsRET 。 return to mainNOPNOP * Waiting for McBSP0 RX Finished *IfRxRDY1:NOPSTM SPCR1, McBSP1_SPSA 。 enable McBSP1 RxLDM McBSP1_SPSD, AAND #0002h, A 。 mask RRDY bitBC IfRxRDY1, AEQ 。 keep checkingNOPNOPRET 。 returnNOPNOP* Waiting for McBS

15、P0 TX Finished *IfTxRDY1:NOPSTM SPCR2, McBSP1_SPSA 。 enable McBSP1 TxLDM McBSP1_SPSD, AAND #0002h, A 。 mask TRDY bitBC IfTxRDY1, AEQ 。 keep checking NOPNOPRET 。 returnNOPNOP*_OpenMcBSP:rsbx xfcall waitNOPSTM SPCR1, McBSP1_SPSA 。 enable McBSP0 RX for ADC data inLDM McBSP1_SPSD,AOR #0x0001, ASTLM A, M

16、cBSP1_SPSDSTM SPCR2, McBSP1_SPSA 。 enable McBSP0 TX for DTMF outLDM McBSP1_SPSD,AOR #0x0001, ASTLM A, McBSP1_SPSDLD #0h, DP 。 load data page 0rpt #23NOP ssbx xfNOPNOP。CALL IfTxRDY1。STM #0x0101, McBSP1_DXR1。CALL IfTxRDY1。STM #0x0208, McBSP1_DXR1。rsbxxf。 NOP。NOP CALL IfTxRDY1STM #0x0001, McBSP1_DXR1。r

17、equest secondary communicationNOPCALL IfTxRDY1 STM #0100h, McBSP1_DXR1。write 00h to register 1CALL IfTxRDY1STM #0000h, McBSP1_DXR1 NOPNOPrpt #20hnopCALL IfTxRDY1STM #0x0001, McBSP1_DXR1。request secondary communicationCALL IfTxRDY1 STM #0200h, McBSP1_DXR1。write 00h to register 2 CALL IfTxRDY1STM #000

18、0h, McBSP1_DXR1 CALL IfTxRDY1STM #0x0001, McBSP1_DXR1。request secondary communicationCALL IfTxRDY1 STM #0300h, McBSP1_DXR1。write 00h to register 3CALL IfTxRDY1STM #0000h, McBSP1_DXR1 CALL IfTxRDY1STM #0x0001, McBSP1_DXR1。request secondary communicationCALL IfTxRDY1 STM #0490h, McBSP1_DXR1。write 00h

19、to register 4。bypass internal DPLL。and select the Sample Frequency CALL IfTxRDY1STM #0000h, McBSP1_DXR1 。CALL IfTxRDY1。STM #0x0001, McBSP1_DXR1。CALL IfTxRDY1。STM #0102h, McBSP1_DXR1 。enable digital loopback 。CALL IfTxRDY1。STM #0x0001, McBSP1_DXR1。CALL IfTxRDY1。STM #0208h, McBSP1_DXR1 。enable analog

20、loopbackRETNOPNOP*_CloseMcBSP:STM SPCR1, McBSP1_SPSA 。 disable McBSP0 RXLDM McBSP1_SPSD,AAND #0xFFFE, ASTLM A, McBSP1_SPSDSTM SPCR2, McBSP1_SPSA 。 disable McBSP0 TXLDM McBSP1_SPSD,AAND #0xFFFE, ASTLM A, McBSP1_SPSDRPT #5RETNOPNOP_READAD50:stm0x00ff,ar3stm0x3000,ar2loopa:CALL IfRxRDY1ldm McBSP1_DRR1,bstl b,*ar2+。 banz loo

温馨提示

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

评论

0/150

提交评论