DSP课程设计.docx
- 文档编号:12659106
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:16
- 大小:125.70KB
DSP课程设计.docx
《DSP课程设计.docx》由会员分享,可在线阅读,更多相关《DSP课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
DSP课程设计
1TLV320AIC23语音系统的设计任务及目的
1.1TLV320AIC23语音系统的设计任务
课程设计是实践教学环节。
学生通过动手做软件和硬件设计,能够熟练掌握数字信号处理技术,增加对基础知识的消化和理解。
1.2TLV320AIC23语音系统的设计目的
(1)完成硬件设计;
(2)完成TLV320AIC23的初始化能进行语音信号的采集与播放。
1.3TLV320AIC23语音系统介绍
在当今的数字化时代背景下,DSP已成为通信、计算机、消费类电子产品等领域的基础器件,是集成电路中发展最快的电子产品,并成为电子产品更新换代的决定因素。
DSP芯片已经被广泛地应用于当今技术革命的各个领域,而且DSP技术也正以极快的速度被应用在通信、电子系统、信号处理系统等许多领域中。
基于TMS320C5509DSP芯片的语音分析器的设计系统的主要功能对语音信号进行采样滤波后FFT变换,然后观察其频谱分布。
通过该分析器可观察到语音信号频谱特征的观察,从而为语音的编解码,压缩,解压缩,语音编码,语音识别语音合成,语音增强等实时语音处理方法的实现及参数的选取提供依据。
本系统是一个数字信号处理系统,是电子技术、信号处理技术与计算技术相结合的产物,也是一个软硬件结合的系统。
2语音系统的技术方案及硬件电路设计
2.1语音系统的性能指标
1.计实现的语音系统具有如下主要性能:
(1)由于语音信号的频率范围为300Hz-3400Hz(人说话声音)或20Hz-20kHz(音乐,占音频信号全频率),根据采样定理,为保证信息不失真,确定系统的采样频率为8KHz或96kHz;
(2)结合系统采用的TMS320C5509芯片处理速度以及信号采样频率的要求,采用TLV320AIC23DSP芯片作为系统的A/D转换芯片;
(3)根据上述技术指标确定TMS320C5509系统的外围接口方式。
2.音系统具有如下优点:
(1)音频数据占用资源少
(2)音质通信级高
(3)开发难度低
(4)语音芯片与DSP接口电路简单
(5)体积小
2.2硬件设计方案
系统框图如图1所示,音源(如麦克风)发出的音频信号经音频处理器的A/D部分转换为数字信号后进人DSP,完成数据的采集工作,由系统的模式识别部分决定对采集的数据进行何种处理(如滤波等),处理后的信号再通过音频编解码器的D/A部分还原为模拟的声音信号送往扬声器输出。
图2.1系统框图
C5509具有以下的外设:
1个通用串行总线(USB)接口、2个多媒体卡控制器(MMC/SD)的标准接口、1个I2C总线接口、3个多通道缓冲串口(McBSP)、1个实时时钟(RTC)接口等。
这些特点使得设计出来的系统具有很高的扩展性,也使得C5509非常适合于MP3等音频处理的便携设备的开发。
3芯片的硬件结构
3.1TLV320AIC23的硬件结构
从适应语音信号频率、满足实时性、降低成本、简化设计的要求出发,本系统选择TLV320AIC23。
AIC23是一种高性能的立体声音频Codec芯片作为从设备,主要完成输入语音信号的A/D转换,语音采样编解码及滤波处理,该芯片构成简单,功能强大。
AIC23工作电压3.3伏特,能在数字和模拟电压下工作,与TMS320C5509的I/O电压相兼容,其控制接口和数字接口与DSP的MCBSP端口能够无缝连接。
AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术(Sigma-delta一般用于ADC中,是高精度的A/D转换器,该转换器的特点是将绝大多数的噪声从动态转移到阻态),可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
TLV320AIC23通过以下引脚与TMS320C5509连接。
BCLK:
I2S(一种AIC23的数字音频接口支持的通用的音频格式)串行数据传输时钟,当AIC23为主模式时BCLK由AIC23产生并提供给DSP,频率为主时钟的1/4,当从模式时由DSP产生;DIN:
I2S格式串行数据输入端,送入立体声DAC;DOUT:
I2S格式串行数据输出端,由立体声ADC产生;LRCIN/LRCOUT:
I2S格式数据输入/出帧同步信号;SCLK:
控制端口移位时钟;SDIN:
控制端口串行数据输入,用来传输配置AIC23内部寄存器数据;/CS:
控制端口输入和地址锁存选择端,在SPI控制模式下,作为数据锁存控制端,在I2C模式下,定义外设的7位地址;XTI/MCLK:
晶体或外部时钟输入端,AIC23内部时钟由它产生。
AIC23的工作时钟由外接的一个11.2896M的晶振提供,TLV320AIC23从电路模
块电路如图3-1所示。
图3.1TLV320AIC23从电路模块电路
3.2AIC23的控制接口
AIC23有两个数字接口,其一是由CS(控制信号)、SDIN(信号数据输入)、SCLK(信号时钟)和MODE(模式)构成的数字控制接口,通过它将芯片的控制字写入AIC23,从而控制AIC23功能;另一组是由LRCIN(左右声控制输入)、DIN(数据输入)、LROUT(左右声输出)、DOUT(数据输出)和BLCK(时钟)组成的数字音频接口,AIC23的数字音频信号从这个接口接收或发出。
AIC23内部还包含两个A/D、D/A变换器,其字长可以是16、20、24、32,同时AIC23内部的时钟可以通过XTI(晶振时钟输入)、XTO(时钟输出)和外接晶振构成时钟,也可以由外部直接输入时钟信号。
AIC23内部还包含有MIC偏置电路,使用外接MIC无需外置偏置电路。
3.3TMS320C5509的硬件结构
C5509有1条32位的程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位地址总线,这些总线分别与CPU相连。
总线通过存储单元接口(M)与外部程序总线和数据总线相连,实现CPU对外部存储器的访问。
这种并行的多总线结构,使CPU能在一个CPU周期内完成1次32位程序代码读、3次16位数据读和两次16位数据写。
C5509根据功能的不同将CPU分为4个单元,指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)、和数据计算单元(D)。
读程序地址总线(PDA)上传送24位的程序代码地址,由读程序总线(PB)将32位的程序代码送入指令缓冲单元进行译码[1]。
1.指令缓冲单元(I)
C5509的指令缓冲单元有指令缓冲队列IBQ和指令译码器组成。
在每个CPU周期内,I单元将从程序数据接收的4B程序代码放入指令缓冲队列,指令译码器从队列中取6B程序代码,根据指令的长度可对8位、16位、24位、32位和48位的变长指令进行译码,然后把译码数据送入P单元、A单元和D单元去执行。
2.程序流程单元(P)
程序流程单元有程序地址产生电路和寄存器组凑成。
程序流程单元产生所有程序空间的地址,并控制指令的读取顺序。
程序地址产生逻辑电路的任务是产生读取空间的24位地址。
一般情况下,它产生的是连续地址,如果指令要求读取非连续地址的程序代码时,程序地址产生逻辑电路能够接收来自I单元的立即数和来自D单元的寄存器值,并将产生的地址传送到PAB。
在P单元中使用的寄存器分为5种类型。
(1)程序流寄存器:
包括程序计数器、返回地址寄存器和控制流程关系寄存器;
(2)块重复寄存器:
包括块重复寄存器0和1(BRC0、BRC1)BRC1的保存寄存器(BRS1)、块重复起始地址寄存器0和1以及块重复结束地址寄存器0和1;
(3)单重复寄存器:
包括单重复寄存器和计算单重复寄存器;
(4)中断寄存器:
包括中断标志寄存器0和1、中断使能寄存器0和1以及调试中断使能寄存器0和1;
(5)状态奇存期:
包括状态寄存器0,1,2和3。
3.地址程序单元(A)
地址程序单元包括数据地址产生电路、算术逻辑电路和寄存器组构成。
数据地址产生电路能够接收来自I单元的立即数和来自A单元的寄存器产生读取数据空间的地址。
对于使用间接寻址模式的指令,有P单元向DAGEN说明采用的寻址模式。
A单元包括一个16位的算术逻辑单元,它既可以接收来自I单元的立即数也可以与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信。
A单元包括的寄存器有以下几种类型。
(1)数据页寄存器:
包括数据页寄存器和接口数据页寄存器;
(2)指针:
包括系数数据指针寄存器、堆栈针寄存器和8个辅助寄存器;
(3)循环缓冲寄存器:
包括循环缓冲大小寄存器、循环缓冲起始地址寄存器;
(4)临时寄存器:
包括临时寄存器;
4.数据计算单元(D)
数据计算单元由移位器、算数逻辑电路、乘法累加器和寄存器组构成。
D单元包含了CPU的主要运算部件。
D单元移位器能够接收来自I单元的立即数,能够与存储器、I/O单元、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信,此外,还可以向D单元的ALU和A单元的ALU提供移位后的数据。
移位可以完成以下操作:
(1)对40位的累加器可以完成向左最多32位的移位操作,移位数乐意从零食寄存器读取或由指令中的常数提供;
(2)对于16位寄存器、存储器或I/O空间数据可完成左移31位或32位的移位操作;
(3)对于16位立即数可完成向左移最多15位的移位操作;。
4TLV320AIC23语音系统设计的CCS实现
4.1.简述CCS环境
CCS,即CodeComposerStudio,是TI公司在1999年推出的一个开放、具有强大集成开发环境。
它最初是由GODSP公司为TI的C6000系列DSP开发的。
在TI收购了GODSP后,将CCS扩展到了其它系列。
现在所有TI的DSP都可以使用CCS进行开发,但是其中的DSPBIOS功能只有C5000和C6000的CCS中才提供。
以前的DSP软件开发都是在一个分散的开发环境下进行,程序的编写、代码的生成以及调试等都是要通过命令来完成,类似于以前的DOS,十分烦杂。
而CCS的出现是DSP开发软件的一次革命性的变化。
CCS主要由代码生成工具、CCS集成开发环境、DSPBIOS和API函数以及RTDX组成。
CCS主要特点是集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等。
集成代码生成工具,包括汇编器、优化的C编译器和连接器等。
具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在C源代码级进行调试。
支持多片DSP联合调试。
断点工具,支持硬件断点、数据空间读/写断点、条件断点等。
探针工具,用于进行算法仿真,数据监视等。
剖析工具,用于评估代码执行的时间。
数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可以自动刷新。
提供GEI工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。
DSP/BIOS(BasicInputOutputSystem)和API(ApplicationProgramInterface)函数为CCS的主要插件之一。
DSPBIOS可以看作是一个准实时操作系统,支持TIDSP芯片的各种实时操作系统都是以DSP/BIOS作为底层软件,为嵌入式应用提供基本的运行服务。
并且,它还能实时获取目标机的信息,并将其传递给主机上的BIOSCOPE工具,对应用程序进行实时分析RTDX(RealTimeDataExchange)插件是CCS中另一个十分重要的插件。
实时数据交换技术为CCS提供了一个实时、连续的可视环境,开发人员可以看到DSP应用程序工作的真实过程。
RTDX允许系统开发者在不停止运行目标应用程序的情况下在计算机和DSP芯片之间传输数据,同时还可以在主机上利用对象链接嵌入(OLE)技术分析和观察数据。
RTDX可以在DSPBIOS中使用,也可以脱离DSP/BIOS使用。
由于CCS中的Simulator不支持RTDX,所以必须在连接有硬件仿真器或目标板的Emulator下使用。
4.2CCS配置
击桌面图标的“setupCCStudiov3.1”图标,运行CCS设置程序,如图所示:
点击Add→Save&quit完成设置。
图4.1CCS的设置
用标准配置文件设置系统配置
5程序代码
.mmregs
.def_c_int00
.defmcbsp0_init
.defdata_w_r
.refsdram_init
.refi2c_init
.refi2c_disable
.refi2c_write
.refi2c_read
.refclkmd_init
.refaic23init
mcbsp0_pdp.set2800h/128
drr2.set0h
drr1.set1h
dxr2.set2h
dxr1.set3h
spcr2.set4h
spcr1.set5h
rcr2.set6h
rcr1.set7h
xcr2.set8h
xcr1.set9h
srgr2.set0ah
srgr1.set0bh
mcr2.set0ch
mcr1.set0dh
rcera.set0eh
rcerb.set0fh
xcera.set10h
xcerb.set11h
pcr.set12h
rcerc.set13h
rcerd.set14h
xcerc.set15h
xcerd.set16h
rcere.set17h
rcerf.set18h
xcere.set19h
xcerf.set1ah
rcerg.set1bh
rcerh.set1ch
xcerg.set1dh
xcerh.set1eh
spcr1_rrdy.set02h
length.set256
.bssdata_w_r,2
.bssleft,512
.bssright,512
STACK.usect".stack",200h
SYSSTACK.usect".sysstack",200h
.sect".vectors"
rsv:
;resetvector
B_c_int00
NOP
.align8
.text
_c_int00:
amov#0,xdp
amov#STACK+200h,xsp
amov#SYSSTACK+200h,xssp
;initinterrupt
bsetintm
mov#1,@ivpd
mov#1,@ivph
mov#00h,@ier0
mov#00h,@dbier0
mov#0,@ier1
mov#0ffffh,@ifr0
mov#0ffffh,@ifr1
callsdram_init
callclkmd_init
calli2c_init
callaic23init
callmcbsp0_init
mov#mcbsp0_pdp,pdp
wait_rx:
btst#spcr1_rrdy,port(@spcr1),tc1
bccwait_rx,!
tc1
movport(@drr2),ac1
movport(@drr1),ac0
movac0,port(@dxr1)
movac1,port(@dxr2)
amov#left+length-1,xar6
rpt#length-1
delay*ar6-
amov#left,xar6
movac1,*ar6
amov#right+length-1,xar7
rpt#length-1
delay*ar7-
amov#right,xar7
movac0,*ar7
bwait_rx
ends:
b$
mcbsp0_init:
;slavemode
amov#0,xdp
mov#mcbsp0_pdp,pdp
mov#0,port(@spcr1)
mov#0,port(@spcr2)
mov#0a0h,port(@xcr1)
mov#0h,port(@xcr2)
mov#0a0h,port(@rcr1)
mov#0h,port(@rcr2)
;Framesyncisactivehigh
mov#03h,port(@pcr)
mov#01h,port(@spcr1)
mov#01h,port(@spcr2)
ret
.end
(2)aic23初始化程序
.defaic23init
.refi2c_writ
.refdata_w_r
;bit15--bit9
aiv23_lt_line_ctl.set0x0
aic23_rt_line_ctl.set0x1
aic23_lt_hp_ctl.set0x2
aic23_rt_hp_ctl.set0x3
aic23_analog_audio_ctl.set0x4
aic23_digital_audio_ctl.set0x5
aic23_power_down_ctl.set0x6
aic23_digital_if_fformat.set0x7
aic23_sample_rate_ctl.set0x8
aic23_dig_if_activate.set0x9
aic23_reset_reg.set0x0f
;bit8--bit0
lt_ch_vol_ctrl.set0x0017
rt_ch_vol_ctrl.set0x0017
lt_ch_headph_ctl.set0x007f
rt_ch_headph_ctl.set0x007f
alog_au_path_ctrl.set0x0031
digi_au_path_ctrl.set0x0000
pow_mgt_ctrl_ctrl.set0x0000
digi_au_intf_ctrl.set0x0043
au_FS_TIM-ctrl.set0x0023
digi_intf1_ctrl.set0x0001
slave_aic23init:
;i2cwriteaic23register
;Resettheaic23
mov#aic23_reset_reg*512,ac0
add#0h,ac0
callaic23_write
;turnonallpower
mov#aic23_power_down*512,ac0
add#pow-mgt_ctrl_ctrl,ac0
callaic23_write
;DACenable,inselline,Microphonenormal
mov#aic23_analog_audio_ctl*512,ac0
add#alog_au_path_ctrl,ac0
callaic23_write
;setingDigitalAudioPathControl
mov#aic23_digital_audio_ctl*512,ac0
add#digi_au_path_ctrl,ac0
callaic23_write
;turnonvolumeforlineinputs
Mov#aic23_lt_line_ctl*512,ac0
add#lt_ch_vol_ctrl,ac0
callaic23_write
mov#aic23_rt_linr_ctr*512,ac0
add#rt_ch_vol_ctrl,ac0
callaic23_write
;configuretheaic23formasermode,16bitsamples,DSPmode
mov#aic23-digital_if_format*512,ac0
add#digi_au_intf_ctrl,ac0
callaic23_write
;44.1kHzstereo
mov#aic23_sample_rate_ctl*512,ac0
add#au_FS_TIM_ctrl,ac0
callaic23_write
;turnonhesdphonevolumeanddigitalinterface
mov#aic23_lt_hp_ctl*512,ac0
add#lt_ch_headph_ctrl,ac0
callaic23_write
mov#aic23_rt_hp_ctrl*512,ac0
add#rt_ch_headph_ctrl,ac0
callaic23_write
;turnondigitalinterface
mov#aic23_dig_if_activate*512,ac0
add#digi_intf1_ctrl,ac0
callaic23_write
ret
aic23_write
amov#data_w_r,xar1
movac0<<#-8,*ar1+
movac0,*ar1-
mov#2,ar0
mov#slave_aic23,ar2
calli2c_write
ret
.end
6运行结果
运行结果如下:
图6.1频谱分析
图6.2左声道及右声道波形
7课程设计总结
本系统充分利用了TMS320C5509的片上资源,使用了MCBSP多通道缓冲串口与音频芯片TLV320AIC23的硬件无缝连接,这既不占用系统的总线资源,而且还简化了硬件电路设计。
系统具有更好的维护性。
本系统实现了对语音信号的采集与回放等基本音频处理功能,完成了基于TMS320C5509DSP芯片的语音分析系统的设计。
本设计是采用TMS320VC5509作为语音分析实现的核心硬件,以TLV320AIC23作为数模转换芯片来实现整个硬件系统。
在整个设计过程中,我们采用了以带有A/D转换器的TLV320AIC23DSP芯片为核心音频录放接口器件,结合TMS320C5509DSP芯片,语音数据存储FLASH存储器等进行了硬件设计。
软件部分则采用模块化的设计方法,用汇编语言来实现。
由于这次设计时间较短,该语音分析器的基本功能已经实现,要达到实用,还需进一步进行研究设计。
8参考文献
[1]汪春梅,孙洪波.TMS320C55xDSP原理及应用.第二版.北京:
电子工业出版社2008
[2]姜阳,周锡青.DSP原理与应用实验.西安:
西安电子科技大学出版社,2008
[3]方华刚.DSP原理与应用.北京:
机械工业出版社,20069
[4]程佩青,数字信号处理教程第二版,清华大学出版社,2011
[5]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)