一种基于DSP的音频扫频仪设计

2015-05-06 22:27贾明娜吕攀王玮
科技与创新 2015年8期

贾明娜 吕攀 王玮

摘 要:介绍了一种基于TMS320F2812的音频频率扫频仪的设计方法,对各模块的设计原理进行了介绍,详细分析了扫频信号发生模块中SGEN软件模块的工作原理和使用方法,并给出了整个系统的软件设计流程。通过某带阻网络对系统的测试表明,设计的音频扫频仪具有准确度高、灵活性高、实时性强和成本低的特点,可完全满足一般应用需要。

关键词:DSP;扫频仪;SGEN;SPWM

中图分类号:TM935.1 文献标识码:A DOI:10.15913/j.cnki.kjycx.2015.08.008

在电子测量中,经常要对某未知网络的传输特性,特别是对网络幅频特性进行测量。扫频仪是完成该工作的主要工具,目前的扫频仪大多使用基于DDS技术的专用芯片实现扫频信号的发生和利用峰峰值检测电路对信号进行检测。该方法输出的扫频信号具有频率分辨率高、输出频点多和频率切换速度快等优点,但基于该技术的产品硬件较复杂、成本较高、灵活性较差。本文提出了一种基于DSP芯片的全新的扫频仪设计方案,使用TI公司的TMS320F2812(以下简称F2812)实现了音频范围(20~20 k)的数字扫频仪设计。用C28x的SGEN软件模块设计扫频信号源,扫频信号经过待测网络后,再利用F2812的片上AD模块对扫频信号采样,同时,利用F2812强大的数字处理能力对采样信号进行实时处理,最后通过F2812的SCI接口将处理后的数据发送给上位机,由上位机实时显示被测网络的幅频特性曲线。基于DSP的设计方法,使本设计几乎成为一个单芯片硬件平台。本文设计的扫频仪可测量未知网络音频范围的幅频特性,除具有基于DDS技术的扫频仪的优点外,还具有精度高、灵活性高、硬件简单和成本低的特点。

1 TMS320F2812处理器

TMS320F2812是TI公司推出的功能强大的32位定点DSP芯片,既具有强大的数字信号处理能力,又有强大的事件管理能力和嵌入式控制功能,特别适用于大批量数据处理的测控场合。TMS320F2812的主频最高达150 MHz,采用改进型的哈佛结构,运行于四级流水线方式,具有强大的数据处理能力;芯片内部集成了大量的SRAM、ROM和Flash等存储器。此外,芯片还集成了大量的外设接口模块,比如两个事件管理器模块EVA和EVB、AD、同步串口SPI、异步串口SCI和多通道缓冲口McBSP等。利用该芯片开发的测控系统可极大地减少外围电路设计和降低系统成本。

2 系统设计原理

系统设计原理如图1所示。

图1 系统功能框图

如图1所示,系统由扫频信号发生模块、信号接收处理模块和通信显示模块三部分构成。扫频信号发生模块用来产生频率在20~20 k,幅值为0~3 V的正弦信号,该模块在收到通信显示模块中上位机部分发来的“启动扫频”命令后开始工作,具体产生的扫频频率点根据通信显示模块设置的“扫频步进”决定。

扫频信号经过待测网络后,不同频点的信号会有不同程度的衰减。此时,可利用信号接收处理模块对各频点信号的衰减程度进行测试。该模块首先用F2812的ADC对各频点信号采样,并计算出各频点采样信号的峰峰值。为了提高系统测量的精确度,采用多次测量取平均值的方式减小噪声的影响,提高信噪比。测量次数由通信显示模块中上位机软件设置。

信号接收处理模块将各频点的峰峰值计算完毕后,将该数据发送给通信显示模块。通信显示模块包括F2812上的SCI通信部分和上位机软件两部分。F2812的SCI通信部分通过SCI接口将当前扫频信号的频点值和经过待测网络后的峰峰值发送给上位机。上位机软件接收各频点的数据和峰峰值数据,并实时显示待测网络的幅频特性曲线。

2.1 扫频信号发生模块设计

本模块使用SPWM方法,先用EVA的通用定时器产生频率为1 MHz的PWM波作为载波,再利用SGEN模块产生正弦数据对载波的占空比进行控制,由此产生SPWM波形,最后将SPWM信号通过截止频率可调的低通滤波器得到20~20 kHz的标准稳定正弦信号。

PWM载波使用EVA的通用定时器1产生,如图2所示,设置定时器为“连续增”模式,定时器1的计数器T1CNT从0开始递增计数,当T1CNT与设定的比较寄存器值T1CMP匹配时,相应的输出引脚发生电平跳变;当T1CNT计数增加到与周期寄存器T1PR匹配时,则发生第二次电平跳变。因此,通过设置T1PR可控制PWM波的频率和设置T1CMPR,可控制每个PWM载波的占空比,并由此输出幅值固定、宽度可变的脉冲信号。

图2 用EVA的通用定时器1产生的PWM载波

正弦数据使用C28x的SGEN模块得到,利用该模块可方便实现所设定频率范围内的正弦信号。SGEN模块为正弦信号的发生设计了标准THD模块、低THD模块和高精度模块三个正弦信号模块,其均使用基于256点的直接查表法得到正弦数据,又各有区别。标准THD模块使用16位的模计数器;低THD模块使用16位的模计数器,并在直接查表法的基础上使用了线性插值技术;高精度模块除了使用了线性插值技术,还使用了32位的模计数器。本文使用高精度单路正弦模块SGENHP_1实现20~20 kHz的单路正弦信号的生成。

使用SGENHP_1模块产生的数据一部分可通过“SINTBL”段查表得到,该表包含256点的正弦数据;另一部分则由模块自身利用线性插值运算得到,插值数据生成原理如图3所示。

x与y的关系为:

. (1)

本文使用1 MHz的PWM信号作为载波,因此,对20~20 kHz的不同信号生成每周期波形所用的数据点数由多变少,如表1所示。

表1 产生单周期正弦信号所用的数据点数

信号频率/Hz 所用总点数 正弦查表点数 插值运算点数

20 50 000 256 49 744

500 2 000 256 1 744

1 k 1 000 256 744

10 k 100 100 0

20 k 50 50 0

SGENHP_1模块使用模算术计数器的方法实现对频率的精确控制,模算术计数器工作于递增方式,SGENHP_1定义如下:

typedef struct

{

unsigned int freq;

unsigned int step_max;

unsigned int alpha;

int gain;

int offset;

int out;

void (*calc)(void *);

} SGENT_1;

参数freq的值为0~Fmax间的频率值,相对于Fmax的归一化值,使用Q31定标,取值为[0,1]。其中,Fmax为设定的最

大输出频率,freq取值为 ;offset为直流偏移量,使用

Q15定标;gain为信号增益,使用Q15定标;step_max为设置要生成的最大信号频率,使用Q0定标,且:

. (2)

式(2)中:Fs为模算术计数器的更新频率。

out为最终输出的正弦数据,使用Q15定标;函数void(*calc out)(void *)使用查表和插值技术实现正弦数据的生成。

SGENHP_1模块设置完毕后,每调用一次calc函数,模算术计数器的计数值则按照特定的步进增加一次,而函数会将此时用查表或线性插值法得到的正弦数据输出到out,当计数器达到溢出值232时,一个周期的正弦数据输出完毕,即一周期的正弦信号发生完毕。通常对calc函数的调用是在中断子程序中完成的。由此可见,计数器的溢出时间由中断子程序的调用频率和计数器的递增步进决定,即溢出时间为:

. (3)

式(3)中:T为溢出时间;step为计数器的递增步进。

所产生信号的频率为溢出时间的倒数,即:

. (4)

溢出后计数器从0开始重新计数,从而产生周期信号。

模算术计数器计数步进的设置要通过对freq的设置间接实现,因此,通过修改freq,可控制[0,Fmax]间任意频率的正弦信号的发生。

为了产生1 MHz的PWM载波,设置定时器1每1 us产生一次定时中断,即TISR=1 us,Fs=106 Hz,在中断子程序中调用calc函数。要想产生20~20 kHz的信号,即Fmax=20 kHz,则:

. (5)

由此可见,本设计的频率分辨率为 ≤1 Hz,从而达到

高频率分辨率的要求。

通用定时器1每发生一次定时中断,在中断服务子程序中会将SGENHP_1模块得到的正弦数据更新到比较寄存器T1CMP中,即由每个区间开始端的正弦值决定当前PWM载波的占空比,由此生成SPWM波。

SPWM信号经过低通滤波器即可得到最终的扫频信号。由于不同频率的正弦信号对应的SPWM所含谐波不同,因此,本设计未采用固定截止频率的低通滤波器,而采用了截止频率可动态改变的低通滤波器,使用TI的开关电容滤波器TLC04可实现该目的。

TLC04为四阶巴特沃斯开关电容低通滤波器,采用施密特触发器振荡器自定时的双电源供电。TLC04截止频率的稳定性只与时钟频率的稳定性相关,截止频率时钟可调,可接TTL或CMOS时钟,直流增益为0 dB,其时钟-截止频率比为50∶1,滤波电路如图4所示。

图4 基于TLC04的低通滤波电路

扫频信号发生时,可用程序控制EVB的通用定时器3输出特定频率的方波作为TLC04的时钟输入,由此实现精确滤波。如图5所示,用正弦值控制PWM载波的占空比,用低通滤波器滤除特定频率信号的高频谐波,最终得到标准的正弦扫频信号,信号峰峰峰值为3 V。

图5 SPWM及滤波后的正弦信号

2.2 信号接收处理模块设计

经过待测网络后,扫频信号的各频点峰峰值会有不同程度的变化。本模块即利用F2812的ADC模块对各频点信号进行采样,以得到数字信号,从而从采样数据中找出各频点对应的峰峰值。峰峰值最终被送往通信显示模块,以得到最终的幅频特性曲线。

ADC模块具有16个采集通道,输入信号范围为0~3 V,最高采样速度为12.5 Msps,采样精度为12位,可完全满足系统的设计需要。本文使用ADC模块的单通道顺序采样模式,采样速度设置为400 kHz。每次AD中断时将转换值右移4位作为无符号数进行处理。转换值ADCRESULT与模拟输入电压INPUT的关系为:

. (6)

仅对信号进行单周期采样的精度较低,特别在待测系统衰减较大时,系统信噪比也较低。可通过多周期测量求均值的办法提高系统信噪比,从而提高测量精度。对同一频率信号的采样周期数越多,则测量精度越高。

对采样信号中峰峰值的检测可使用软件方法实现,DSP具有的数据处理能力使其不用峰峰值检测电路也能实时实现。检测出各频点信号采样的最大和最小值即可得到各频点信号的峰峰值。此时,可使用Iqmath库提高程序的执行速度。各频点信号峰峰值最终会被送至通信显示模块。

2.3 通信显示模块

本模块包含F2812的SCI通信部分和上位机软件部分。SCI部分接收信号接收处理模块送来的峰峰值,并将该峰峰值与扫频信号的频率值发送给上位机;上位机软件部分用于对系统的控制和最终的结果显示。

SCI模块支持双工通信,其最大波特率达12.5 M。SCI模块的波特率要根据上位机串口的情况设置,外围电路选用MAX232进行电平转换,并通过9针RS232口连接上位机。

上位机软件采用Visual C++设计,界面如图9所示。使用时,先根据SCI接口的配置设置串口数据格式,包括波特率、数据位、校验位和停止位,再设置扫频步进和信号接收处理模块对每个频点的测量周期数,点击“启动扫频”按钮可控制DSP按设定的参数开始扫频。同时,上位机将SCI模块发送来的各频点频率值作为横坐标,将检测信号峰峰值Vo与原始信号峰峰

值Vi(3 V)进行 运算作为纵坐标,从而实时绘制被测

网络的幅频特性曲线。

3 程序总流程

系统程序流程如图6所示。

图6 系统程序流程图

由图6可见,F2812首先完成有关的初始化工作,包括将F2812时钟倍频设置为150 MHz,配置EVA的通用定时器1生成1 MHz的PWM1信号作为载波,设置ADC模块采样模式和采样频率,中断SCI模块进行数据格式设置,并根据本文中PWM1载波的中断频率和最大扫频信号(20 k)对SGENHP_1模块进行设置。当SCI用中断方式收到上位机发来的“启动扫频”命令和系统参数后,开启PWM和AD中断,根据生成的当前频点信号频率对SGENHP_1模块进行设置,同时,根据该频率对EVB的通用定时器3进行相关设置,以生成PWM2作为TLC04的时钟输入,随后等待所设置频率信号的生成。

PWM1中断发生后,在中断处理程序中调用calc函数,以更新输出正弦值,同时,将该正弦数据更新到通用定时器1的T1CMP中,由此完成SPWM波形的产生。通过对PWM1脉冲软件计数,并根据PWM1频率和当前频点信号频率算出的脉冲数可判断一个周期的信号是否生成,同时,可判断系统设定的信号周期数是否生成完毕。当前频点信号生成完毕后,根据要求的步进值计算下一个频点频率值,从而重新设置SGENHP_1模块的有关参数,以产生新的频点信号。当频点到达20 kHz时,关闭PWM1和AD中断,停止扫频信号发生。

AD采样中断完成对各频点信号的采样,对当前频点信号的设定周期数采样完毕后,先计算各周期信号对应采样点的平均值,再找出最大和最小值以计算峰峰值,最后通过SCI接口将该峰峰值和对应的频点值发送至上位机。

4 系统测试

测试用带阻网络如图7所示。

图7 测试用带阻网络

使用图7所示的Sallen_Key结构的二阶有源带阻网络进行测试,有源运放使用OPA363。SIN_IN为扫频信号输入端,SIN_OUT为扫频信号输出端。

利用信号发生器输出峰峰值为3 V的特定频点信号输入带阻网络测试,用示波器对网络输出进行测试,3次测量取平均值后,得到该网络的幅频特性,如图8所示。

图8 示波器实测带阻网络幅频特性

使用本文方法的测试结果如图9所示。扫频步进设置为10,各频点测量次数设置为3.对比图8与图9可知,用示波器实测和利用本系统实测的带阻网络中心频率均为10.9 kHz。由此可

见,本系统对测试网络陷波中心频率的测量无误。此外,带阻网络的理想最大衰减为 ,图8中受示波器观察误差和精度的影响,测得的最大衰减值为31.5 dB,而用本系统测得的最大衰减值为64 dB。因此,本系统对该参数的测量要优于信号发生器和示波器的测量结果。

图9 上位机显示的被测网络幅频特性

5 结束语

本文从系统设计的角度出发,介绍了一种基于F2812的音频频率扫频仪的设计方法。本文中设计的扫频仪可测量未知网络音频范围的幅频特性。该系统小巧、灵活、成本低,具有实时性强、精度高等特点。此外,该系统还具有良好的可扩展性,关键系统参数软件可调,并可通过算法设计实现相频特性的测量,用户可通过上位机界面方便、灵活地控制整个系统,查看数据和观察测试曲线,并可进一步处理数据,比如计算网络的Q值、阻带宽度和文件操作等。本系统可作扫频仪器的通用平台,利用该设计框架可设计功能更强、应用面更广的仪器,具有很广的应用前景。

参考文献

[1]毛敏.新型直接数字合成式扫频仪的原理和研制[J].仪器仪表学报,2004(04).

[2]苏奎峰.TMS320F2812原理与开发[M].北京:电子工业出版社,2005.

[3]栾天.基于DSP的三相SPWM波形设计及实现[J].通信电源技术,2010(05).

[4]余圣发.单片机开关电容滤波器TLC04原理与应用[J].国外电子元器件,1998(06).

————————

作者简介:贾明娜(1968—),女,毕业于西安交通大学,现工作于山东科汇电力自动化股份有限公司,高工,研究方向为嵌入式系统设计和配电自动化。

〔编辑:张思楠〕