




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DSP作业基于TMS320VC5509的语音系统系统简要介绍:语音信号的采集和播放是语音信号处理的基础,语音信号的采集和播放是语音信号处理的基础,DSP是各种语音信号处理的平台。 TMS320VC55xDSP是德州仪器(TI>C5000DSP系列里新的一代产品。 TMS320VC55xDSP系列主要特点是低功耗 ,非常适合在音频处理方面的应用。TLV320AIC23(以下简称 AIC23>0TI公司生产的一种高性能立体声音频编解码器 ,该器件的数字传输字长可以是 16、20、24、32bit,它支持8口96kHz的采样率。在数模转换器中的二阶多比特结<23构还可在采样率为 96kHz的情况下使信躁比达到 100dB,从而使得高质量的数字音频回放成为可能。该芯片在回放中的功率消耗<23mW。因此 ,对于可移动的数字音频播放和录音使用中的模拟输入输出等应用系统,AIC23无疑是十分理想的选择。综上所述,选择TMS320VC5509(以下简称 VC5509>作为系统的核心处理器和控制器 ,利用 AIC23采集语音信号,然后传送给VC5509。系统硬件设计:
下图是系统的硬件结构框图,系统主要包括VC5509和AIC23下图是系统的硬件结构框图,系统主要包括VC5509和AIC23两个模块。系统硬件结构框图利用VC5509的片上外设I2C(Inter-IntegratedCircuit,内部集成电路 >模块配置 AIC23的内部寄存器。通过VC5509的McBSP(MultichannelBufferedSerialPorts,多通道缓存串口>接收和发送采样的音频数据。控制通道只在配置 AIC23的内部寄存器时工作而当传输音频数据时则处于闲置状态。 AIC23通过麦克风输入或者立体声音频输入采集模拟信号 ,并把模拟信号转化为数字信号 ,存口到DSP的内部RAM中,以便DSP处理。当DSP完成对音频数据的处理以后,AIC23再把数字信号转化为模拟信号 ,这样就能够在立体声输出端或者耳机输出端听到声音。AIC23能够实现与 VC5509DSP的McBSP端口的无缝连接 ,使系统设计更加简单。接口的原理框图,如下图所示。
计更加简单。接口的原理框图,如下图所示。输入语音一输出语音T1.V320A1C23MODESD1NRCLKM1CIXLKCOUTDOL-TLHPOl输入语音一输出语音T1.V320A1C23MODESD1NRCLKM1CIXLKCOUTDOL-TLHPOlTlkcinCSSCLKSDACLKXICLKRITMS32OVC55R9DX1□KIFSX1FSU1AIC23与VC5509接口原理图系统中AIC23的主时钟12MHz直接由外部的晶振提供。 MODE接数字地,表示利用I2C控制接口对AIC23传输控制数据。CS接数字地,定义了I2C总线上AIC23的外设地址,通过将CS接到高电平或低电平,可以选择AIC23作为从设备在I2C总线上的地址。SCLK和SDIN是AIC23控制端口的移位时钟和数据输入口 ,分别与VC55090I2C模块端口SCL和SDA相连。收发时钟信号 CLKX1和CLKR1由AIC23的串行数据输入时钟 BCLK提供,并由AIC23的口同步信号LRCIN、LRCOUT启动串口数据传输。 DX1和DR1分别与AIC23的DIN和DOUT相连,从而完成VC5509与AIC23间的数字信号通信。系统软件设计语音信号在基于DSP语音信号在基于DSP的语音处理系统上处理过程的软件流程图如下:初始化时钟发生器,
A1C23,I2C模故及McB5P初始化语音缓冲区和工作变量等待MCBSP通道满送结束读取语音数据保存于左声道缓冲区计算F1R滤波输出滤波结果保存「右声道缓冲区原声音送左声道,
滤波结果送右声道,
输出到M(HSPO程序流程图要正确配置DSP的时钟发生器,产生DSP工作的正常时钟频率,这一个步骤的关键就是数字琐相环PLL的应用。 I2C模块是TMS320VC55xx新增的片内集成外设,通过 I2C对TLV320AIC23进行编程控制,可以使DSP与I2C兼容设备通过该接口进行数据通信。通过硬件和软件调试,最终成功采集到语音信号并播放出来可以在CCS软件中观察到采集到的语音信号的波形。改变程序中的延迟参数,可以明显改变混响效果。硬件电路设计总输入电路<自行总结设计)从左到右各部分电路为:话筒,开关,语音输入电路,UA741高增益放大电路,有源二阶带从左到右各部分电路为:话筒,开关,语音输入电路,UA741高增益放大电路,有源二阶带通滤波器。总输出电路<自行总结设计)从左到右各部分电路为:LM386高频功率放大器及其外围器件连接电路,语音输出电路,开关,扬声器。2.3语音输入与语音输出电路语音输入电路RHPOUT100CapPoll10011725VPhonejackStereoSWCapPollC8100u/25VLHPOUT>RHPOUT100CapPoll10011725VPhonejackStereoSWCapPollC8100u/25VLHPOUT>HOOK语音输出电路语音信号通道包括模拟输入和模拟输出两个部分。模拟信号的输入输出电路如图所示。上图中MICBIAS为提供的麦克风偏压,通常是 3/4AVDD,MICIN为麦克风输入,可以根据需要调整输入增益。下图中 LLINEOUT为口声道输出, RLINEOUT为口声道输出。用户可以根据电阻阻值调节增益的大小,使语音输入输出达到最佳效果。从而实现良好的模拟语音信号输入与模拟信号的输出。一.程序设计语音采集与回放:externvoidInitC5402(void>。externvoidOpenMcBSP(void>。externvoidCloseMcBSP(void>。externvoidREADAD50(void>。externvoidWRITEAD50(void>。/ *J>**J>* *A* *A* *J>**J>* *A* *A* *J>**J>* *J>**J>* *A* *A* *J>**J>* *A* *A* *J>**J>* *A* *A**A**A**A***MainFunctionProgram«A» «A» «A»«J>»*A**A**A**A**J>**J>*«A»«J>»*A**A**A**A**J>**J>*«A»*J>**J>*«A»«J>»*A**A**A**A**J>**J>*«A»«J>»*A**A**A**A**J>**J>*«A»«J>»*A**A**A**A**A**A*/#include"stdio.h"#include"math.h"#definepi3.1415926voidmain(void>{intk=0。intx_ad,y_da。int*px=(int*>0x3000。int*py=(int*>0x3100。//for(。。>{InitC5402(>。OpenMcBSP(>。for(。。>{//for(j=0。j<=4。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.includeMMRegs.h_InitC5402:NOPLD#0,DP口resetdata-pagepointerSTM#0,CLKMD。softwaresettingofDSPclockSTM#0,CLKMD。 (todividermodebeforesetting>TstStatu1:LDMCLKMD,AAND#01b,A。pollSTATUSbitBCTstStatu1,ANEQSTM#0xF7ff,CLKMD。setC5402DSPclockto10MHz*STM#0x4007,CLKMD。setC5402DSPclockto100MHz。(basedonDSKcrystalat20MHz>*******ConfigureC5402SystemRegisters*******STM#0x2000,SWWSR。2waitcycleforIOspace&。0waitcyclefordata&progspacesSTM#0x0000,BSCR。setwaitstatesforbankswitch:
。64kmembank,extra。64kmembank,extra0。consecutiveprog/data。STM#0x1800,ST0。。STM#0x2900,ST1。readST0atdefaultsettingST1atdefaultsetting(note:INTX=1>。STM#0x00A0,PMST。MCmode&OVLY=1,vectorsat0080h*******SetupTimerControlRegisters*******STM#0x0010,TCR。stopon-chiptimer0STM#0x0010,TCR1。stopon-chiptimer1。Timer0isusedasmainlooptimer。STM#2499,PRD。timer0rate=CPUCLK/1/(PRD+1>。=40M/2500=16KHzSTM#6249,PRD。ifCPUat100M/6250=16KHzSTMSPCR1,McBSP1_SPSA。STM#0000h,McBSP1_SPSD。。STMSPCR1,McBSP1_SPSA。STM#0000h,McBSP1_SPSD。。RINTgeneratedbyframesyncSTMSPCR2,McBSP1_SPSA。。XINTgeneratedbyframesyncSTM#0000h,McBSP1_SPSD。。torunafterSWbreakpointregistersubaddrofSPCR1McBSPIrecv=left-justifyregistersubaddrforSPCR2McBSP1Tx=FREE(clockstopsSTMRCR1,McBSP1_SPSA。registersubaddrofRCR1STM#0040h,McBSP1_SPSD。recvframe1Dlength=16bitsSTMRCR2,McBSP1_SPSA。registersubaddrofRCR2STM#0040h,McBSP1_SPSD。recvPhase=1。retframe2Dlength=16bitsSTMXCR1,McBSP1_SPSA。registersubaddrofXCR1STM#0040h,McBSP1_SPSD。setthesameasrecvSTMXCR2,McBSP1_SPSA。registersubaddrofXCR2STM#0040h,McBSP1_SPSD。setthesameasrecvSTMPCR,McBSP1_SPSA。registersubaddressofPCRSTM#000eh,McBSP1_SPSD。clkandframefromexternal(slave>。FSatpulse-mode(00>******FinishDSPInitialization*******STM#0x0000,IMR。disableperipheralinterruptsSTM#0xFFFF,IFR。cleartheintrupts’flagsRET。returntomainNOPNOP******WaitingforMcBSP0RXFinished*******IfRxRDY1:NOPSTMSPCR1,McBSP1_SPSA。enableMcBSP1RxLDMMcBSP1_SPSD,AAND#0002h,A。maskRRDYbitBCIfRxRDY1,AEQ。keepcheckingNOPNOPRET。returnNOPNOP*******WaitingforMcBSP0TXFinished*******IfTxRDY1:NOPSTMSPCR2,McBSP1_SPSA。enableMcBSP1TxLDMMcBSP1_SPSD,AAND#0002h,A。maskTRDYbitBCIfTxRDY1,AEQ。keepcheckingNOPNOPRET。returnNOPNOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&******************************************_OpenMcBSP:rsbxxfcallwaitNOPSTMSPCR1,McBSP1_SPSA。enableMcBSP0RXforADCdatainLDMMcBSP1_SPSD,AOR#0x0001,ASTLMA,McBSP1_SPSDSTMSPCR2,McBSP1_SPSA。enableMcBSP0TXforDTMFoutLDMMcBSP1_SPSD,AOR#0x0001,ASTLMA,McBSP1_SPSDLD#0h,DP。loaddatapage0rpt#23NOPssbxxfNOPNOP。 CALLIfTxRDY1。 STM#0x0101,McBSP1_DXR1。 CALLIfTxRDY1。 STM#0x0208,McBSP1_DXR1。。 rsbxxf。。NOP
。。NOPCALLIfTxRDY1STM#0x0001,McBSP1_DXR1。requestsecondarycommunicationNOPCALLIfTxRDY1STM#0100h,McBSP1_DXR1。write00htoregister1CALLIfTxRDY1STM#0000h,McBSP1_DXR1NOPNOPrpt#20hnopCALLIfTxRDY1STM#0x0001,McBSP1_DXR1。requestsecondarycommunicationCALLIfTxRDY1STM#0200h,McBSP1_DXR1。write00htoregister2CALLIfTxRDY1STM#0000h,McBSP1_DXR1CALLIfTxRDY1STM#0x0001,McBSP1_DXR1。requestsecondarycommunicationCALLIfTxRDY1STM#0300h,McBSP1_DXR1。write00htoregister3CALLIfTxRDY1STM#0000h,McBSP1_DXR1CALLIfTxRDY1STM#0x0001,McBSP1_DXR1。requestsecondarycommunicationCALLIfTxRDY1STM#0490h,McBSP1_DXR1。write00htoregister4。bypassinternalDPLLSample。andselecttheSampleFrequencyCALLIfTxRDY1STM#0000h,McBSP1_DXR1。 CALLIfTxRDY1。 STM#0x0001,McBSP1_DXR1。 CALLIfTxRDY1。STM#0102h,McBSP1_DXR1。enabledigitalloopback。 CALLIfTxRDY1。 STM#0x0001,McBSP1_DXR1。 CALLIfTxRDY1。 STM#0208h,McBSP1_DXR1。enableanalogloopbackRETNOPNOP&&&&&&&&&&&&&&&&&&&&&*********************_CloseMcBSP:STMSPCR1,McBSP1_SPSA。disableMcBSP0RXLDMMcBSP1_SPSD,AAND#0xFFFE,ASTLMA,McBSP1_SPSDSTMSPCR2,McBSP1_SPSA。disableMcBSP0TXLDMMcBSP1_SPSD,AAND#0xFFFE,ASTLMA,McBSP1_SPSDRPT#5RETNOPNOP_READAD50:stm 0x00ff,ar3stm 0x3000,ar2loopa:CALLIfRxRDY1ldm McBSP1_DRR1,bstl b,*ar2+。banzloopa,*ar3-nopnopretnopnop_WRITEAD50:stm 0x00ff,ar3stm 0x3100,ar2loopb:CALLIfTxRDY1ldu *ar2+,Band #0fffeh,b口masktheLSBstlm B,McBSP1_DXR1。banzloopb,*ar3-nopnopretnopnopwait:stm20h,ar3loop1:
stm020h,ar4stm020h,ar4loop2:banzloop2,*ar4-banzloop1,*ar3-retnopnopnopnop.endA/D模块:xternvoidInitC5402(void>。externvoidOpenMcBSP(void>。externvoidCloseMcBSP(void>。externvoidREADAD50(void>。/si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*si*/^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js^js**MainFunctionProgram*1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 7405:2025 EN Dentistry - Evaluation of biocompatibility of medical devices used in dentistry
- 花泥画团队管理制度
- 茶叶店卫生管理制度
- 陕西省食品管理制度
- 蜂蜜知识竞赛题库及答案
- 祁门县古溪学校2023年规范办学行为实施方案
- 自动化设备行业进入壁垒分析
- 2024-2025第二学期《形势与政策》论文范文第四讲
- 设备维护合同汇编(19篇)
- 财务会计授课计划
- 嘉华鲜花饼网络营销策略分析
- 创伤性湿肺的护理查房课件
- 大学《电工学》期末考试试卷及参考答案(共九套)
- 越秀地产施工工艺标准图册试行版
- 物业管理毕业论文
- DL/T 5196-2016 火力发电厂石灰石-石膏湿法烟气脱硫系统设计规程
- 合肥市商场市调报告调查分析总结
- QCT25-2023年汽车干摩擦式离合器总成技术条件
- 定向钻施工合同
- 小学一年级下学期数学无纸化测试题
- 2022-2023学年江苏省无锡市江阴市数学四下期末监测试题含解析
评论
0/150
提交评论