賈明娜 呂攀 王瑋
摘 要:介紹了一種基于TMS320F2812的音頻頻率掃頻儀的設(shè)計方法,對各模塊的設(shè)計原理進(jìn)行了介紹,詳細(xì)分析了掃頻信號發(fā)生模塊中SGEN軟件模塊的工作原理和使用方法,并給出了整個系統(tǒng)的軟件設(shè)計流程。通過某帶阻網(wǎng)絡(luò)對系統(tǒng)的測試表明,設(shè)計的音頻掃頻儀具有準(zhǔn)確度高、靈活性高、實時性強(qiáng)和成本低的特點,可完全滿足一般應(yīng)用需要。
關(guān)鍵詞:DSP;掃頻儀;SGEN;SPWM
中圖分類號:TM935.1 文獻(xiàn)標(biāo)識碼:A DOI:10.15913/j.cnki.kjycx.2015.08.008
在電子測量中,經(jīng)常要對某未知網(wǎng)絡(luò)的傳輸特性,特別是對網(wǎng)絡(luò)幅頻特性進(jìn)行測量。掃頻儀是完成該工作的主要工具,目前的掃頻儀大多使用基于DDS技術(shù)的專用芯片實現(xiàn)掃頻信號的發(fā)生和利用峰峰值檢測電路對信號進(jìn)行檢測。該方法輸出的掃頻信號具有頻率分辨率高、輸出頻點多和頻率切換速度快等優(yōu)點,但基于該技術(shù)的產(chǎn)品硬件較復(fù)雜、成本較高、靈活性較差。本文提出了一種基于DSP芯片的全新的掃頻儀設(shè)計方案,使用TI公司的TMS320F2812(以下簡稱F2812)實現(xiàn)了音頻范圍(20~20 k)的數(shù)字掃頻儀設(shè)計。用C28x的SGEN軟件模塊設(shè)計掃頻信號源,掃頻信號經(jīng)過待測網(wǎng)絡(luò)后,再利用F2812的片上AD模塊對掃頻信號采樣,同時,利用F2812強(qiáng)大的數(shù)字處理能力對采樣信號進(jìn)行實時處理,最后通過F2812的SCI接口將處理后的數(shù)據(jù)發(fā)送給上位機(jī),由上位機(jī)實時顯示被測網(wǎng)絡(luò)的幅頻特性曲線?;贒SP的設(shè)計方法,使本設(shè)計幾乎成為一個單芯片硬件平臺。本文設(shè)計的掃頻儀可測量未知網(wǎng)絡(luò)音頻范圍的幅頻特性,除具有基于DDS技術(shù)的掃頻儀的優(yōu)點外,還具有精度高、靈活性高、硬件簡單和成本低的特點。
1 TMS320F2812處理器
TMS320F2812是TI公司推出的功能強(qiáng)大的32位定點DSP芯片,既具有強(qiáng)大的數(shù)字信號處理能力,又有強(qiáng)大的事件管理能力和嵌入式控制功能,特別適用于大批量數(shù)據(jù)處理的測控場合。TMS320F2812的主頻最高達(dá)150 MHz,采用改進(jìn)型的哈佛結(jié)構(gòu),運行于四級流水線方式,具有強(qiáng)大的數(shù)據(jù)處理能力;芯片內(nèi)部集成了大量的SRAM、ROM和Flash等存儲器。此外,芯片還集成了大量的外設(shè)接口模塊,比如兩個事件管理器模塊EVA和EVB、AD、同步串口SPI、異步串口SCI和多通道緩沖口McBSP等。利用該芯片開發(fā)的測控系統(tǒng)可極大地減少外圍電路設(shè)計和降低系統(tǒng)成本。
2 系統(tǒng)設(shè)計原理
系統(tǒng)設(shè)計原理如圖1所示。
圖1 系統(tǒng)功能框圖
如圖1所示,系統(tǒng)由掃頻信號發(fā)生模塊、信號接收處理模塊和通信顯示模塊三部分構(gòu)成。掃頻信號發(fā)生模塊用來產(chǎn)生頻率在20~20 k,幅值為0~3 V的正弦信號,該模塊在收到通信顯示模塊中上位機(jī)部分發(fā)來的“啟動掃頻”命令后開始工作,具體產(chǎn)生的掃頻頻率點根據(jù)通信顯示模塊設(shè)置的“掃頻步進(jìn)”決定。
掃頻信號經(jīng)過待測網(wǎng)絡(luò)后,不同頻點的信號會有不同程度的衰減。此時,可利用信號接收處理模塊對各頻點信號的衰減程度進(jìn)行測試。該模塊首先用F2812的ADC對各頻點信號采樣,并計算出各頻點采樣信號的峰峰值。為了提高系統(tǒng)測量的精確度,采用多次測量取平均值的方式減小噪聲的影響,提高信噪比。測量次數(shù)由通信顯示模塊中上位機(jī)軟件設(shè)置。
信號接收處理模塊將各頻點的峰峰值計算完畢后,將該數(shù)據(jù)發(fā)送給通信顯示模塊。通信顯示模塊包括F2812上的SCI通信部分和上位機(jī)軟件兩部分。F2812的SCI通信部分通過SCI接口將當(dāng)前掃頻信號的頻點值和經(jīng)過待測網(wǎng)絡(luò)后的峰峰值發(fā)送給上位機(jī)。上位機(jī)軟件接收各頻點的數(shù)據(jù)和峰峰值數(shù)據(jù),并實時顯示待測網(wǎng)絡(luò)的幅頻特性曲線。
2.1 掃頻信號發(fā)生模塊設(shè)計
本模塊使用SPWM方法,先用EVA的通用定時器產(chǎn)生頻率為1 MHz的PWM波作為載波,再利用SGEN模塊產(chǎn)生正弦數(shù)據(jù)對載波的占空比進(jìn)行控制,由此產(chǎn)生SPWM波形,最后將SPWM信號通過截止頻率可調(diào)的低通濾波器得到20~20 kHz的標(biāo)準(zhǔn)穩(wěn)定正弦信號。
PWM載波使用EVA的通用定時器1產(chǎn)生,如圖2所示,設(shè)置定時器為“連續(xù)增”模式,定時器1的計數(shù)器T1CNT從0開始遞增計數(shù),當(dāng)T1CNT與設(shè)定的比較寄存器值T1CMP匹配時,相應(yīng)的輸出引腳發(fā)生電平跳變;當(dāng)T1CNT計數(shù)增加到與周期寄存器T1PR匹配時,則發(fā)生第二次電平跳變。因此,通過設(shè)置T1PR可控制PWM波的頻率和設(shè)置T1CMPR,可控制每個PWM載波的占空比,并由此輸出幅值固定、寬度可變的脈沖信號。
圖2 用EVA的通用定時器1產(chǎn)生的PWM載波
正弦數(shù)據(jù)使用C28x的SGEN模塊得到,利用該模塊可方便實現(xiàn)所設(shè)定頻率范圍內(nèi)的正弦信號。SGEN模塊為正弦信號的發(fā)生設(shè)計了標(biāo)準(zhǔn)THD模塊、低THD模塊和高精度模塊三個正弦信號模塊,其均使用基于256點的直接查表法得到正弦數(shù)據(jù),又各有區(qū)別。標(biāo)準(zhǔn)THD模塊使用16位的模計數(shù)器;低THD模塊使用16位的模計數(shù)器,并在直接查表法的基礎(chǔ)上使用了線性插值技術(shù);高精度模塊除了使用了線性插值技術(shù),還使用了32位的模計數(shù)器。本文使用高精度單路正弦模塊SGENHP_1實現(xiàn)20~20 kHz的單路正弦信號的生成。
使用SGENHP_1模塊產(chǎn)生的數(shù)據(jù)一部分可通過“SINTBL”段查表得到,該表包含256點的正弦數(shù)據(jù);另一部分則由模塊自身利用線性插值運算得到,插值數(shù)據(jù)生成原理如圖3所示。
x與y的關(guān)系為:
. (1)
本文使用1 MHz的PWM信號作為載波,因此,對20~20 kHz的不同信號生成每周期波形所用的數(shù)據(jù)點數(shù)由多變少,如表1所示。
表1 產(chǎn)生單周期正弦信號所用的數(shù)據(jù)點數(shù)
信號頻率/Hz 所用總點數(shù) 正弦查表點數(shù) 插值運算點數(shù)
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模塊使用模算術(shù)計數(shù)器的方法實現(xiàn)對頻率的精確控制,模算術(shù)計數(shù)器工作于遞增方式,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;
參數(shù)freq的值為0~Fmax間的頻率值,相對于Fmax的歸一化值,使用Q31定標(biāo),取值為[0,1]。其中,F(xiàn)max為設(shè)定的最
大輸出頻率,freq取值為 ;offset為直流偏移量,使用
Q15定標(biāo);gain為信號增益,使用Q15定標(biāo);step_max為設(shè)置要生成的最大信號頻率,使用Q0定標(biāo),且:
. (2)
式(2)中:Fs為模算術(shù)計數(shù)器的更新頻率。
out為最終輸出的正弦數(shù)據(jù),使用Q15定標(biāo);函數(shù)void(*calc out)(void *)使用查表和插值技術(shù)實現(xiàn)正弦數(shù)據(jù)的生成。
SGENHP_1模塊設(shè)置完畢后,每調(diào)用一次calc函數(shù),模算術(shù)計數(shù)器的計數(shù)值則按照特定的步進(jìn)增加一次,而函數(shù)會將此時用查表或線性插值法得到的正弦數(shù)據(jù)輸出到out,當(dāng)計數(shù)器達(dá)到溢出值232時,一個周期的正弦數(shù)據(jù)輸出完畢,即一周期的正弦信號發(fā)生完畢。通常對calc函數(shù)的調(diào)用是在中斷子程序中完成的。由此可見,計數(shù)器的溢出時間由中斷子程序的調(diào)用頻率和計數(shù)器的遞增步進(jìn)決定,即溢出時間為:
. (3)
式(3)中:T為溢出時間;step為計數(shù)器的遞增步進(jìn)。
所產(chǎn)生信號的頻率為溢出時間的倒數(shù),即:
. (4)
溢出后計數(shù)器從0開始重新計數(shù),從而產(chǎn)生周期信號。
模算術(shù)計數(shù)器計數(shù)步進(jìn)的設(shè)置要通過對freq的設(shè)置間接實現(xiàn),因此,通過修改freq,可控制[0,F(xiàn)max]間任意頻率的正弦信號的發(fā)生。
為了產(chǎn)生1 MHz的PWM載波,設(shè)置定時器1每1 us產(chǎn)生一次定時中斷,即TISR=1 us,F(xiàn)s=106 Hz,在中斷子程序中調(diào)用calc函數(shù)。要想產(chǎn)生20~20 kHz的信號,即Fmax=20 kHz,則:
. (5)
由此可見,本設(shè)計的頻率分辨率為 ≤1 Hz,從而達(dá)到
高頻率分辨率的要求。
通用定時器1每發(fā)生一次定時中斷,在中斷服務(wù)子程序中會將SGENHP_1模塊得到的正弦數(shù)據(jù)更新到比較寄存器T1CMP中,即由每個區(qū)間開始端的正弦值決定當(dāng)前PWM載波的占空比,由此生成SPWM波。
SPWM信號經(jīng)過低通濾波器即可得到最終的掃頻信號。由于不同頻率的正弦信號對應(yīng)的SPWM所含諧波不同,因此,本設(shè)計未采用固定截止頻率的低通濾波器,而采用了截止頻率可動態(tài)改變的低通濾波器,使用TI的開關(guān)電容濾波器TLC04可實現(xiàn)該目的。
TLC04為四階巴特沃斯開關(guān)電容低通濾波器,采用施密特觸發(fā)器振蕩器自定時的雙電源供電。TLC04截止頻率的穩(wěn)定性只與時鐘頻率的穩(wěn)定性相關(guān),截止頻率時鐘可調(diào),可接TTL或CMOS時鐘,直流增益為0 dB,其時鐘-截止頻率比為50∶1,濾波電路如圖4所示。
圖4 基于TLC04的低通濾波電路
掃頻信號發(fā)生時,可用程序控制EVB的通用定時器3輸出特定頻率的方波作為TLC04的時鐘輸入,由此實現(xiàn)精確濾波。如圖5所示,用正弦值控制PWM載波的占空比,用低通濾波器濾除特定頻率信號的高頻諧波,最終得到標(biāo)準(zhǔn)的正弦掃頻信號,信號峰峰峰值為3 V。
圖5 SPWM及濾波后的正弦信號
2.2 信號接收處理模塊設(shè)計
經(jīng)過待測網(wǎng)絡(luò)后,掃頻信號的各頻點峰峰值會有不同程度的變化。本模塊即利用F2812的ADC模塊對各頻點信號進(jìn)行采樣,以得到數(shù)字信號,從而從采樣數(shù)據(jù)中找出各頻點對應(yīng)的峰峰值。峰峰值最終被送往通信顯示模塊,以得到最終的幅頻特性曲線。
ADC模塊具有16個采集通道,輸入信號范圍為0~3 V,最高采樣速度為12.5 Msps,采樣精度為12位,可完全滿足系統(tǒng)的設(shè)計需要。本文使用ADC模塊的單通道順序采樣模式,采樣速度設(shè)置為400 kHz。每次AD中斷時將轉(zhuǎn)換值右移4位作為無符號數(shù)進(jìn)行處理。轉(zhuǎn)換值A(chǔ)DCRESULT與模擬輸入電壓INPUT的關(guān)系為:
. (6)
僅對信號進(jìn)行單周期采樣的精度較低,特別在待測系統(tǒng)衰減較大時,系統(tǒng)信噪比也較低。可通過多周期測量求均值的辦法提高系統(tǒng)信噪比,從而提高測量精度。對同一頻率信號的采樣周期數(shù)越多,則測量精度越高。
對采樣信號中峰峰值的檢測可使用軟件方法實現(xiàn),DSP具有的數(shù)據(jù)處理能力使其不用峰峰值檢測電路也能實時實現(xiàn)。檢測出各頻點信號采樣的最大和最小值即可得到各頻點信號的峰峰值。此時,可使用Iqmath庫提高程序的執(zhí)行速度。各頻點信號峰峰值最終會被送至通信顯示模塊。
2.3 通信顯示模塊
本模塊包含F(xiàn)2812的SCI通信部分和上位機(jī)軟件部分。SCI部分接收信號接收處理模塊送來的峰峰值,并將該峰峰值與掃頻信號的頻率值發(fā)送給上位機(jī);上位機(jī)軟件部分用于對系統(tǒng)的控制和最終的結(jié)果顯示。
SCI模塊支持雙工通信,其最大波特率達(dá)12.5 M。SCI模塊的波特率要根據(jù)上位機(jī)串口的情況設(shè)置,外圍電路選用MAX232進(jìn)行電平轉(zhuǎn)換,并通過9針RS232口連接上位機(jī)。
上位機(jī)軟件采用Visual C++設(shè)計,界面如圖9所示。使用時,先根據(jù)SCI接口的配置設(shè)置串口數(shù)據(jù)格式,包括波特率、數(shù)據(jù)位、校驗位和停止位,再設(shè)置掃頻步進(jìn)和信號接收處理模塊對每個頻點的測量周期數(shù),點擊“啟動掃頻”按鈕可控制DSP按設(shè)定的參數(shù)開始掃頻。同時,上位機(jī)將SCI模塊發(fā)送來的各頻點頻率值作為橫坐標(biāo),將檢測信號峰峰值Vo與原始信號峰峰
值Vi(3 V)進(jìn)行 運算作為縱坐標(biāo),從而實時繪制被測
網(wǎng)絡(luò)的幅頻特性曲線。
3 程序總流程
系統(tǒng)程序流程如圖6所示。
圖6 系統(tǒng)程序流程圖
由圖6可見,F(xiàn)2812首先完成有關(guān)的初始化工作,包括將F2812時鐘倍頻設(shè)置為150 MHz,配置EVA的通用定時器1生成1 MHz的PWM1信號作為載波,設(shè)置ADC模塊采樣模式和采樣頻率,中斷SCI模塊進(jìn)行數(shù)據(jù)格式設(shè)置,并根據(jù)本文中PWM1載波的中斷頻率和最大掃頻信號(20 k)對SGENHP_1模塊進(jìn)行設(shè)置。當(dāng)SCI用中斷方式收到上位機(jī)發(fā)來的“啟動掃頻”命令和系統(tǒng)參數(shù)后,開啟PWM和AD中斷,根據(jù)生成的當(dāng)前頻點信號頻率對SGENHP_1模塊進(jìn)行設(shè)置,同時,根據(jù)該頻率對EVB的通用定時器3進(jìn)行相關(guān)設(shè)置,以生成PWM2作為TLC04的時鐘輸入,隨后等待所設(shè)置頻率信號的生成。
PWM1中斷發(fā)生后,在中斷處理程序中調(diào)用calc函數(shù),以更新輸出正弦值,同時,將該正弦數(shù)據(jù)更新到通用定時器1的T1CMP中,由此完成SPWM波形的產(chǎn)生。通過對PWM1脈沖軟件計數(shù),并根據(jù)PWM1頻率和當(dāng)前頻點信號頻率算出的脈沖數(shù)可判斷一個周期的信號是否生成,同時,可判斷系統(tǒng)設(shè)定的信號周期數(shù)是否生成完畢。當(dāng)前頻點信號生成完畢后,根據(jù)要求的步進(jìn)值計算下一個頻點頻率值,從而重新設(shè)置SGENHP_1模塊的有關(guān)參數(shù),以產(chǎn)生新的頻點信號。當(dāng)頻點到達(dá)20 kHz時,關(guān)閉PWM1和AD中斷,停止掃頻信號發(fā)生。
AD采樣中斷完成對各頻點信號的采樣,對當(dāng)前頻點信號的設(shè)定周期數(shù)采樣完畢后,先計算各周期信號對應(yīng)采樣點的平均值,再找出最大和最小值以計算峰峰值,最后通過SCI接口將該峰峰值和對應(yīng)的頻點值發(fā)送至上位機(jī)。
4 系統(tǒng)測試
測試用帶阻網(wǎng)絡(luò)如圖7所示。
圖7 測試用帶阻網(wǎng)絡(luò)
使用圖7所示的Sallen_Key結(jié)構(gòu)的二階有源帶阻網(wǎng)絡(luò)進(jìn)行測試,有源運放使用OPA363。SIN_IN為掃頻信號輸入端,SIN_OUT為掃頻信號輸出端。
利用信號發(fā)生器輸出峰峰值為3 V的特定頻點信號輸入帶阻網(wǎng)絡(luò)測試,用示波器對網(wǎng)絡(luò)輸出進(jìn)行測試,3次測量取平均值后,得到該網(wǎng)絡(luò)的幅頻特性,如圖8所示。
圖8 示波器實測帶阻網(wǎng)絡(luò)幅頻特性
使用本文方法的測試結(jié)果如圖9所示。掃頻步進(jìn)設(shè)置為10,各頻點測量次數(shù)設(shè)置為3.對比圖8與圖9可知,用示波器實測和利用本系統(tǒng)實測的帶阻網(wǎng)絡(luò)中心頻率均為10.9 kHz。由此可
見,本系統(tǒng)對測試網(wǎng)絡(luò)陷波中心頻率的測量無誤。此外,帶阻網(wǎng)絡(luò)的理想最大衰減為 ,圖8中受示波器觀察誤差和精度的影響,測得的最大衰減值為31.5 dB,而用本系統(tǒng)測得的最大衰減值為64 dB。因此,本系統(tǒng)對該參數(shù)的測量要優(yōu)于信號發(fā)生器和示波器的測量結(jié)果。
圖9 上位機(jī)顯示的被測網(wǎng)絡(luò)幅頻特性
5 結(jié)束語
本文從系統(tǒng)設(shè)計的角度出發(fā),介紹了一種基于F2812的音頻頻率掃頻儀的設(shè)計方法。本文中設(shè)計的掃頻儀可測量未知網(wǎng)絡(luò)音頻范圍的幅頻特性。該系統(tǒng)小巧、靈活、成本低,具有實時性強(qiáng)、精度高等特點。此外,該系統(tǒng)還具有良好的可擴(kuò)展性,關(guān)鍵系統(tǒng)參數(shù)軟件可調(diào),并可通過算法設(shè)計實現(xiàn)相頻特性的測量,用戶可通過上位機(jī)界面方便、靈活地控制整個系統(tǒng),查看數(shù)據(jù)和觀察測試曲線,并可進(jìn)一步處理數(shù)據(jù),比如計算網(wǎng)絡(luò)的Q值、阻帶寬度和文件操作等。本系統(tǒng)可作掃頻儀器的通用平臺,利用該設(shè)計框架可設(shè)計功能更強(qiáng)、應(yīng)用面更廣的儀器,具有很廣的應(yīng)用前景。
參考文獻(xiàn)
[1]毛敏.新型直接數(shù)字合成式掃頻儀的原理和研制[J].儀器儀表學(xué)報,2004(04).
[2]蘇奎峰.TMS320F2812原理與開發(fā)[M].北京:電子工業(yè)出版社,2005.
[3]欒天.基于DSP的三相SPWM波形設(shè)計及實現(xiàn)[J].通信電源技術(shù),2010(05).
[4]余圣發(fā).單片機(jī)開關(guān)電容濾波器TLC04原理與應(yīng)用[J].國外電子元器件,1998(06).
————————
作者簡介:賈明娜(1968—),女,畢業(yè)于西安交通大學(xué),現(xiàn)工作于山東科匯電力自動化股份有限公司,高工,研究方向為嵌入式系統(tǒng)設(shè)計和配電自動化。
〔編輯:張思楠〕