毕业设计(论文)基于TMS320VC5402的语音处理板的设计与实现.doc

上传人:laozhun 文档编号:4139999 上传时间:2023-04-07 格式:DOC 页数:32 大小:2.21MB
返回 下载 相关 举报
毕业设计(论文)基于TMS320VC5402的语音处理板的设计与实现.doc_第1页
第1页 / 共32页
毕业设计(论文)基于TMS320VC5402的语音处理板的设计与实现.doc_第2页
第2页 / 共32页
毕业设计(论文)基于TMS320VC5402的语音处理板的设计与实现.doc_第3页
第3页 / 共32页
毕业设计(论文)基于TMS320VC5402的语音处理板的设计与实现.doc_第4页
第4页 / 共32页
毕业设计(论文)基于TMS320VC5402的语音处理板的设计与实现.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)基于TMS320VC5402的语音处理板的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于TMS320VC5402的语音处理板的设计与实现.doc(32页珍藏版)》请在三一办公上搜索。

1、中南民族大学毕业论文(设计)学院:专业: 年级:题目:学生姓名: 学号:指导教师姓名: 职称:年 月 日中南民族大学本科毕业论文(设计)任 务 书论文名称:学院、专业: 学生姓名:指导教师: 下达时间:一、论文(设计)的背景与主要内容二、论文(设计)的任务和基本要求三、论文(设计)的进程安排四、教研室审核意见教研室主任 年 月 日五、学院意见 签 章 年 月 日注:此任务书一式两份,学生进行毕业论文(设计)前,指导教师应填好此任务书,经教研室主任签字后,正式给学生下达,完成后须装订在毕业论文(设计)封面和目录之间。中南民族大学本科毕业论文开题报告表论文题目 学生姓名 所学专业导师姓名报告日期中

2、南民族大学教务处制关于本科毕业论文开题报告的规定根据中南民族大学本科学生毕业论文(设计)工作条例的文件精神,为切实做好本科毕业论文的开题报告工作,保证论文质量,特作如下规定:一、开题报告是本科毕业论文的必经过程,所有本科生在写作毕业论文之前都必须作开题报告。二、开题报告主要检验学生对专业知识的驾驭能力和研究能力,考察写作论文的准备工作是否深入细致,包括选题是否恰当,资料占有是否翔实、全面,对国内外的研究状况是否了解,本人的研究是否具有创新性等。三、毕业论文开题报告前,学生必须根据所学专业培养目标,与教师双向选择后确定选题,根据任务书广泛查阅文献,深入调查,收集资料,制定研究方案,在此基础上撰写

3、开题报告。四、开题报告内容包括: 论文选题的理由和意义; 立论依据(国内外关于该题的研究现状及趋势)和主要参考文献目录; 研究计划,包括研究目标、内容、拟突破的难题或攻破的难关、实验方案或写作计划等。五、学生进行论文开题报告需向导师提出申请,申请获准后,方可进行。参加开题报告的教师,包括指导教师在内,不得少于3人。六、参加论文开题报告的教师应当对开题报告进行评议,主要评议论文选题是否恰当,研究设想是否合理、可行,研究内容与方法是否具有开拓性、创新性,是否可以开始进行论文写作等。评议结果分为“合格”和“不合格”两种,学生开题报告评议结果须为“合格”方可开始论文写作。评议结束后,由指导教师填写评语

4、。七、开题报告表须装订在毕业论文中(在任务书之后)。八、表中各项可自行加页。论文题目指导小组成员姓名专业技术职务或职称签字论文选题理由和意义立论依据和主要参考文献目录研 究 计 划指导小组评语和评议结果评议结果: 指导教师签名:年 月 日目 录0 引 言21 硬件系统设计211 语音采集与输出模块312语音处理DSP模块513 程序存储器、数据FALSH模块614数据存储器SRAM模块715 CPLD时序逻辑控制电路716 电源电路设计92 软件设计921存储器配置程序(MY.CMD)1022中断向量表程序(VECTOR.ASM)1023应用程序1224 语音芯片初始化程序AIC.C143 系

5、统调试184 总结18致谢19声明19参考文献19附录20基于TMS320VC5402的语音处理板的设计与实现 学生:石敏 所在学院:电子信息工程学院 指导教师:*摘 要: 本文讨论了以TMS320VC5402为核心的语音处理板的设计与实现,给出了详细的系统设计过程、电原理图及PCB版图,开发了相应的软件程序,包括系统初始化程序、BOOT LOADER 程序和时序电路CPLD程序。本文还对硬件和软件调试过程中遇到的问题和解决方法进行了详细的讨论。运行和程序测试结果表明:该实验板工作稳定,性能良好,可应用于语音信号编解码和处理算法的设计与开发。关键词: 语音处理板, TMS320VC5402,硬

6、件设计,软件设计Design and Its Implementation of TMS320VC5402 Based Speech Processing BoardStudent: Shi Min Instructor: *Abtract: In this paper, we discussed the design and instrumentation of speech processing platform based on TMS320VC5402. We first discuss in detail the circuit design procedure, circuit d

7、iagram scheme, and PCB scheme, and then discuss the corresponding software design, including the design of initialization program, boot loader program, CPLD program for timing circuit. Finally, we provide the detailed discuss of problems encountered in testing and their solutions. Test and operation

8、 results indicate that our designed platform works well and can be widely applied in algorithm development for speech encoding, decoding, and processing.Keywords: Speech processing board, TMS320VC5402, Hardware design, Software design11 语音采集与输出模块语音采集与输出模块采用的是TI公司推出的一款高性能的立体声音频Codec芯片TLV320A23,内置耳机输出

9、放大器,支持MIC和LINE IN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigmadelta过采样技术,可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。与此同时,AIC23还具有很低的能耗,回放模式下功率仅为23mW,省电模式下更是小于15uW。由于具有上述优点,使得AIC23是一款非常理想的音频模拟I/O器件,可以很好的应用在随声听(如CD,MP3)、录音机等数字音频领域2。由TLV

10、320A23组成的语音输入与输出模块不仅采样率高最高可达96K,而且外围电路简单,性价比高,其电原理图如图3 所示。图2 系统完整原理图图3 语音采集与输出电路在这个语音处理平台上,利用TMS320VC5402的McBsp1对AIC初始化,利用McBsp0与AIC进行语音信号传输。12语音处理DSP模块DSP处理器选用了目前最通用的TI公司的TMS320VC5402 16位处理器,该处理器采用1.8V、3.3V供电,处理速度快,功耗低,是一款理想的DSP处理器。其外围电路如下:(1) 振荡电路采用无源晶振,为了满足AIC芯片的需要,晶振选用18.432Mhz, 振荡电路原理图如图4所示。图4

11、振荡电路 (2)JTAG接口电路 图5 JTAG接口电路 (3)DSP原理图如图6所示。 图6 DSP电路13 程序存储器、数据FALSH模块该部分电路选用的芯片是SST39VF400,它是一个低功耗FLASH,工作在2.7V至3.6V电压下,存储容量位256KW,其中的数据可以保持100年以上,可重复编程次数高达10万次4。 其中,A17至A0为外部地址管脚,D15至D0为16条数据线,CE#为片选控制管脚(低有效),OE#为输出控制管脚(低有效),WE#为写入控制管脚(低有效)。其原理图如图7所示。图7 外部程序数据存储器FLASH电路14数据存储器SRAM模块为了扩大数据存储空间,该语音

12、处理平台上还扩展一片Cypress 公司的64K SRAM,其原理图如图8所示。15 CPLD时序逻辑控制电路由于外扩了FLASH与SRAM,DSP要对FLASH与SRAM进行正常读写的逻辑时序控制就由CPLD来实现,由于CPLD可在线编程,使得日后语音处理平台的逻辑的修改也非常方便,这比用传统的组合逻辑电路设计要灵活方便,CPLD也是目前的一种潮流,它的编程在MAX plus II环境下,既可以用原理图输入法进行描述也可以用VHDL语言进行描述,难度都不是很大,即使是初学者也不用害怕,最需要的是将DSP对FLASH与SRAM的读写时序分析清楚。实现DSP与FLASH、SRAM连接的组合逻辑电

13、路如图8所示。图8 外部数据存储器SRAM电路图9 实现DSP与FLASH、SRAM连接的组合逻辑电路CPLD JTAG接口电路如图10所示。 图10 CPLD JTAG接口电路 CPLD电路原理图如图11所示。图11 CPLD电路原理图16 电源电路设计一个稳定可靠的电源是一个系统的最有力支柱,因此我们选用了TI公司的TPS767D318电源方案,该方案电路简单且无须调试,电路图如图12所示。图12 电源电路2 软件设计系统软件设计包括DSP程序设计和CPLD程序设计,由于CPLD部分程序较简单且采用原理图输入法更为直观,这部分就采用硬件部分所讲到的原理图输入法,那么系统软件设计的重点为DS

14、P程序。一个完整的DSP程序设计应包括用户程序、存储器配置程序和中断向量表程序,这个部分通过一个在该DEMO板调试通过的完整程序来给予说明:这个程序实现结果是:通过计算机声卡将语音信号送到DEMO板语音信号输入端,采用播放器播放一首歌曲,将耳机接到DEMO板的语音信号输入端,经语音处理后输出十分清晰的歌声。具体程序如下:21存储器配置程序(MY.CMD)通过这个程序,对系统所用的寄存器进行分配并指定程序所用到的段。-mvoice.map MEMORY PAGE 0:RESEVE: org = 0x0000 len = 0x80 PAGE 0:PROG1: org = 0x0100 len =

15、0x1200PAGE 0: VECT: org = 0x0080 len = 0x0080PAGE 1:RESEVE1: org = 00h len = 0x1300 PAGE 1:DARAM2: org = 0x1300 len = 0x0500PAGE 1: DARAM1: org = 0x1800 len = 0x2b00 SECTIONS .text : PROG1 PAGE 0 .cinit : PROG1 PAGE 0 .switch: PROG1 PAGE 0 .vectors: VECT PAGE 0 .const: DARAM1 PAGE 1 .bss : DARAM1 PA

16、GE 1 .stack : DARAM2 PAGE 1 .system: DARAM2 PAGE 1 .data : DARAM2 PAGE 1 22中断向量表程序(VECTOR.ASM)通过这个程序,指定C程序的入口地址以及中断服务程序的跳转入口。DRR11A.set 0x41DXR11A.set 0x43 .ref _codec_ch0_in .ref _c_int00.sect .vectorsrs: BD _c_int00nopnopnmi: rete ;NMI, SINT16 nopNOPNOPsint17: BD _c_int00 ;SINT17NOPNOPsint18: BD _

17、c_int00 ;SINT18NOPNOPsint19: BD _c_int00 ;SINT19NOPNOPsint20: BD _c_int00 ;SINT20NOPNOPsint21: BD _c_int00 ;SINT21NOPNOPsint22: BD _c_int00 ;SINT22NOPNOPsint23: BD sint23 ;SINT23NOPNOPsint24: BD sint24 ;SINT24NOPNOPsint25: BD sint25 ;SINT25NOPNOPsint26: BD sint26 ;SINT26NOPNOPsint27: BD sint27 ;SINT

18、27NOPNOPsint28: BD sint28 ;SINT28NOPNOPsint29: BD sint29 ;SINT29NOPNOPsint30: BD sint30 ;SINT30NOPNOPint0: BD int0 ;INT0, SINT0NOPNOPint1: BD int1 ;INT1, SINT1NOPNOPint2: BD int2 ;INT2, SINT2NOPNOPtint0: rete;TINT0, SINT3NOPNOP NOPbrint0: BD _codec_ch0_in ;BRINT0, SINT4NOPNOPbxint0: BD bxint0 ;BXINT

19、0, SINT5NOPNOPdmac0: BD dmac0 ;DMAC0, brint2, SINT6NOPNOPdmac1: BD _c_int00 ;DMAC1, bxint2, SINT7 ?NOPNOPint3: BD int3 ;INT3, SINT8NOPNOPhpint: BD _c_int00 ;HPINT, SINT9NOPNOPbrint1: BD brint1 ;BRINT1 or DMAC2, SINT10NOPNOP;bxint1: BD mcbsp1 ;BXINT1 or DMAC3, SINT11bxint1: BD _c_int00 ;BXINT1 or DMA

20、C3, SINT11NOPNOPdmac4: BD dmac4 ;DMAC4, SINT12NOPNOPdmac5: BD dmac5 ;DMAC5, SINT13NOPNOPrsvd1: BD rsvd1 ;reservedNOPNOPrsvd2: BD rsvd2 ;reservedNOPNOP.end 23应用程序这部分程序包括:2个头文件(common.h与cpu_reg.h);3个子程序(AIC.C,COMMON.C,MAIN.C);common.h 是对程序中要调用函数的声明;cpu_reg.h 是对程序中要用到的寄存器以及要初始化的值进行声明;AIC.C 是对TLV320AIC2

21、3芯片进行初始化并对DSP的McBsp0初始化并开始采集语音信号并输出 MAIN.C 是对DSP CPU寄存器进行初始化并对整个系统程序的运行进行管理 头文件common.h void delay(int k);void McBsp0_init();void AIC_init();头文件cpu_reg.h #define int0_VAL 10#define tint_VAL 13#define rint_VAL 14#define xint_VAL 15#define SPCR10_VAL 0x0000#define SPCR20_VAL 0x0200/2 words per frame#d

22、efine RCR10_VAL 0x0040#define RCR20_VAL 0x04/2 words per frame#define XCR10_VAL 0x0040#define XCR20_VAL 0x04#define PCR0_VAL 0x0C/CLKG=16.9344*6M/48=2.1168M,帧脉冲宽度=24#define SRGR1_VAL2 (238)+47#define SRGR1_VAL1 (238)+47/帧长度=48、CLK由CPU的时钟驱动、由FSG驱动#define SRGR2_VAL1 0x3000+47/发送帧同步、时钟由内部产生(11 9位=1)/接收

23、帧同步、时钟由外部产生(10 8位=0)/帧同步高有效,(2 3位=0), 下降沿有效(2 3位=1)/时钟上升沿有效(最后2位=0),下降沿有效(最后2位=1)/引脚配置成串口,#define PCR_VAL1 0x0a03/DX is on(7=True) /RINT by RRDY#define SPCR1_VAL1 0x0080/ 一帧2个字,每字24bit#define XCR1_VAL1 0x0180/ 单相帧、无压缩、0-bit延迟#define XCR2_VAL1 0x0004/ 一帧2个字,每字24bit#define RCR1_VAL1 0x0180/ 单相帧、无压缩、0-

24、bit延迟#define RCR2_VAL1 0x0004/McBSP Memory Mapped Registers#define CLKMD (unsigned int *)0x58#define SWCR (unsigned int *)0x2b#define IMR (unsigned int *)0x00#define SPSA0 (unsigned int *)0x38#define SPSD0 (unsigned int *)0x39#define DRR20 (unsigned int *)0x20#define DRR10 (unsigned int *)0x21#defin

25、e DXR20 (unsigned int *)0x22#define DXR10 (unsigned int *)0x23#define SPSA1 (unsigned int *)0x48#define SPSD1 (unsigned int *)0x49#define DRR21 (unsigned int *)0x40#define DRR11 (unsigned int *)0x41#define DXR21 (unsigned int *)0x42#define DXR11 (unsigned int *)0x43/ McBSP Subaddresed Registers#defi

26、ne SPCR1 0x00#define SPCR2 0x01#define RCR1 0x02#define RCR2 0x03#define XCR1 0x04#define XCR2 0x05#define SRGR1 0x06#define SRGR2 0x07#define PCR 0x0E /*TLV320AIC23 的初始化字*/#define L_LINE_VOLUME 0x00#define R_LINE_VOLUME 0x01#define L_HEADPHONE_VOLUME 0x02#define R_HEADPHONE_VOLUME 0x03#define A_AUD

27、IO_PATH 0x04#define D_AUDIO_PATH 0x05 #define POWER_CON 0x06#define D_AUDIO_INTERFACE 0x07#define SAMPLE_RATE 0x08#define D_INTERFACE_ACT 0x09#define RESET 0x0f24 语音芯片初始化程序AIC.C该程序完成对TLV320AIC23以及McBsp0的初始化,使系统开始接收语音信号,然后输出。#include cpu_reg.h#include common.hint ADbuf2000;extern int DA_wptr,DA_rptr,

28、y;extern int play_mode;void write_subreg0(unsigned int addr,unsigned int val);unsigned int read_subreg0(unsigned int addr);unsigned int read_subreg0(unsigned int addr) *(SPSA0)=addr; return(*SPSD0); void write_subreg0(unsigned int addr,unsigned int val) *(SPSA0)=addr; *(SPSD0)=val; void write_subreg

29、1(unsigned int addr,unsigned int val) *(SPSA1)=addr; *(SPSD1)=val; void McBsp0_init() write_subreg0(SPCR1,0); write_subreg0(SPCR2,0); write_subreg0(SPCR1,SPCR10_VAL); write_subreg0(SPCR2,SPCR20_VAL); write_subreg0(PCR,PCR0_VAL); write_subreg0(RCR1,RCR10_VAL); write_subreg0(RCR2,RCR20_VAL); write_sub

30、reg0(XCR1,XCR10_VAL); write_subreg0(XCR2,XCR20_VAL); delay(10); *(DXR10)=0; /*now enable McBSP transmit and receive*/ write_subreg0(SPCR1,SPCR10_VAL|1); write_subreg0(SPCR2,SPCR20_VAL|1); delay(10); *(IMR)|=0x0010; /开接收0中断 void CS(unsigned char x) *(SPSA1)=PCR; if(x) *(SPSD1)=*(SPSD1)|0x0008; else *

31、(SPSD1)=*(SPSD1)&0xfff7; void SDIN(unsigned char x) *(SPSA1)=PCR; if(x) *(SPSD1)=*(SPSD1)|0x0020; else *(SPSD1)=*(SPSD1)&0xffdf; void SCLK(unsigned char x) *(SPSA1)=PCR; if(x) *(SPSD1)=*(SPSD1)|0x0002; else *(SPSD1)=*(SPSD1)&0xfffd; write_AIC23(unsigned char addr,unsigned int dat) unsigned char i; d

32、at|=addr9; CS(0); for(i=0;i16;i+) SCLK(0); if(dat=2000) DA_rptr=0; ADbufDA_rptr=temp; /保存录音数据 if(play_mode=0) *DXR10=y; /警报声的幅值 else *DXR10=temp; /放音延迟程序COMMON.C#include common.hvoid delay(int k)while(k-);主程序MAIN.C#include cpu_reg.h#include common.h#include string.hint ms;int DA_wptr,DA_rptr,y;int p

33、lay_mode;void main() unsigned int temp,i; asm( STM #0000h,CLKMD ); while(*CLKMD & 0x01 ); / asm( STM #50c7h,CLKMD ); asm( STM #F007h,CLKMD ); /*15 PLL*/ asm( stm #4240h, SWWSR ); /2 wait except for on-chip program 1 asm( stm #00a0h, PMST ); /MP/MC = 0, IPTR = 001,ovly=1 asm( stm #0802h, BSCR ); asm(

34、 STM #0h,IMR ); DA_wptr=0; DA_rptr=0; AIC_init(); delay(20000); McBsp0_init(); /串口初始化 delay(20000); asm( RSBX INTM ); /*开中断*/ play_mode=0; /发警报声 for(temp=30000;temp0;temp-=100) for(i=0;i2;i+) y=30000; delay(temp); y=-30000; delay(temp); play_mode=1; /发话筒音 while(1); 3 系统调试焊接完电路板后,首先用万用表检测有无短路或虚焊现象,检测

35、结果无误后,可通电对系统进行调试。第一步:检测TPS767D318的2路电压输出是否正常,若不正常,那电路就可能存在问题。 第二步:首先检测DSP是否工作正常,最有效方便的是编写一个DSP的XF脚输出方波的测试程序,其实有心的人会在XF脚接一个发光二极管以作检测更是方便;第三步:以上所述均是硬件方面应注意的,充分做好上述工作是为后续的软件调试提供一个可靠的平台;第四步:语音处理应用程序测试:应用本组其它同学开发的语音处理程序进行测试,运行和程序测试结果表明:该实验板工作稳定,性能良好。第五步:程序优化,DSP处理程序优化是DSP系统的重要组成部分,包括:指令,资源优化等。4 总结通过这个课题,成功实现了5402 DEMO板的设计与制作。通过整个系统的软硬件联调,实现了对语音的采集、处理与回放等基本音频处理功能,通过在 上的实

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号