董寶玉 薛嚴冰 馬 馳 盛 虎
(大連交通大學電氣信息學院,遼寧 大連 116028)
頻率特性測試儀是一種測試網絡或者電路的頻率特性的儀器,又稱掃頻儀,它是現代電子測量領域的一種重要工具,可以用來測量信號傳輸網絡、信號放大電路及濾波電路等雙端口網絡的幅頻特性與相頻特性[1],在工程領域有著非常廣泛的應用。而在傳統的掃頻儀設計方法中,被測網絡幅頻特性與相頻特性的獲取,需要通過不同的電路模塊分別進行峰值檢測與相位差測量[2],導致其系統由多個模塊構成,電路復雜且體積較大。隨著現代電子技術的飛速發展,頻率特性測試儀作為一種重要的測量儀器,其設計理念也在不斷地革新,筆者采用零中頻正交解調技術進行頻率
特性測試儀的設計,符合小型化、數字化、低功耗的現代儀表設計發展方向,本設計中采用直接頻率合成(DDS)芯片AD9854產生正交掃頻信號,并以低功耗單片機STM32作為任務控制與數據處理的核心部件。設計的頻率特性測試儀掃頻范圍為1~50MHz,幅度測量精度小于1dB,相位測量精度小于5°,能夠預置測量范圍和步進頻率值,并在320×240彩色液晶屏上顯示被測網絡的頻率特性曲線。
該頻率特性測試儀的設計基于零中頻正交解調原理,系統的總體結構如圖1所示。

圖1 系統總體結構
設計采用DDS集成芯片AD9854產生正交掃頻信號,該芯片內部整合了兩路高速、高性能正交D/A轉換器,通過數字化編程即可輸出I、Q兩路合成信號[3]。將這兩路信號分別通過七階橢圓低通濾波器LBP1進行整形,然后通過放大隔直電路,獲得幅度滿足要求的正交信號,再對被測雙端口網絡進行基于正交解調原理的掃頻測量。
設通過放大隔直電路后,該正交信號的同相分量uI=A1cosωt,正交分量uQ=A1sinωt。設被測網絡的電壓轉移函數A(ω)=Av(ω)ejφ(ω),那么同相分量uI通過被測網絡后獲得的穩態響應電壓
u=A(ω)A1cos[ωt+φ(ω)]。
假設模擬乘法器增益系數為K,則經過模擬乘法器后,同相分量支路的輸出為:
uI=KA1cosωt·Av(ω)A1cos[ωt+φ(ω)]
(1)
正交分量支路的輸出為:
uQ=KA1sinωt·Av(ω)A1cos[ωt+φ(ω)]
(2)
經低通濾波器LBP2,濾掉各支路信號中的和頻分量,假設低通濾波器的通帶內增益為B,則濾波后同相分量與正交分量分別為:
(3)
(4)
I、Q兩路信號經ADC采樣后,在STM32中進行數據處理,通過計算可得相移與電壓增益分別為:
(5)
(6)
設計中使乘法器增益系數K、正交信號振幅的平方A12與低通濾波LBP2通帶內增益B三者之積為2,可以很方便地計算出Av。針對點頻輸入信號,利用式(5)、(6)可以獲得該頻率信號通過被測網絡的電壓增益和相移,而針對掃頻輸入信號,則可以獲得被測網絡的幅頻特性和相頻特性曲線。
圖1中加法電路的作用是進行電平調整,為后續的ADC數據采集提供合適的信號電壓,本設計采用STM32片內ADC進行模/數轉換,其電壓測量范圍為0.0~3.3V。I、Q兩支路信號通過模擬乘法器和低通濾波后,獲得信號電壓的范圍為-1.0~+1.0V,因此需經加法電路抬高其電平,使其滿足采樣要求。AD轉換后,應用STM32對數據進行處理,并通過LCD顯示幅頻和相頻特性。
采用數字頻率合成芯片AD9854產生掃頻信號,該芯片在高穩定度時鐘的驅動下,可產生頻率、相位、幅度可編程的正、余弦信號,其允許輸出的信號頻率高達150MHz[4]。筆者對AD9854外圍電路的設計如圖2所示。AD9854的參考時鐘引腳69連接30MHz有源晶振,通過程序設置片內鎖相環,對其進行10倍頻,可獲得300MHz的系統時鐘。

圖2 正交掃頻信號產生電路
AD9854芯片內部帶有兩個高速的正交DAC,可同時輸出I、Q兩路正交信號,兩DAC輸出通過相位補償互相影響,保持90°的相位差。AD9854的I、Q兩路DAC滿量程輸出電流的幅度由第56引腳連接的電阻RSET控制[5],RSET的阻值計算公式如下:
RSET=39.3/IOUT
(7)
其中,IOUT為DAC滿量程輸出電流的振幅,該參數需合理設置,以使正交DAC獲得最佳的窄帶無雜散動態范圍。本設計中RSET電阻取3.9kΩ,則IOUT為10mA。圖2中,I、Q兩路連接輸出電阻R5、R6均為50Ω,則DDS輸出最大電壓幅值為500mV。
I、Q兩路DAC的正交信號輸出端IOUT1、IOUT2需接低通濾波器,筆者設計了七階橢圓低通濾波器,該濾波器過渡帶下降迅速,其截止頻率為100MHz,通帶波紋則為0.05dB,阻帶最小衰減為50dB。該橢圓濾波器主要用于平滑信號,同時濾除高頻干擾和DDS諧波雜散信號。
采用低功耗單片機STM32F103作為任務控制核心,其與AD9854的接口電路如圖3所示。STM32F103是一款基于ARM CortexTM-M3內核的32位標準RISC處理器[6],具有32位硬件除法器和單周期乘法器,具有強大的數據處理和運算能力,滿足本設計中關于數據處理部分的要求。且其I/O端口豐富,還具有3個12位的ADC,便于數據采集[7]。同時該芯片采用3.3V單電源供電,可直接對AD9854的引腳進行讀/寫操作,無需額外的電平轉換電路,簡化了硬件設計。

圖3 STM32與AD9854的硬件連接
STM32F103與AD9854之間采用并行通信方式,AD9854的八位雙向并行編程數據輸入端口D[7:0]與STM32F103的PC口低8位相接,AD9854的六位并行地址總線輸入引腳A[5:0]與STM32F103的PC[13:8]相接。AD9854內部設有40個8位寄存器,地址范圍為00H~27H,用于存儲控制字與狀態字。通過向這些內部寄存器寫入數據,可以實現對AD9854的工作控制,包括工作模式、輸出信號頻率、相位及幅度等。AD9854的控制字可通過STM32設定寄存器地址A[5:0]和數值D[7:0],在WR信號的下降沿和上升沿寫入。
乘法電路設計采用高速模擬乘法器AD835,它是一款完備的四象限電壓輸出模擬乘法器,3dB帶寬達到250MHz,且乘積噪聲低,其外圍電路設計如圖4所示。AD835的輸入電壓范圍為-1.0~+1.0V,具有兩個差分輸入端,分別為X1、X2和Y1、Y2,設計中將差分輸入的一端接地,另一端接乘法信號。該芯片將X、Y兩個輸入信號相乘后與Z引腳輸入電壓相加,再經放大電路,由W引腳輸出。為保證AD835乘法器的乘性系數K=1,R1、R2的接法如圖4所示。調整R2,使R1/R2=20,此時乘法器的輸出W=XY+Z,將Z端接地,只進行乘法運算,則最終輸出W=XY。設計中為了保證輸入AD835的信號X、Y滿足幅值要求并且不包含直流分量,在低通濾波器LBP1后,增加一級由超高速運放AD8009構成的同相比例放大器,并采用隔直電容去除信號中的直流分量。

圖4 模擬乘法器外圍電路
低通濾波器LBP2采用二階有源低通濾波器,該濾波器的作用是濾掉正交調制過程中產生的頻率為2ω的信號分量。設掃頻時間為TS,共掃描N個頻點,則掃描每個頻點的時間為TS/N,選取4倍時間常數,低通濾波器的截止頻率fc=4N/TS,本設計中掃頻時間TS取2s,頻點數最大取500,計算得fc為1kHz。為保證余量,設計中選取截止頻率fc=2kHz。筆者采用精密運算放大器OP27設計二階Butterworth低通濾波器,電路的拓撲結構采用Sallen-Key結構,且電壓增益為2。
系統的軟件部分主要包括系統主程序、鍵盤掃描子程序、AD9854控制子程序、模/數轉換子程序及液晶顯示子程序等。主程序首先進行系統初始化,配置STM32的GPIO端口,初始化LCD、AD9854和片內ADC,然后等待按鍵輸入,進行測量模式選擇。模/數轉換子程序對片內ADC進行配置,并實現點頻、掃頻測量數據采集存儲和多次采樣確認。液晶顯示子程序完成幅頻、相頻特性的顯示、清屏及字符顯示等功能。AD9854控制子程序完成DDS芯片工作模式選擇、正交掃頻信號頻率設置及掃頻信號振幅設置等功能。軟件主程序流程如圖5所示。

圖5 主程序流程
限于篇幅,只列出關于AD9854工作模式設置和正交信號幅度、頻率設置的部分程序代碼:
//設置AD9854工作模式選擇為single-tone,對參考時鐘進行10倍頻,由PIN20引腳外部刷新頻率
unsigned char mode1[4]={0x00,0x4A,0x00,0x60};
//默認初始頻率1MHz,頻率字FW根據公式fOUT=(fSYSCLK×FW)/2N計算得出
unsigned char freq[6]={0x00,0xDA,0x74,0x0D,0xA7,0x41};//信號頻率控制字
unsigned char signalAM1[2]={0xFf,0Xff};//信號幅度控制字
unsigned char signalAM2[2]={0XFf,0Xff};//信號幅度控制字
AD9854_Reset();
AD9854_SetSpecialWord(mode1);//設置AD9854的工作模式
AD9854_SetOutkeyI(signalAM1);//設置I支路信號振幅
AD9854_SetOutkeyQ(signalAM2);//設置Q支路信號振幅
AD9854_SetFreq1(freq);//設置正交信號頻率
AD9854_IOUpdate();//頻率刷新
其中調用的部分子程序如下:
void AD9854_SetSpecialWord(unsigned char*SWord)//向地址寄存器0x1D~0x20寫入控制字,設置AD9854的工作模式
{ unsigned char i;
unsigned char Special_addr=0x1D;
for(i=0;i<4;i++)
{WriteByte(Special_addr+i,SWord[i]);
delay_us(200);}}
void AD9854_SetFreq1(unsigned char*freq)//向地址寄存器0x04~0x09寫入頻率控制字1
{unsigned char i;
unsigned char freq_addr=0x04;
for(i=0;i<6;i++)
{ WriteByte(freq_addr+i,freq[i]);
delay_us(200);}}
筆者設計的頻率特性測試儀,可對雙端口網絡進行點頻測量和1~50MHz的掃頻測量,掃頻模式可手動預置測頻范圍和步進頻率值。其輸出結果可通過液晶顯示,系統界面友好,工作穩定。本設計基本實現了數字化,并滿足低功耗的要求。
由于掃頻測量法是一種穩態測量方法,它需要等到被測網絡輸出達到穩態后才能測量。因此本設計中并沒有設置太快的掃頻測量速度,并且在STM32發送頻率控制字與獲取ADC采樣轉換值之間進行了適當的延時。否則如果被測網絡響應建立時間長,而掃頻測量速度太快,會形成建立誤差,使測得的特性曲線畸變失真。