音频频率数字扫频仪.docx

上传人:b****4 文档编号:4888833 上传时间:2022-12-11 格式:DOCX 页数:26 大小:1.04MB
下载 相关 举报
音频频率数字扫频仪.docx_第1页
第1页 / 共26页
音频频率数字扫频仪.docx_第2页
第2页 / 共26页
音频频率数字扫频仪.docx_第3页
第3页 / 共26页
音频频率数字扫频仪.docx_第4页
第4页 / 共26页
音频频率数字扫频仪.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

音频频率数字扫频仪.docx

《音频频率数字扫频仪.docx》由会员分享,可在线阅读,更多相关《音频频率数字扫频仪.docx(26页珍藏版)》请在冰豆网上搜索。

音频频率数字扫频仪.docx

音频频率数字扫频仪

C2000参赛项目报告(命题组)

 

题目:

基于TMS320F2808的音频频率数字扫频仪

基于TMS320F2808的音频频率数字扫频仪

何苏勤吕咸亮  刘勇   王小庆

(北京化工大学信息科学与技术学院 邮编100029)

摘要:

本文提出了一种基于DSP(TMS320F2808)的音频频率数字扫频仪设计方法,详细介绍了由DSP产生正弦扫频信号和幅频特性测量的核心算法和实现过程。

按此方案设计的扫频仪,可测得被测网络在20Hz~20KHz范围内的幅频特性,并将测量结果发送给PC机显示。

同时,文中还为C2000设计了幅频均衡算法,并分析了该算法的运算量,给出了C2000能否实时处理的依据。

关键词:

数字扫频仪、DSP、幅频特性测量、幅频均衡

DigitalAudio-FrequencySweeperbasedonTMS320F2808

HeSuqinLvXianliangLiuYongWangXiaoqing

(CollegeofInformationScienceandTechnology,BeijingUniversityofChemicalTechnology)

Abstract:

ThispaperintroducesamethodofthedesigningofDigitalAudio-FrequencySweeperbasedonDSPTMS320F2808.Detailedcorealgorithmandimplementationprocessarepresentedheretogeneratesweptsinewaveaswellasamplitude-frequencyresponsecharacteristicmeasurement.Sweeperdesignedunderthisschemecanbeusedtomeasuretheband-stopnetwork’samplitude-frequencyresponsecharacteristicintherangeof20Hz~20KHz,andthefinalresultcanbetransferredtocomputertodisplay.Inaddition,thepaperdesignsanalgorithmofamplitude-frequencyequalization,andanalysesitscomputation,offersabasisonwhethertheC2000canreal-timeprocess.

Keywords:

digitalsweeper,DSP,amplitude-frequencyresponsecharacteristicmeasurement,amplitude-frequencyequalization

1引言

在电子产品生产或调试过程中,经常需要对网络的频率特性进行测量,一般采用频率特性测试仪即扫频仪来测量。

扫频仪是一种能在屏幕上直接观察被测网络频率特性曲线的频域测试仪器,它为被测网络的调整、校准及故障的排除提供了极大的方便。

本方案利用TMF320F2808高速的运算能力以及丰富的片内外设,设计并制作出了一台适用于音频频率范围的数字扫频仪,它分别使用DSP内部的PWM模块和ADC模块产生扫频信号和采集数据,具有外围电路少,运算效率高,运算精度高以及结果数据可存储等特点。

2系统指标

(1)扫频信号产生

频率范围:

20Hz-20KHz,输出幅度0-3V,输出电阻600。

(2)带阻网络

以10KHz单频信号为基准,带阻网络最大衰减≥10dB。

(3)幅频特性测试

信号调理2的输入阻抗为600。

3系统方案

3.1总体介绍

系统由扫频信号产生电路、带阻网络电路、ADC驱动电路、系统与PC机通信、PC机终端显示等几大部分构成,如图1所示。

整个系统以TMS320F2808为控制和测量的核心:

正弦扫频信号由该DSP的ePWM1和ePWM2模块控制产生;使用DSP内部的ADC模块采集通过带阻网络后的信号,其采样频率由ePWM3控制;通信部分使用了DSP的SCIA单元,采用RS-232标准与计算机进行通讯;此外,还使用DSP的GPIO对系统中使用到的模拟开关进行控制选择。

当系统运行时,用户由PC终端显示程序向DSP发出扫频命令,DSP收到该命令后,启动相关的外设模块,产生扫频信号,同时采集经过带阻网络后的信号并进行相应数据处理工作。

数据处理完成后,计算结果通过DSPSCIA接口发送给PC终端显示程序,在PC终端显示程序上显示并存储该带阻网络的幅频特性。

图1总体设计图

3.2幅频特性测试原理

常用的扫频仪大致可分为两类,第一类是用锯齿波调制高频信号,在阴极射线管上显示结果;第二类是以压控振荡器为核心,运用类似锁相频率合成技术,并配合A/D、D/A转换器,在单片机控制下完成扫频。

第一类扫频仪是以50Hz电源频率和LC振荡器为基准信号,它的不足之处是易受干扰,频率偏差大,现在其应用越来越少。

随着数字测量技术的发展,第二类的应用越来越广泛,根据其设计原理,我们设计并制作出了一台基于TMF320F2808的数字扫频仪。

系统由DSP的ePWM模块控制产生幅度稳定的单频正弦信号,将信号馈给被测网络的输入端口,然后由DSP采集被测网络输出端口的信号,计算出其幅值,并记录。

改变单频正弦信号的频率,并重复上述过程,得到足够多的频点数据,即可绘制出该被测网络的幅频特性。

3.3扫频信号产生电路

根据要求,我们通过TMS320F2808内部的ePWM模块控制产生确定频率的单频正弦信号。

使用PWM控制技术产生正弦信号主要有两种方法:

方法一:

应用PWM控制技术产生SPWM波形,经低通滤波器后得到所需的正弦信号。

SPWM波的产生就是利用一系列连续的三角波和正弦波相交,从而得到一系列宽度和正弦波幅值成正比的方波信号,如图2所示。

输出的信号经过低通滤波器滤除高频分量后,便可产生单频正弦波。

图2SPWM波形的产生

方法二:

应用PWM控制技术产生所需频率的方波信号,直接经搭建的滤波电路得到所需频率的正弦信号。

由信号理论我们知道,方波信号的频谱除了基波分量外,还包含一系列离散的谐波频率分量,如图3所示。

如果设计低通滤波器,能够只保留基波频率,而滤除二次谐波及以上的频率成分,便可以从方波信号中提取出与方波信号同频率的正弦信号。

图3方波信号的频谱

与方法一相比,方法二的滤波电路要求相对较高,需要截止频率随时根据方波频率的变化而变化,但是方法二程序设计简单,不需要DSP进行太多复杂的运算,节省了运算时间,加快了系统的扫频速度。

经过比较分析,本设计采用方法二。

系统使用ePWM1A输出所需频率的方波。

现假设要输出的正弦波的频率为f,ePWM1单元的时钟频率为F0。

初始化时设置ePWMA为增减模式,TBCTR=TBPRD时输出引脚置为高电平,TBCTR=0时置为低电平,如图4所示。

则要产生频率为f的方波,ePWM1周期寄存器TBPRD的值可由下式得出:

(1)

图4正弦波产生原理

3.4ADC数据采集

该部分主要根据扫频信号频率的变化,实时更改ADC的采样频率,完成对通过带阻网络后的信号的采集。

ADC使用ADCINA0通道和ADCINB0通道同时对信号进行采样,最终结果通过对两个通道的值求平均而得。

ADC的采样频率由ePWM3单元控制,即由ePWM3发出的EPWM3SOCA脉冲启动ADC的转换。

通过实验比较,系统设置ADC的采样频率为当前扫频信号频率的16倍,即一个信号周期采集16个点,用来计算所采集的正弦信号的幅值。

ADC初始化时设置为同步采样模式和级联模式,为了提高采样精度,设置ADCCLK时钟为12.5MHz。

同时设置最大转换信道数寄存器ADCMAXCONV为1,在输入信号选择定序控制寄存器中设置CONV00为0x0,并使能ePWM的SOCA启动SEQ,以及使能SEQ中断。

而ePWM3初始化时设定为增模式,当TBCTR=TBPRD时产生EPWM3SOCA脉冲,且ePWM3使用与ePWM1相同的时钟频率。

现假设ePWM1周期寄存器值为TBPRD1,为了控制ADC采样频率为当前扫频信号频率的16倍,则设置ePWM3周期寄存器的值TBPRD3=TBPRD1/8,如图5所示。

图5ADC采样频率的控制

3.5算法及数据处理

3.5.1扫频信号步进频率的计算

在扫频过程中,扫频信号的步进频率越小,则测得的带阻网络的幅频特性越精确。

由式

(1)可得,ePWM1单元周期寄存器TBPRD的数值与正弦波频率f成反比例关系,当f值比较大时,TBPRD微小的变化就可能引起f较大的变化。

由于TBPRD值必须为整数,因此这时f间的步进可能会比较大。

为了缩减步进,系统希望F0越大越好,特别是在f比较高时。

否则邻近频率f1与f2算得的TBPRD值可能一样,即实际输出的信号频率并没有发生变化。

但是在f比较低时,由高频F0求得的TBPRD值可能会超出ePWM单元周期寄存器所能表示的最大值。

借助于Matlab,经计算分析得出,在接近于20KHz处,ePWM1单元的时钟只有设置为DSP的最大时钟频率100MHz,才能使扫频信号的频率步进小于10Hz。

而在100MHz下,扫频信号的最小频率为100MHz/(2*65525)=763Hz,不能满足从20Hz开始扫频的要求。

因此在20Hz到763Hz处,需要改用较低的时钟频率来驱动ePWM1单元,本系统选择使用1.25MHz。

由式

(1)计算20Hz~20KHz范围内各频率点TBPRD的值可得:

在低频处步进可小于1Hz,即最小分辨率可达1Hz甚至以下。

但在高频时,最小步进将大于1Hz,且随着f的增加,步进值越大,到最后只能由19.992KHz(TBPRD=2501)直接步进到20KHz(TBPRD=2500),即此时芯片所能达到的最小分辨率为8Hz。

3.5.2采集信号幅度的计算

正弦信号的幅值按传统的算法可通过DFT或FFT求得。

本系统中,由于采集的信号是单频的且频率已知,在此对算法进行了进一步的优化处理。

对于有限长离散数字信号x[n](0≤n≤N-1),其离散谱X[k]可由离散傅里叶变换DFT求得。

DFT定义为:

(2)

其中

,代入式

(2)可得:

(3)

X[k]的模值就等于模拟信号中各对应频率幅值的N/2倍(k=0除外,X[0]对应直流分量,其模值是直流分量幅值的N倍)。

假设正弦信号的频率为

,ADC采样频率为

,自然频率为

,采样点数为

,则在DFT公式中频率与

的对应关系为:

即:

(4)

如果设定

,那么由式(4)可知,

=1即X[1]的值对应于单频正弦信号的幅值。

也就是说采样频率是单频信号频率的N倍(N为采样点数),则X[1]就与该单频信号的幅值相对应,其信号的幅度为:

(5)

在本设计中,由于在扫频过程中已经知道当前正弦信号的频率

,且设置采样频率

,采样点数N=16,采样值为x[n](0≤n≤15)。

那么根据式(5),当前正弦信号的幅度为:

(6)

这样,完全不必做完整的DFT运算,其计算量缩减为DFT计算量的1/N,大大减少了运算时间,提高了系统扫频的效率。

此外,在实际的DSP程序中,事先计算出正弦表和余弦表并存储在DSP中,在运算时通过查找数组获取需要的三角函数值,这样避免了DSP在运行过程中进行复杂的正余弦计算。

4系统硬件设计

系统硬件部分主要由以下几部分组成:

扫频信号产生电路、带阻网络、ADC驱动电路、DSP系统模块以及通讯模块,其中DSP系统模块使用的是eZdspF2808开发板。

所有模块均设计为单电源供电。

4.1扫频信号产生电路

图6TLC04滤波电路

如图6所示,本设计选用TI公司的TLC04为核心设计程控滤波器。

TLC04是单片集成巴特沃斯低通开关电容滤波器,能够提供精密的四阶低通滤波器功能,成本低、易使用。

TLC04的截止频率稳定性只和外部时钟频率稳定性有关。

截止频率是时钟可调的,时钟—截止频率比为50:

1,误差小于±0.8%,可以很方便地通过DSP控制TLC04的截止频率,以产生需要的正弦波。

DSP输出的高电平为3.3V,如果直接与TLC04的CLKIN相连,则与TLC04的CMOS时钟不匹配,因此需要进行电平转换。

本设计采用TI公司的74HCT04芯片进行电平转换。

74HCT04是一款高速六反相器,输入电平与LSTTL兼容,而输出为CMOS电平,可以很巧妙地将DSP输出电平转换为与TLC04匹配的CMOS电平。

另外,在DSP输出的PWM波与TLC04的FILTIN端之间加入了一个10uF的隔直电容,用来隔离虚地和地之间的直流电压。

使用TLC04滤波后的波形直流偏置在2.5V,且峰峰值大于3V,因此需要进行信号衰减。

本设计选用TI公司的OPA2364设计衰减电路,使输出信号的直流偏置在1.5V,幅度在0~3V之间。

如图7所示。

图7信号幅度衰减电路

经图7输出的波形中仍有阶梯波,需要再对波形进行平滑滤波,以提高系统的测量精度。

为了使输出的正弦波更加平滑,设计了4个滤波器,采用分段滤波,滤波器的结构如图8所示。

滤波后的4个波形信号由DSP控制信号开关CD74HC4066选择要进入带阻网络的信号,如图9所示。

同时为了与CD74HC4066的控制电平相匹配,由DSP输出的控制信号要先经过74HCT04进行电平转换。

为了使扫频信号产生电路的输出阻抗为600Ω,需在电压跟随电路输出端串联一个600Ω的电阻。

但在实际的电路中,考虑到运算放大器有一定的输出阻抗,没有直接选择阻值为600Ω的电阻,而是通过测量,选择了阻值为580Ω左右的电阻。

图8平滑滤波器

图9多路选择电路

4.2带阻网络

带阻网络模块是用运放OPA2364组成的二阶有源带阻滤波器,其原理图如图10所示。

图10带阻网络原理图

原理图的中1.5V是直流偏置,实际硬件实现时可对电源+3V分压得到。

用Multisim电路仿真软件对其进行仿真,测出带阻网络的幅频特性如图11所示。

当频率=10kHz时,衰减0.011dB≈0dB;且带阻网络的最大衰减值为-38.129dB,设计满足题目所给要求。

图11带阻网络幅频特性

4.3ADC驱动电路

为了更好的采集模拟信号,设计中在DSP内部ADC进行数据采集前加了一个运算放大器,作为ADC采样的驱动电路和缓冲器,它可以提供低且稳定的输出阻抗,并且可以保护DSP内部模数转换器的输入。

驱动电路如图12所示。

其中运算放大器选用TI公司的OPA354,该运放单位增益带宽为250MHz,转换速率高,能够很好地驱动高速和中速模数转换器。

按照题目要求,需要在运放的同相输入端并联一个600Ω的电阻,以保证信号调理2的输入阻抗为600Ω。

但在实际的电路中,考虑到运算放大器的输入阻抗并不是无穷大,因此并联的电阻阻值要稍大于600Ω,经过测量,使用610Ω左右的电阻。

图12ADC驱动电路

4.4串口通讯模块

TMS320F2808内部有专门的支持异步串行通信模块(SCI),通过它可以与计算机串口进行通讯。

本设计采用SCIA作为通讯端口,经过MAX3238电平转换后,与9针标准RS-232口相连。

这样DSP与计算机之间就可以通过串口线来进行数据的传输。

图13为开发板中的串口部分硬件连接图。

图13串口通讯模块

4.5电源管理模块

系统供电电路总体框图如图14所示。

系统设计为单电源+5V供电。

系统内部需要用到的其它电源使用TPS70302分压而得。

TPS70302是TI公司推出的一款LDO稳压器,其输出电压可通过外部电阻调整。

同时,为了减小数字部分与模拟部分间的干扰,系统中将模拟地与数字地分开,最后在一点接于电源地。

另外,在每个数字芯片的供电电源引脚旁均并联了一个0.1µF的去耦电容,以滤除纹波和旁路器件的高频噪声。

(图中均未标出)

图14系统供电电路总体框图

5系统软件设计

5.1软件总体框图

系统软件框图如图15所示。

在设计时将特定功能的子程序组合成功能模块,由主程序或ADC中断子程序调用。

其主要功能模块有:

主程序模块、ADC和ePWM初始化模块、SCI接收中断模块、ADC中断模块,以及ePWM时钟控制模块、滤波器选择控制模块、幅值计算模块和SCI数据传送模块。

图15系统软件总体框图

5.2主程序模块

主程序模块主要负责系统上电后对TMS320F2808的基本初始化操作,包括系统初始化、GPIO初始化、SCI初始化以及PIE初始化等,同时对全局变量赋初始值。

本系统中设置TMS320F2808的CPU时钟为100MHz,使能ADC、ePWM、SCI模块的时钟(其中ADC时钟和ePWM时钟的使能在ADC和ePWM初始化模块中设置,这样可以在系统不扫频时,不启动ADC和ePWM模块,以节约电能)。

在系统初始化中还禁止了看门狗操作,配置高速外设时钟预分频器为1,即高速外设时钟为50MHz,低速外设时钟预分频器为2,即低速外设时钟25MHz。

在GPIO初始化中,设置GPIO0、GPIO2、GPIO4、GPIO28、GPIO29为外设功能引脚,设置GPIO1、GPIO3、GPIO5、GPIO6为通用输出引脚,以用于控制信号开关CD74HC4066。

PIE初始化包括中断寄存器和中断向量表的初始化。

为了在系统上电后能够接收到上位机的指令,这里还对SCIA串口模块进行了初始化:

设置波特率为9600bits/s,8位数据位,1位停止位,无校验位。

全局变量的初始化完成对程序中所要使用的各种标志变量和参数的初始化。

由于系统上电后并没有立即进行扫频工作,而是在等待接收到上位机的扫频指令后才开始对带阻网络的幅频特性的测量,因此这里并没有对ADC模块和ePWM模块进行初始化,而是将其单独作为一个模块供主程序调用。

5.3ADC、ePWM初始化模块

在接收到上位机的扫频指令后,才启动ePWM和ADC进行幅频特性的测量工作。

因此设计中把这两个片内外设的初始化作为单独的模块供主程序调用:

一方面,系统待机时节约电能;另一方面,重新扫频时方便主程序的调用。

ADC初始化操作主要包括启用ADC模块的时钟,设置为同步采样模式和级联模式,配置ADCCLK时钟为12.5MHz。

同时设置最大转换信道数寄存器ADCMAXCONV为1,在输入信号选择定序控制寄存器中设置CONV00为0x0,并使能ePWM的SOCA启动SEQ,以及使能SEQ中断。

ePWM初始化操作包括启动ePWM模块的时钟,设置ePWM1的计数模式为增减模式;时基时钟预定标为3,高速时基时钟预定标为5,即ePWM1和ePWM2的初始计数时钟频率为100MHz/(8*10)=1.25MHz;在计数器值为0时引脚输出为低电平,计数器值周期匹配时输出为高电平;周期寄存器值初始化为31250,即输出方波的初始频率为20HZ。

由于时钟—截止频率比为50:

1,因此设置ePWM2的周期寄存器值为ePWM1周期寄存器值除以50,其余设置同ePWM1设置。

ePWM3设置计数模式为增模式;初始计数时钟频率与ePWM1、ePWM2相同;使能EPWM3SOCA脉冲的输出,且在计数器发生周期匹配时输出该脉冲,启动ADC转换;周期寄存器值初始化为15625,即ADC采样频率初始化为80Hz。

5.4SCI接收中断模块

SCI接收中断模块主要用于接收上位机的指令。

程序中使用全局变量start来表示是否开始扫频。

在主程序的全局变量初始化时将start设置为0,即系统上电后直到接收到上位机的指令后才开始扫频工作。

在SCI中断子程序中,将SCI接收缓冲寄存器的值赋给start,如果start为非零值,则表示启动扫频;如果start为0,则系统继续保持等待状态。

5.5ADC中断模块

在ADC中断服务子程序中,将完成程序的核心工作,包括信号幅度的计算、将计算结果通过SCI传送给上位机、扫频信号频率的变换以及滤波器的选择控制等。

程序流程图如图16所示。

图16ADC中断服务子程序流程图

进入ADC中断服务子程序后,首先将ADC转换结果缓冲寄存器ADCRESULT0、ADCRESULT1中的数据分别读取到指定的存储单元adcina0[index]和adcinb0[index]中,然后数组下标index加1,以保存下一次转换结果。

如果此时index为16,则表示当前频率下已采够足够点的数据,转而进行信号幅度的计算。

由于信号幅值是0~3V之间的浮点值,而TMS320F2808是定点运算处理器,为了提高运算效率,利用TI公司提供的IQmath程序库中的相关函数进行运算,这样浮点运算就转换成速度快得多的整数运算。

其主要计算代码为:

voidcomputation(void)

{

_iqA1,A2,A,B,S;//使用IQmath中IQ格式的变量

intn;

//A0通道采集信号的幅值计算

for(n=0;n<16;n++)

{

//将采样值转换成相应的IQ格式

adcvalue[n]=_IQ(adcina0[n]*3.0/4096);

}

//实部运算

A1=0;

for(n=0;n<16;n++)

{

A1+=_IQmpy(adcvalue[n],cos_table[n]);

}

//虚部运算

A2=0;

for(n=0;n<16;n++)

{

A2+=_IQmpy(adcvalue[n],sin_table[n]);

}

//求复数的幅值

A=_IQmag(A1,A2);

//B0通道采集信号的幅值计算

for(n=0;n<16;n++)

{

adcvalue[n]=_IQ(adcinb0[n]*3.0/4096);

}

//实部运算

A1=0;

for(n=0;n<16;n++)

{

A1+=_IQmpy(adcvalue[n],cos_table[n]);

}

//虚部运算

A2=0;

for(n=0;n<16;n++)

{

A2+=_IQmpy(adcvalue[n],sin_table[n]);

}

B=_IQmag(A1,A2);

//将由两个通道计算出的值求平均

S=(A+B)/2;

//将S转换成浮点数后再放大一定的倍数,以便于SCI传送

ampvalue=(unsignedint)(_IQtoF(S)*64);

计算结束后,将结果和当前扫频信号的频率通过SCI发送给上位机,并将index复位为0。

如果当前扫频信号的频率大于20KHz,则置start=0,结束扫频。

系统将处于待机状态,直至接收到上位机重新发给的扫频指令。

否则,通过更改ePWM相应设置,并选择合适的低通滤波器,产生下一扫频信号,具体程序流程图如图17所示。

在所有工作完成后,复位序列发生器SEQ1,清除SEQ1中断标志位INT_SEQ1,清零PIEACK中的第1组中断对应位,以响应下一次中断。

前面已经分析过,在系统使用100MHz产生PWM波时,随着扫频信号频率的增加,步进频率不能达到1Hz。

为了避免出现前后两个扫频信号的频率相同,使用while循环来进行判断和修改。

首先每次将计算得的ePWM1

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1