数控音频放大器 毕业论文 好.doc_第1页
数控音频放大器 毕业论文 好.doc_第2页
数控音频放大器 毕业论文 好.doc_第3页
数控音频放大器 毕业论文 好.doc_第4页
数控音频放大器 毕业论文 好.doc_第5页
免费预览已结束,剩余101页可下载查看

下载本文档

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

文档简介

毕业论文数控音频功率放大器 数控功率放大器摘要常见的音频处理设备,比如家庭影院常用的功率放大器(以下简称功放),一般都具有前期音频处理和功率放大两部分组成。带数字图形均衡器的功率放大器(本文统称为数控功率放大器)具有操作简便、均衡效果好和实现音效多的优点。本设计在Simulink仿真的基础上,以C语言和汇编语言混合编程的方式,设计实现了基于DSP/BIOS的图形均衡器程序,并在TITMS320VC5416DSK上调试。且利用先进的模拟电路技术设计了功率放大器,实现了完整的功放功能。此外,利用VisualBasic语言设计了主机程序,实现了主机与目标板的交互功能。本文首先介绍了图形均衡器发展及其用,然后在Matlab/Simulink中进行了图形均衡器的定点仿真,并对结果进行分析。在对CCSDSP/BIOS配置进行了详细说明之后,编程设计实现了基于DSP/BIOS的图形均衡器程序。该程序是一个单任务多线程的程序,不仅完成了10段图形均衡器的任务,而且可以通过RTDX与主机进行实时数据通信,并在软件上增加了电源管理的功能,弥补54系列DSP中DSP/BIOS没有电源管理模块的不足。最后,作为本系统的模拟终端部分设计了高保真模拟功率放大器电路。本设计完成了任务要求,达到了预期效果,并对图形均衡器程序的实际效果进行了主观的评价和客观的测试及分析。关键词:均衡处理 功率放大 DSP/BIOS AbstractGraphical equalizer is a kind of common audio processing device with merits of user-friendly operation, good equalization effect and multiple selective effects. The graphical equalization technology is also widely used in many applications, such as audio frequency processing, digital media player, etc. In this project, algorithm simulation using MATLAB/simulink is first performed. Then, a mixed programming approach of C language and the assembly language is used to realize graphical equalizer procedure, which is based on the DSP/BIOS. Finally, the procedure is run and debugged on TI TMS320VC5416 DSK. In addition, a host program was designed with Visual Basic, which realized the interactivity between the host and the DSK. In this paper, a brief introduction of the development and the application of graphical equalizer is given; Then,fixed-point simulations in Matlab/Simulink are carried on for the design of graphical equalizer with the results analyzed. After DSP/BIOS configuration in CCS, a DSP/BIOS- based program is designed and realized, which is of single task and multiple threads. Not only the task of graphical equalizer is completed, but the real-time data exchange (between the host and the target through RTDX) and power management function (which is not support by the TMS320C54xx family DSP DSP/BIOS) are realized as well. The outcomes of this work meet project requirements and the anticipation. And subjective evaluation and objective measurement of the graphical equalizer are also carried on. Keywords: Graphical Equalizer,energy amplification DSP/BIOS,-106-目录摘要IIAbstractIII目录4第一章 前 言61.1音频均衡技术概述71.2音频均衡器的分类71.3高保真功率放大器概述91.4图形均衡器的应用和发展91.5设计目标与方案10第二章 10段图形均衡器设计与仿真112.1 10段图形均衡器的技术指标112.2 10段图形均衡器的设计132.2.1数字滤波器设计概述132.2.2 FIR带通滤波器设计152.2.3IIR带通滤波器设计152.2.4二阶IIR带通滤波器设计162.3 10段图形均衡器的Simulink仿真192.3.1 Simulink模型的构建192.3.2定点仿真与溢出控制策略222.3.3算法性能评价25第三章10段图形均衡器DSP设计与实现253.1硬件平台263.3.1系统结构和信号通路26263.3.2核心芯片及其硬件配置303.3.3硬件性能指标323.2软件开发工具343.2.1CCSIDE简介343.3.2CCSDSP/BIOS343.3DSP程序设计和实现363.3.1设计流程363.3.2程序框架设计383.3.3基于DSP/BIOS的软硬件配置393.3.4算法程序设计463.3.5调试策略503.4基于RTDX的主机监控GUI设计533.4.1.RTDX目标机程序设计533.4.2RTDX主机程序设计543.5系统性能分析593.5.1主观性能分析593.5.2客观性能分析59第四章 高保真功率放大器614.1 电路原理图614.2 原理说明614.3 电路调试624.31 测试图片(5mV输入时)63第五章 总结65致 谢65参考文献66附录A 程序清单68附录B 功放电路图991 前 言本章的内容是对数字音频技术、图形均衡器和模拟功率放大器进行简单介绍,并对本设计的方案作以概述。1.1音频均衡技术概述 “均衡器”或称“等化器”(Equalizer,EQ)是对信号电平进行提升或衰减,以达到对一定频率响应特性补偿的设备总称。为了与各种类型的音乐匹配,诠释不同音乐风格,音响器材一般都内置有多种音乐频率均衡效果,即预先固化多种风格的音乐的频率响应曲线。音频系统利用均衡技术已有50多年的历史了,从早期的晶体管模拟器件到当今的数字多频段图示及参数系统,均衡器一直被用来修饰和增强音质,同时他也为当今应用广泛的复杂自动音频处理系统奠定了基础。它的作用就是调整各频段信号的增益值。普通百姓最初接触均衡器实在80年代的高级录放机上,当年的高档录放机都带有N段均衡器。这个均衡器是基于模拟信号的,后来随着数字信号处理技术的提高逐渐发展出了数字均衡器。对于大部分用户,他们接触的最多的数字均衡器来自音频播放软件。均衡器通过将声音中各频率的组成泛音等级加以修改,转为某一类音乐进行优化,增强人们的感觉。常见模式如:正常、摇滚、流行、舞曲、古典、柔和、爵士、金属、重低音。也可根据个人喜好自定义调节,所以均衡器可以满足不同的个人听音喜好。1.2音频均衡器的分类均衡器在音效处理领域有着很广泛的应用,因此其有着很多种分类。均衡器分为低通滤波器、高通滤波器、单频滤波器、多频滤波器、参数均衡器和图形均衡器等。其中图形均衡器是使用较多的一种均衡器,分为3段至30段不等,一般采用直滑式电位器用作提升或衰减控制器,由于能从设备面板上直观地看出均衡的频响曲线而叫做图形均衡器。斜坡均衡器,在专业应用中,常常需要提升或切除某个所选频率以上或以下的所有频率。实现这个功能的滤波器称为斜坡滤波器。参数滤波器,这是最灵活的均衡器,它能提供对基本滤波器单元的所有参数的独立控制。图形均衡器,又称为图示均衡器,广泛应用于数字音频领域。之所以这样命名是因为该均衡器包含以倍频程或分数倍频程为中心频率的一组滤波器,而这些滤波器在前面板上的增益控制滑动触头排成的位置正好组成与均衡器频率相应相对应的图形。这一排现行滑动触头给用户带来更多的方便,使用户能迅速了解每个频段的增益情况。通常图形均衡器有效的频率分辨率从一倍频程(覆盖音频范围的910个滑动触头)到三分之一倍频程(2731个滑动触头)。在音响器材中,均衡器是一种可以分别调节各种频率成分电信号放大量的电子设备,通过对各种不同频率的电信号的调节来补偿扬声器和声场的缺陷,补偿和修饰各种声源及其它特殊作用,一般调音台上的均衡器仅能对高频、中频、低频三段频率电信号分别进行调节。严格地说应先要根据音响的频响曲线用均衡器来校正成平直的,就是说音响的频率响应曲线本来不是水平的直线,但是为了真实还原声音,我们可以通过均衡器的调节把原来的曲线变成直线。但大多数朋友都没这个条件,不知道耳机或者耳塞的频响曲线,所以我们只能根据自己的听觉来进行调节。首先来看看均衡器分段后的每个部分的作用:1. 20Hz-60Hz部分这一段提升能给音乐强有力的感觉,给人很响的感觉,如雷声。是音乐中强劲有力的感觉。如果提升过高,则又会混浊不清,造成清晰度不佳,特别是低频响应差和低频过重的音响设备。2. 60Hz-250Hz部分这段是音乐的低频结构,它们包含了节奏部分的基础音,包括基音、节奏音的主音。它和高中音的比例构成了音色结构的平衡特性。提升这一段可使声音丰满,过度提升会发出隆隆声。衰减这两段会使声音单薄。3. 250Hz-2KHz部分这段包含了大多数乐器的低频谐波,如果提升过多会使声音像电话里的声音。如把600Hz和1kHz过度提升会使声音像喇叭的声音。如把3kHz提升过多会掩蔽说话的识别音,即口齿不清,并使唇音“mbv”难以分辨。如把1kHz和3kHz过分提升会使声音具有金属感。由于人耳对这一频段比较敏感,通常不调节这一段,过分提升这一段会使听觉疲劳。4. 2KHz-4kHz部分这段频率属中频,如果提升得过高会掩盖说话的识别音,尤其是3kHz提升过高,会引起听觉疲劳。5. 4kHz-5KHz部分这是具有临场感的频段,它影响语言和乐器等声音的清晰度。提升这一频段,使人感觉声源与听者的距离显得稍近了一些;衰减5kHz,就会使声音的距离感变远;如果在5kHz左右提出升6dB,则会使整个混合声音的声功率提升3dB。6. 6kHz-16kHz部分这一频段控制着音色的明亮度,宏亮度和清晰度。一般来说提升这几段使声音宏亮,但不清晰,不可能会引起齿音过重,衰减时声音变得清晰,但声音不宏亮。均衡器上也可以按照听门极限的曲线图来设置,这样让耳朵能最容易的感觉到声音,这样最自然最好。如下图,我们提升低频和高频的DB数。这样让低频和高频能够很自然的被耳朵感受到,也就是说最佳的EQ设置应该和该曲线图吻合。1.3高保真功率放大器概述本设计采用AB类功率放大器作为后级输出。AB类工作状态通常是两只晶体管配合进行,在没有信号的时候,两只晶体管都是导通的,但其中的电流很小,当有信号输入时,晶体管中的电流才会变大由于信号的作用使其中的一只晶体管截止的时候,另一只晶体管则一定是导通的,两只管子始终是轮流截止和导通,并且其中流过的电流几乎是全部送入扬声器,因此,甲乙类功放产生的热量较小,并且效率高了很多,在70以上。 AB类(甲乙类)放大器在输出低于某一电平时,两个输出器件皆导通,其状态工作于A类(甲类);当电平增高时,两个器件将完全截止,而另一个器件将供 给更多的电流。这样在AB类(甲乙类)状态开始时,失真将会突然上升,其线性劣于A类(甲类)或B类(乙类)。它的正当使用在于它对A类(甲类)的补充,且当面向低负载阻抗时可继续较好地工作。但,以上只是功放的基本原理。需要满足“高保真”仍然需要满足其他诸多条件。例如,元件选择、保护等。本设计综合考虑了实地功放的因素,并将对其进行详细阐述。1.4图形均衡器的应用和发展图形均衡技术广泛应用于计算机音频处理、媒体播放器以及专业音响设备等。应用于计算机音频处理主要基于通用处理器,而媒体播放器则一般使用ASIC,专业音响设备一般基于DSP,三者应用场合不同。计算机音频处理主要靠计算机软件工作,且通用计算机使用通用处理器,要求软件的可移植性。媒体播放器要求设备体积小巧,成本低廉,运行稳定,处理速度快,一般采用ASIC而非DSP。专业音响设备则要求处理性能高,处理灵活,可升级扩展,所以采用DSP处理。三者都属于数字均衡器。运用数字滤波器组成的均衡器称为数字均衡器,数字均衡器即可做成图示EQ,有可做成参量EQ,还可以做成两者兼有的EQ,它不仅各项性能指标优异,操作方便,而且还可同时储存多种用途的频响均衡特性,供不同节目要求选用。如SONY的SRP-E300是一款多功能2通道的数字均衡器具有10段参量均衡和29段图示均衡,可同时或独立工作,带有限制器和噪声门功能,高精度的48kHz取样,20比特线性模数/数模转换;带有模拟和数字输入/输出;RS-232C接口,可用于外部遥控,它的出现会逐步淘汰普通的模拟均衡器,是一款专业音频扩声领域具有极高性价比的产品。 目前的音频均衡技术已经完全进入数字化时代,就性能而言,10段均衡器和31段均衡器较为流行,31段图形均衡器作为专业均衡器,广泛应用于大型晚会,演唱会等现场气氛浓厚,音效保真度高的场所。1.5设计目标与方案本文基于Simulink对10段图形均衡器做出原理仿真,并以此为理论基础基于TITMS320C5416DSK设计实现10段数字音频图形均衡器和高保真功率放大器,并对效果做出评价和优化。通过Simulink实现软件仿真,软件仿真部分使用FIR滤波器搭建。DSP实现使用准嵌入式开发手段:DSP/BIOS配置和RF3。预期达到的技术指标:段数:10段频率范围:25Hz16KHz输入输出:模拟XLR型数模/模数转换:16bit,立体声,线形,48KHz取样。Simulink仿真能够能够对任何音频进行均衡处理。均衡系数固定,但能够实现输入与输出波形的对比。DSP实现要求能够完成正常的音频均衡处理,并能够通过改变拨码开关调整不同的频率响应曲线。功放电路要求输出功率500W,具有高保真HI-FI性能。2 10段图形均衡器设计与仿真本章对于图形均衡器的原理,设计,性能进一步阐述,通过Simulink对图形均衡器进行仿真实现。2.1 10段图形均衡器的技术指标本例中10段图形均衡器是将缩放后的音频信号并行的通过10路不同中心频率的数字滤波器,最后将各路滤波器的输出做叠加得到均衡后的音频输出。根据音响的频响曲线,用均衡器来校正成平直的,就是说音响的频率响应曲线本来不是水平的直线,但是为了真实还原声音,我们可以通过均衡器的调节把原来的曲线变成直线。为实现均衡功能混衡器有三个参数,通过对三个参数的改变方能实现不同的均衡效果。中心频率值均衡器控制电路中各谐振回路,谐振频率点,即衰减或提升频率段谷点或峰点对应频率点。图2.110段图形均衡器的组成框图带通滤波器的主要性能指标如下:中心频率(fc):滤波器通频带中间的频率,以中心频率为准,高于中心频率一直到频率电压衰减到0.707倍时为上边频,相反为下边频,上边频和下边频之间为通频带。带宽(BW):两个频率的增益在中心频率的最大值衰减3dB时,两个不同频率的差值f2-f1。增益(G):均衡器对于各种音效的实现依靠的最重要参数为增益曲线,一般用分贝表示。 图2.2带通滤波器性能指标示意图此外,根据中心频率与带宽的比值可以得到“品质因数”Q(Q=fc/BW),Q用来表征滤波器的锐度,Q值介于1和0之间。而带通滤波器设计则是依照上述中心频率、通带范围和通带增益来确定滤波器的传递函数。 表2-1 10段图形均衡器带通滤波器参数 音频信号可降解由于混响和滤波过程中的视听环境.在这种情况下,主观不清楚的声音由许多频率分量组成,这些音频信号有些频率分量衰减时有些分量增强。为补偿频域变形的声音和原始声音的再生,均衡器被广泛使用。均衡器都还可以依据使用者喜欢的音频信号类型来修改的频谱输入音频的参数。表2-1为本设计相关参数,通过这些参数可以设计出各个滤波器。2.2 10段图形均衡器的设计图形均衡器的设计实际就是对数字带通滤波器进行设计,滤波器的设计将直接决定均衡器的性能。2.2.1数字滤波器设计概述数字滤波器分为FIR(有限冲击响应)滤波器和IIR(无限冲击响应)滤波器。本例中利用MATLAB的FDAtool进行滤波器设计。 图2.3FDAtool设计工具界面FDATool(FilterDesign&AnalysisTool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(FilterDesignToolbox)。FDATool可以设计几乎所有的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。FDATool。界面总共分两大部分,一部分是DesignFilter。在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。DesignFilter部分主要分为:FilterType(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。DesignMethod(设计方法)选项,包括IIR滤波器的Butterwotth(巴特沃思)法、ChebyshevTypeI(切比雪夫I型)法、ChebyshevTypeII(切比雪夫II型)法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。FilterOrder(滤波器阶数)选项,定义滤波器的阶数,包括SpecifyOrder(指定阶数)和MinimumOrder(最小阶数)。在SpecifyOrder中填入所要设计的滤波器的阶数(N阶滤波器,SpecifyOrder=N-1)。如果选择MinimumOrder,则MATLAB根据所选择的滤波器类型自动使用最小阶数。FrequencySpecifications选项,可以详细定义频带的各参数,包括采样频率和频带的截止频率。它的具体选项由FilterType选项和DesignMethod选项决定。例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定,所以只需定义通带截止频率,而不必定义阻带参数。MagnitudeSpecifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。WindowSpecifications选项,当选取采用窗函数设计,该选项可定义,它包含了各种窗函数。2.2.2 FIR带通滤波器设计此处以一个FIR滤波器的设计为例来说明设计过程。首先在FilterType中选择bandpass(带通滤波器);在DesignMethod选项中选择firWindow(Fir滤波器窗函数法),接着在Windowspecifications选项中选取Hanning;指定Filterorder项中的Specifyorder95;由于采用窗函数法设计,只要给出通带下限截止频率Fc1和通带上限截止频率Fc2,选取Fc170hz,Fc284hz。设置完以后点击DesignFilter即可得到所设计的fir滤波器。通过菜单选项Analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为FIR.fda文件。在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。2.2.3 IIR带通滤波器设计同样通过举例说明。首先在FilterType中选择Bandpass(带通滤波器);在DesignMethod选项中选择IIR,接着在相邻的右则选项中选择ChebyshevI(切比雪夫I型);指定FilterOrder为2;由于采用的是切比雪夫设计,不必在Options中选择;然后在FrequencySpecifications中选择Unit为Hz,给出采样频率Fs=48000,通带Fpass1=679和Fpass2=1358;最后在MagnitudeSpecifications中选择Unit为db,Apass=0.5。设置完成后点击DesignFilter即可得到所设计的IIR滤波器。通过菜单选项Analysis可以在特性区看到所设计的幅频响应、相频响应、冲击响应和零极点配置等特性。设计完成后将结果保存为IIR.fda文件。2.2.4二阶IIR带通滤波器设计IIR滤波器具有无限冲激响应,所以更接近模拟滤波器,并可以使用较FIR少的阶数实现一定的性能,会节省更多了CPU时间。在本例中的缺点是滤波器系数量化后可能会使性能变差甚至系数不可用,且优化困难。下图是二阶IIR带通滤波器框图。图2.4二阶IIR带通滤波器原理框图本例中使用的10段中心频率值如下表所示:在本例中,中心频率的提升和衰减增益均为3-dB,3-dB是对数形式的提升或衰减对于本设计用到2阶IIR滤波器,其传递函数及相关参数如下表式。依照IIR滤波器的设计方法其性能指标和参数设计如下。以上表中第一组参数为例。该滤波器的传递函数为:本设计中共需对10个滤波器进行设计,方法如同第一组参数的设计方案,这里不再对其赘述,各项参数值请参考表2-3。 表2-32.3 10段图形均衡器的Simulink仿真2.3.1 Simulink模型的构建本例通过Simulink的仿真完成实例的设计和仿真。打开Simulink后,单击新建按钮,打开一个空白模型,然后从库浏览器中找到输入和输出。本例中仿真用音频文件作为输入,找到FromWaveFile模块并拖入模型窗口中。然后找到ToWaveDevice作为输出,通过声卡播放声音。这样首先建立起来一条通路,这与后面硬件实现时使用程序框架的思想是一致的。当直接把这两个模块按输入输出顺序连接好后,就可以开始仿真了。在实例中,这两个模块相当于模拟输入输出,但需要注意,仿真中的模拟输入输出实际上也是数字信号,只是在这里我们把他们作为模拟信号来看的。由于我们要仿真的硬件的数据类型是16位定点,所以在模拟输入后就需要有一个转换Conversion。这个转换器相当于实例中的A/D,同样的,在输出前也需要一个反向的Conversion充当D/A。双击打开属性页,并如图设置。图2.5Conversion属性页Simulink中的转换器是按帧转换的,但我们使用的滤波器只能按点处理,所以还需要一个Unbuffer和Buffer。这与实例中是有一定差别的,在实例中,滤波器虽然不能绝对同时的计算一个帧,但是可以使用循环控制在相对同时的时间里完成一个帧的计算,所以并不需要这样的一个Buffer或Unbuffer。按下图将这些模块连接好,这样就完成了这个仿真模型的框架了。还可以添加一个示波器Scope,来查看仿真时的音频波形。图2.6仿真模型框架图运行仿真,得到如下波形:图2.7输入波形这样仿真框架就已经完成了。可以说,一般的部分音频处理应用,也可以使用这个框架。我们将设计好的滤波器和每个滤波器所乘增益并行的插入到这个框架中,得到下图所示的仿真框图。图2.8 10段图形均衡器仿真框图2.3.2定点仿真与溢出控制策略单击运行按钮,得到输入和输出波形。为避免发生溢出,我在输入滤波器前对输入信号进行了缩放处理,即乘增益0.1。 图2.8输入输出波形对比2.3.3 算法性能评价本章完成了16位定点仿真,验证了10段图形均衡器在16位定点CPU上的可行性。目前计算机中许多音频播放软件都带有图形均衡器,这种图形均衡器实际就相当于在通用处理器上的软件仿真,在浮点通用处理器上,目前这种图形均衡器可以达到很好的性能和效果。3 10段图形均衡器DSP设计与实现这一章的主要内容是介绍通过对5416DSK进行编程,以实现10段图形均衡器的过程。3.1硬件平台实时系统的开发平台有很多,我们要根据具体应用来选择最适合的处理器:必须能够轻松的完成该实时应用,而又不过于浪费。这实际上涉及很多方面的问题如,CPU主频、外设的多少、存储器的大小等等。对于实时系统来说,我们不应该因成本最低而选择资源刚好够用的平台。在CPU的占用率上,这个应用在负载最大时,应仍不超过70%,这样才能保证在系统能够稳定的运行,而且可以再升级或实时监测诊断等。本例中使用TMS320VC5416DSK作为开发平台。 3.3.1系统结构和信号通路图3.1基于TMS320VC5416的音频信号处理系统硬件结构框图在系统结构上,主要分为三部分,即DSP、CPLD即CODEC。DSP通过CPLD控制CODEC,并通过CODEC进行音频数据的输入,然后DSP对数据进行处理,最后由CODEC输出。如上图。在硬件电路上,CODEC与DSP的McBSP2连接;CPLD与DSP地址总线与数据总线连接,并与CODEC的时钟和控制字串行管脚连接;CODEC通过放大电路与音频输入输出端口连接。如下图所示。图3.2基于TMS320VC5416的音频信号处理系统电路原理图(CPLD部分)图3.3基于TMS320VC5416的音频信号处理系统电路原理图(McBSP部分)图3.4基于TMS320VC5416的音频信号处理系统电路原理图(信号输入部分) 图3.5基于TMS320VC5416的音频信号处理系统电路原理图(信号输出部分)在本例中,需要对DSP编程,以实现在DSK中建立一条能够完成音频信号输入及AD转换、DSP处理、音频信号的DA转换以及输出的通路。图3.610段均衡器信号通路3.3.2核心芯片及其硬件配置1 TMS320VC5416DSP的主要配置aMcBSP配置通过在DSP/BIOS中ChipSupportLibrary(芯片支持库)的McBSP(多通道缓冲串行端口)配置管理中新建一个McBSP配置,对所使用McBSP传输模式、传输长度、接受模式、接受长度以及采样率等进行设置,由配置文件调用CSL生成驱动程序。如果对McBSP的控制寄存器很熟悉,也可以通过配置页的Advanced选项卡直接填写控制寄存器的控制字,否则这些控制字由其他配置选项卡定义。然后在McBSP资源管理中启用所使用的McBSP句柄和指定句柄名,并启用初始化配置,选择配置管理新建的配置。所以每个McBSP都可以选择启用或不启用,并使用独立的配置。详细配置见附录B。由于硬件设计的原因(只有McBSP2与Codec连接),本例中使用McBSP2作为音频数据的端口。bDMA配置McBSP需要DMA(直接存储器访问)的配合才能够完成一帧的数据搬移,这种数据搬移方式不需要DSP的干预,所以也不占用DSP时间。一个双向使用的McBSP需要两个DMA。所以同样的,在DMA配置管理中建立新的DMA配置,然后在DMA资源管理中启用相应的DMA控制器,本例中使用DMA4和DMA5。有关DSP/BIOS的说明,参见3.3.2。2音频CODEC(PCM3002)配置TMS320VC5416DSK中使用PCM3002作为音频编解码器,起到AD、DA的作用。在5416DSK中,PCM3002工作在软件模式,即通过MC、MD、ML三个管脚作为串行端口连续的输入四组控制字对其设定,PCM3002会把这四组控制字保存在四个独立的寄存器中。PCM3002的控制寄存器有四组,每组16bit。寄存器0设定左通道DAC衰减;寄存器1设定右通道DAC衰减;寄存器2设定了关机模式、衰减数据模式控制、输出使能控制、DAC软件静音控制等;寄存器3设定输入输出格式。PCM3002有4种输入输出格式,如下表: 表3-1PCM3002输入输出格式:注:MSB-First:最高有效位优先,即先串行传送最高位;Left/Right-Justified:每帧数据的左右对齐;I2S:I2S(Inter-ICSound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。本例中使用默认的输入输出格式0。对PCM3002的控制并不是通过DSP直接控制,而是通过给CPLD的寄存器写控制字,再由CPLD对PCM3002给出控制字对其控制。CPLD中设定的几组寄存器,通过对这几组寄存器的读写,实现对其他硬件的状态读取和控制。图3.7CPLD控制寄存器分配表在设定PCM3002控制字时,需要对传送8次数据,即每个控制字分高低位传送。先传送低位,后传送高位,CPLD在接收到高位数据后会把16位数据一起发送给Codec。CPLD接收到高位数据后,用户需要等待1ms才可以发送下次数据,可以通过测试MISC寄存器中第7位(CODEC_RDY)为0判断Codec是否可以接受新指令。本例中使用DSK5416库函数默认值:0x010d设定左通道DAC衰减0dB;0x010d设定右通道DAC衰减0dB;0x0000设定其他控制为默认;0x0000设定数据输入输出格式为Format0。3.3.3硬件性能指标TMS320VC5416和PCM3002都有较优秀的性能,足以胜任一般的音频应用。下表展示TMS320VC5416和PCM3002的性能参数。在本例中,对数据进度要求比较高,而5416属于定点DSP,所以数据采用Q15精度,保证数据精度的最大化。本例中PCM3002使用最高采样率,48KHz,采样率还可由CPLD分频得到24KHz、12KHz和6KHz。 表3-1PCM3002性能指标 表3-2TMS320VC5402性能指标3.2软件开发工具3.2.1CCSIDE简介TI公司的DSP集成开发环境CCS(CodeComposerStudio),集成除了最基本的C编译器、汇编优化器、汇编器、连接器,还有文档管理器、运行支持库、交叉列表工具、建库工具、十六进制转化工具等;为用户提供了环境配置、源文件编辑、程序调试、跟踪和分析等功能。3.3.2CCSDSP/BIOSDSP/BIOS是TI公司特别为TMS320C6000、TMS320C28x系列DSP平台所设计开发的一个尺寸可伸缩的实时内核,它是为那些需要实时线程调度与同步、主机与目标DSP间通信或实时监测的应用而设计的。DSP/BIOS提供了抢占式多线程、硬件抽象、实时分析和配置工具。它是CodeComposerStudio开发工具的组成部分之一,无须运行许可证,用户就可以免费使用。DSP/BIOS配置允许用户静态地创建对象并设置对象属性,从而优化用户应用程序,既改善了程序运行的性能,也缩短了程序开发的进度。DSP/BIOS内核实质上是可以从C源程序或者汇编源程序中调用的函数库,目标应用程序通过在源程序中嵌入相应的APIs调用从而唤醒DSP/BIOS的运行时刻服务。该函数库提供如下服务或者功能:一个小型的抢占式的实时应用程序线程调度器,支持多任务功能;对片上定时器和硬件中断的硬件抽象;与设备无关的管理实时数据流的I/O模块;捕获目标程序线程实时运行期间生成的实时信息的一系列函数,从而可以分析目标程序实时运行期间的一些信息。具体来说,DSP/BIOS分为6个组件或服务(系统服务组件、实时分析组件、调度组件、输入/输出组件和芯片支持库)。其中,每类组件或服务又包括数个功能模块,每个模块一般管理相关内核对象类一个或者多个实例。图3.12 DSP/BIOS原理图使用传统方法建立系统,我们必须编写缓存、中断允许的全局设置;中断向量表;时钟、串口、DMA等外设的设置;CMD文件。很显然这是一种繁琐的工作。DSP/BIOS是一个功能丰富、可扩展的内核服务集,开发人员可以用来管理系统级的资源和构建DSP应用的基础架构。也可以说通过DSP/BIOS我们可以不用管很多底层的东西,可以让我们省出来很多精力来专注与算法和系统集成。再结合TI提供的函数库,我们能很方便、快捷的做出系统框架,是缩短我们的系统开发的时间。图3.13 DSP/BIOS图形配置3.3DSP程序设计和实现3.3.1设计流程在确定硬件平台基础上,根据系统需要编写基本框架程序,或选择合适的ReferenceFramework并裁减。本例中使用的框架相当于RF3。编写的框架程序应该在注释中对所使用的资源详细描述。同时对系统算法进行设计。下一步是编写算法模块并添加到框架中。最后对整个系统进行调试和优化。详细流程见下图。图3.14项目流程图3.3.2程序框架设计本例中框架程序可以仅仅是一个通路即可,无需添加功能模块,主要有这四个文件构成: 图3.15Audio.c是主程序,plio.c是PIO适配器,用于PIP和输入输出微型驱动IOM的适配连接。根据我们需要修改框架代码,并注意添加相应注释,以供下一步对DSP/BIOS配置时参考。代码中for(i=0;iNX;i+)*dst+=*src+;仅仅把输入数据直接输出,没有对数据作任何处理,即相当于上章中Simulink框架。编译运行后,我们可以直接听到输出的音频。PIP适配器(PIO):PIO用于建立PIP模块和一个IOM微型驱动之间的接口。DSP/BIOSPIP模块提供了一种“数据管道”服务来管理异步I/O。每个管道对象都维护着一个被划分为多个大小相同的帧的缓冲区。管道对象里帧的数量和大小可在DSP/BIOS配置工具里进行设置。尽管每个帧大小固定,但应用程序实际放入的数据也可以小于帧的大小。一个管道有两个端口,即写入端和读取端。本例中当写入端满和读取端空时,触发线程myEQ。PIP适配器(PIO)提供了相应的API函数以供调用:PIP_allocPIP_putPIP_getPIP_free调用PIP_alloc函数可以得到一个空帧,帧满之后调用PIP_put函数将该帧放入管道中,PIP_put函数会触发notifyReader函数通知读取程序。管道的读取程序可在合适的时候通过调用PIP_get函数来获取一个满帧,读取后通过调用PIP_free函数释放帧,同时PIP_free函数会触发notifyWriter函数通知写入程序,如此往复循环,实现了使用管道的输入输出。图3.16PIO原理图3.3.3基于DSP/BIOS的软硬件配置第二步就是要根据确定后的框架程序配置DSP/BIOS。可以同时开始对系统算法的设计和仿真实现。如上图配置好DSP/BIOS后,尝试编译一次,如果编译没有通过,则需根据错误提示检查DSP/BIOS配置,以及框架程序。继续编译调试并测试系统是否调通,直至编译通过。接下来使算法在目标板上实现,即编写目标板算法模块。在算法模块添加到框架后,因为只能对整个工程编译,那么出现的错误或警告有可能是对资源的引用非法等引起的,所以不能仅对算法模块排查错误,仍然需要重复上述过程。DSP/BIOS作为一个内核,不会结束运行,在没有任务的情况下,会掉入DSP/BIOS空闲循环中等待中断。在主程序main()函数中可以看到,主程序仅做初始化的工作,且在程序最后保留Return语句,可见main()函数并不处于最底层。下图是本例中主程序初始化和返回DSP/BIOS空闲循环的程序流程。图3.17main()函数流程图 图3.18新建DSP/BIOS配置本例中新建配置文件选择5416DSK模板,所以存储器分配等全局设置和复位、时钟中断等硬件中断如无特殊要求则不需改变,只需根据程序需要添加模块并配置即可。图3.19根据应用添加DSP/BIOS配置本例中需要添加2个硬件中断、3个软件中断、1个时钟、1个空闲函数以及2个管道和RTDX并对芯片支持库中DMA4、DMA5和McBSP2进行配置。 图3.20DSP/BIOS配置模块4个软件中断分别是LED控制,拨码开关状态读取,音频处理以及RTDX。相应的配置如下:图3.21DSP/BIOS软件中断属性对话框图3.22DSP/BIOS软件中断属性对话框 图3.23DSP/BIOS软件中断属性对话框图3.24DSP/BIOS软件中断属性对话框 图3.24DSP/BIOS属性对话框硬件部分的配置相对固定,此处不再赘述,详细配置见附录B。下一步需要根据新增加的配置修改主程序,如主程序中用到需要的模块就又需要修改DSP/BIOS配置。如此反复,直至二者互相匹配并通过编译。3.3.4算法程序设计1.核心算法程序设计主要是输入信号通过滤波器。流程图如下: 图3.25主线程流程图其中还用到了这两个文件:图3.26前者是需要的滤波器系数,我们设计好的滤波器系数就存放到该文件中。后者为DSPLib中提供的5系数iir滤波器程序,属于API函数,能够达到最小的代码量和最短的执行时间。在使用DSP进行数字信号处理工作时,经常使用滤波等各种信号处理,但这类程序的编写调试费时费力。为此TI公司提供了以TMS320C54x系列芯片为基础的DSPLIB库函数,在CCSIDE内包含DSPLIB库函数,也可在网站上免费下载,经使用证明DSPLIB函数库使用方便、速度快、运行可靠、功能全面,为在TMS320C54X系列上进行滤波等信号处理处理提供了极大的方便。TMS320C54X系列函数库(DSPLIB)是对C语言编程可调用优化的DSP函数库,它含有50个通用目的的信号处理程序,全部由汇编语言编写,并可由C语言调用,方便C语言与汇编语言混合编程。这些程序用在计算强度大、执行速度重要的实时运算中。通过使用这些程序,可以取得较用C语言编写的相关程序快的多的运行速度,另外通过使用现成的程序可以使开发速度大大加快。DSPLIB可进行的运算有:FFT运算、滤波与卷积运算、自适应滤波运算、相关运算、数学函数运算、三角函数运算、矩阵运算等。在CCSIDE中设置需要注意的地方是,由于DSPLIB安装在固定子目录上,而应用程序可能在其它目录上,程序编译连接时,可能找不到DSPLIB中相应相应程序。为使程序正常运行,需对工程的BulidOptions选项中两个地方进行设置。其一是编译时打不开或找不到dsplib.h、tms320.h文件,此时可以在compiler标签下选中preprocessor选项,在IncludeSearchPath栏中填入dsplib.h、tms320.h所在子目录(本例为C:CCStudio_v3.1C5400dsplibinclude);另一种情况是,连接时找不到滤波处理相应的汇编程序,编译错误提示有些函数为未定义变量,此时可在linker标签下选中basic选项,在LibrarySearchPath栏中填入54xdsp.lib、rts.lib库文件所在路径(本例可填入C:CCStudio_v3.1C5400dsplib;C:C

温馨提示

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

评论

0/150

提交评论