郭鍵,朱杰
(北京物資學(xué)院 信息學(xué)院,北京 101149)
信號發(fā)生器是一類十分重要的儀器,在通信、測控、導(dǎo)航、雷達、醫(yī)療等領(lǐng)域有著廣泛的應(yīng)用,而頻率和幅值可調(diào)的正弦信號更是常用作基準(zhǔn)信號或載波信號[1-2]。直接數(shù)字頻率合成(DDS)技術(shù)是一種新型的頻率合成技術(shù),它較之以前的頻率合成技術(shù),具有極短的頻率切換時間,極高的頻率分辨率,頻率變化時相位變化連續(xù),易于對頻率、相位、幅度進行調(diào)制等突出優(yōu)點,這使得DDS日益受到重視,已成為現(xiàn)代電子系統(tǒng)中信號源的首選[3-4]。
DDS的工作原理的實質(zhì)是將2π弧度做N位量化,以系統(tǒng)時鐘為參考頻率對信號相位進行采樣。其基本結(jié)構(gòu)框圖如圖1所示,由相位累加器、波形ROM、D/A轉(zhuǎn)換器和低通濾波器以及參考時鐘fc構(gòu)成。N位頻率控制字在每個時鐘周期內(nèi)與相位累加器中的相位進行一次累加,該累加的結(jié)果作為一個尋址地址,該地址對應(yīng)的波形存儲器中的內(nèi)容就是一個波形合成點的幅度值,經(jīng)D/A轉(zhuǎn)換將其轉(zhuǎn)換為模擬采樣值,再經(jīng)低通濾波器濾波后得到符合要求的模擬信號[5-7]。
圖1 DDS工作原理圖Fig.1 Diagram of working principle of DDS
若N位頻率控制字在參考時鐘fc的作用下以頻率控制字M為步進進行相位累加,則輸出頻率fout與時鐘頻率fc及頻率控制字M的關(guān)系為:fout=M×fc/2N。當(dāng)參考時鐘頻率fc與相位累加器的位數(shù)N固定時,輸出頻率fout的大小就由M來確定M=2N×fout/fc,因此M值改變則輸出頻率隨之改變。當(dāng)M=1時,DDS所能產(chǎn)生信號的最低頻率為fout=fc/2N,這是DDS的頻率分辨率。DDS的最高輸出頻率由奈奎斯特采樣定理決定,即fc/2。
設(shè)參考時鐘頻率fc=2fHz,相位累加器位數(shù)為N,要求信號發(fā)生器輸出頻率范圍a~fHz,頻率變化的分辨力即步距為tHz,則可選的輸出頻率數(shù)有(f-a)/t+1 個,即aHz,(a+t) Hz,(a+2t) Hz,……,(f-t) Hz,fHz,其中最小頻率a也應(yīng)為步距t的整數(shù)倍。
目前常用的計算頻率控制M的方法主要采用2種。其一是利用手工計算這 (f-a)/t+1個頻率對應(yīng)的寫向頻率寄存器的值M,把這 (f-a)/t+1個N位二進制數(shù)存儲到系統(tǒng)存儲器中,信號發(fā)生器接受頻率設(shè)定值后從(f-a)/t+1個數(shù)中找出對應(yīng)的值寫向頻率寄存器。此方法的優(yōu)點是設(shè)定頻率的精度可達DDS芯片的頻率分辨力即fc/2N,精度較高。但系統(tǒng)設(shè)計時需要計算的數(shù)據(jù)量大,頻率設(shè)定速度低,系統(tǒng)需要的存儲空間大。
其二是利用公式M=2N×fout/fc,編程后用軟件計算。即先計算fout=tHz時對應(yīng)的寫向頻率寄存器的值M1并對其取整得則某一頻率下寫向頻率寄存器的值M為:M=B×,其中B(=1,2,3……)為某一頻率對tHz的倍數(shù)(因為t是頻率變化的步距)。以t=0.1 Hz為例,則求35.4 Hz對應(yīng)的寫向頻率寄存器的值M=354M1’。此算法的優(yōu)點是編程簡單,不需要手工計算大量數(shù)值,不需要占大量存儲空間。但設(shè)定頻率有誤差累積效應(yīng),隨著頻率增加,設(shè)定頻率的絕對誤差也在增加,為Δ=(M1-M1’)×B/M1Hz。 如當(dāng),N=28,t=0.1 Hz,輸出頻率為1 kHz時,其絕對誤差約為31 Hz,這樣大的誤差在儀表校準(zhǔn)應(yīng)用中是不允許的。
為解決2.1中2種方法的缺點,文中設(shè)計了一種新方法,既可以在不降低頻率設(shè)定速度情況下節(jié)省大量存儲空間,又可以顯著降低設(shè)定頻率的絕對誤差。
首先分別計算出輸出頻率為M1{t,2t, ……,9tHz},M2{10t, 20t, ……,90tHz},M3{100t, 200t,……,900tHz},……,Mi{10i-1×t, 10i-1×2t, ……,10i-1×9tHz},……,Mq{10q-1×t, 10q-1×2t, ……,10q-1×9t}(q=[logf/t10],即q為以 10 為底f/t的對數(shù)向上取整)時對應(yīng)的寫入寄存器的值M(四舍五入后保留的整數(shù)),并將其存入q個數(shù)組M1,M2,……,Mi,……,Mq中,則可通過下面步驟獲得設(shè)定頻率為mHz時需寫入寄存器的M值:
1)先求出m為步距t的倍數(shù)B:B=m/t,則B的最大值為f/t(f為最大輸出頻率)
2)將B表示為:B=n1+n2×10+n3×102+…+ni×10i-1+…np×10p-1,當(dāng) 1≤i<p時,0≤ni≤9,1≤np≤9。
3)則設(shè)定頻率為mHz時需寫入寄存器的M值可分別從M1中從取M1[n1], 從M2中取M2[n2], 從M3中取M3[n3],……,從Mi中取Mi[ni],……,從Mp中取Mp[np]相加即可,即:M=M1[n1]+M2[n2]+M3[n3]+…Mi[ni]+…Mp[np]。 (若ni=0,則不從Mi中取值)
以a=0.1 Hz,f=1 MHz,t=0.1 Hz 為例,若求設(shè)定輸出頻率為m=7 893.4 Hz對應(yīng)的M值時,則①可先求B=m/t=7893.4/0.1=78 934; ②將B表示成:B=4+3×10+9×102+8×103+7×104形式;③分別從M1中取M1[4],從M2中取M2[3],從M3中取M3[9],從M4中取M4[8],從M5中取M5[7],相加即可,即:M=M1[4]+M2[3]+M3[9]+M4[8]+M5[7]。
因每組數(shù)據(jù)均采用手工計算,故求某組數(shù)據(jù)中頻率對應(yīng)的M值(四舍五入后保留的整數(shù))時最大誤差為0.5,此時對應(yīng)的輸出頻率誤差為:Δ≤0.5×fc/2N=0.5tHz,所以本算法最大的輸出頻率絕對誤差為:q×Δ=0.5×t×q/M1’Hz。
本方法優(yōu)點:1)需寫入內(nèi)存的數(shù)據(jù)少,只需寫入q組:即9×q個N位二進制數(shù);2)頻率設(shè)定速度快,因只需從內(nèi)存的q組數(shù)據(jù)中查找指定值,比方法1中從(f-a)/t+1個數(shù)據(jù)中查找指定值速度快;3)本方法顯著降低了方法2中的誤差累積效應(yīng)(因為q的值很?。?,輸出頻率絕對誤差小,精度高。
為進一步降低算法的絕對誤差,還可以利用q組數(shù)據(jù)△1-△q分別記錄計算M1-Mq時舍去的小數(shù)部分。然后再分別從△1中取△1[n1],從△2中取△2[n2],從△3中取△3[n3],….,從△i中取△i[ni],…,從△p中取△p[np]相加,即:△=△1[n1]+△2[n2]+△3[n3]+…△i[ni]+…△p[np]。然后對△四舍五入取整后加入③求得的M中,即得最終寫入寄存器的M值。
以a=0.1 Hz,f=1 MHz,t=0.1 Hz,N=28 時,設(shè)定輸出頻率為m=7 893.4 Hz為例:
1)可先求B=m/k=7 893.4/0.1=78 934;
2)將B表示成:B=4+3×10+9×102+8×103+7×104形式。
3)分別從M1中取M1[4],從M2中取M2[3],從M3中取M3[9],從M4中取M4[8],從M5中取M5[7],相加即可,即:M=M1[4]+M2[3]+M3[9]+M4[8]+M5[7]。
4)可分別從△5中取△5[7],從△4中取△4[8],從△3中取△3[9],從△2中取△2[3],從△1中取△1[4]相加即可,即:△=△1[4]+△2[3]+△3[9]+△4[8]+△5[7]。然后對△四舍五入取整后加入3)求得的M中,即得最終寫入寄存器的M值。
經(jīng)過這樣處理,誤差累積效應(yīng)會進一步得到降低,輸出頻率絕對誤差可降低到≤0.5×fc/2NHz(為頻率分辨率的一半),當(dāng)fc=2 MHz,N=28時,輸出頻率絕對誤差 Δ≤0.5×fc/2N=0.5×2×106/228=0.003 725 Hz,顯著降低了誤差的累積效應(yīng)。
系統(tǒng)由微控制器、鍵盤、顯示、信號發(fā)生電路、信號幅值調(diào)整電路及電源部分組成,如圖2所示。
圖2 系統(tǒng)硬件組成框圖Fig.2 Diagram of system hardware
1)微控器及鍵盤
微控制器部分由MSP430F135和復(fù)位電路組成,鍵盤由功能鍵、確認鍵、左移鍵、上箭頭鍵、下箭頭鍵組成,其電路圖如圖3所示。
圖3 微控制器及鍵盤Fig.3 Micro-controller and keyboard
2)幅值調(diào)整電路
幅值調(diào)整電路由運算放大器、模擬開關(guān)HCF4051及3個三極管組成,具體電路如圖4所示。
3)信號發(fā)生電路
信號發(fā)生電路由直接數(shù)字合成器芯片AD9833、有源晶體振蕩器及運算放大器調(diào)整電路組成,具體電路如圖5所示。
4)電源電路
電源部分由+18V、+5V和+3.3V 3種電源組成;3種電壓各由一片DC-DC轉(zhuǎn)換芯片及其外圍電路組成的升壓或降壓電路獲得;3種電源均由2節(jié)串聯(lián)的鋰電池供電。
5)顯示驅(qū)動電路
顯示部分由兩片74LVC07組成的信號電平轉(zhuǎn)換電路和LCM1602D液晶顯示模塊組成,具體電路如圖7所示。
微控制器通過5個IO口線與5個鍵盤信號相連;微控制器的11個IO口線經(jīng)過兩片74LVC07及電阻組成的電平轉(zhuǎn)換電路,實現(xiàn)對顯示的控制與驅(qū)動,可以顯示頻率、信號幅值等;微控制器作為主機通過三線制SPI接口與信號發(fā)生電路部分的AD9833通訊,向AD9833寫入控制命令字及頻率設(shè)定值M;信號發(fā)生電路輸出信號送入信號幅值調(diào)整電路;微控制器通過3個IO口線選擇HCF4051的模擬導(dǎo)通通道,從而調(diào)整信號的放大倍數(shù),得到不同幅值的信號。
圖4 幅值調(diào)整電路Fig.4 Amplitude adjustment circuit
圖6 電源部分電路Fig.6 Power supply section circuit
圖7 顯示驅(qū)動電路Fig.7 Display driver circuit
具體工作過程:由2.2中方法求得的數(shù)據(jù)存儲于微控制器的存儲器中,系統(tǒng)上電啟動后,通過鍵盤設(shè)定要輸出的頻率值、信號波形、信號幅值,微控制器根據(jù)頻率設(shè)定值從相應(yīng)數(shù)組中取數(shù)并計算得M值;微控制器通過三線制SPI通信接口將信號波形命令字及M值寫入AD9833(直接數(shù)字合成器芯片),通過3個IO口線選定所需幅值;以上設(shè)定完成后,微控制器通過三線制SPI通訊接口向AD9833寫入啟動命令,則AD9833就會輸出所需頻率信號,該信號經(jīng)過幅值調(diào)整電路后,即得到最終所需信號。
控制器的主要工作是響應(yīng)鍵盤輸入、刷新液晶顯示、控制波形輸出。首先控制器進入默認的工作狀態(tài),此時若有按鍵按下,則響應(yīng)按鍵;通過按鍵輸入所需的頻率、幅度和波形參數(shù);控制器再根據(jù)輸入的頻率計算出頻率控制字;最后根據(jù)頻率控制字、幅度和波形參數(shù)控制輸出對應(yīng)波形,其系統(tǒng)的軟件流程圖如圖8所示。
圖8 系統(tǒng)的軟件流程圖Fig.8 Flow chart of the system software
信號發(fā)生器是一種常用的電子儀器,在做實驗、進行產(chǎn)品研制和調(diào)試以及系統(tǒng)測試中都是必不可少的,而傳統(tǒng)的信號發(fā)生器性能非常有限,因此開發(fā)一款高性能的信號源當(dāng)務(wù)之急。DDS技術(shù)是一種重要的頻率合成手段,由于其在帶寬、頻率轉(zhuǎn)換時間、頻率分辨率、相位連續(xù)性以及集成化等一系列性能指標(biāo)方面的優(yōu)勢而廣泛的應(yīng)用于需要使用信號源的傳統(tǒng)領(lǐng)域。為解決利用DDS技術(shù)合成多頻率信號時存在的計算量大、頻率設(shè)定效率低、占用存儲空間大或設(shè)定頻率有誤差累積效應(yīng)等缺點,本文研制了一種新的計算頻率控制字的算法,該方法無需計算大量數(shù)據(jù)和大量存儲空間且可顯著減低誤差的累積效應(yīng),提高頻率設(shè)定的效率和精度。以微控制器MSP430F135為主控電路,利用2.2中的求取頻率控制字的新算法,較好地實現(xiàn)一款精度高、頻率連續(xù)可調(diào)、響應(yīng)速度快、輸出信號頻譜穩(wěn)定、實用性強等優(yōu)點的信號源的設(shè)計。
[1]趙越.基于DDS技術(shù)的信號發(fā)生器 [J].計量與測試技術(shù),2010(11):9-10.
ZHAO Yue.The signal generator based on DDS[J].Metrology&Measurement Technique,2010(11):9-10.
[2]許利霞,王衛(wèi)星,俞龍,等.基于雙單片機的正弦信號源設(shè)計[J].測控技術(shù),2007(12):32-34.
XU Li-xia,WANG Wei-xing,YU Long,et al.Design of sine signal generator based on double MCU[J].Measurement&Control Technology,2007(12):32-34.
[3]王文梁,田書林,劉科.DDS信號源的幅頻特性補償方法研究[J].測控技術(shù),2007,26(8):9-11.
WANG Wen-liang,TIAN Shu-lin,LIU Ke.AM ethod for improving amplitude frequency characteristic of DDS signal source[J].Measurement&Control Technology,2007,26(8):9-11.
[4]楊萍,兀旦暉,楊良煜.DDS技術(shù)在正弦信號發(fā)生器中的應(yīng)用[J].計算機測量與控制,2008,16(11):1738-1740.
YANG Ping,WU Dan-hui,YANG Liang-yu.Application of DDS technology in sine wave function generator[J].Computer Measurement&Control,2008,16(11):1738-1740.
[5]郭慶,楊海玲,陳尚松.雙路相位差可調(diào)信號發(fā)生器的設(shè)計[J].電子測量技術(shù),2007,30(4):191-193.
GUO Qing,YANG Hai-ling,CHEN Shang-song.Design of dual tunable phase different signal generator[J].Electronic Measurement Technology,2007,30(4):191-193.
[6]崔建鵬,趙敏,江帆.采用DDS技術(shù)實現(xiàn)的虛擬任意波形發(fā)生器[J].計算機測量與控制,2003,11(7):553-555
CUI Jian-peng,ZHAO Min,JIANG Fan.Virtual arbitrary waveform generator based on DDS technology[J].Computer Measurement&Control,2003,11(7):553-555.
[7]張捍東,劉娟.DDS的相位舍位雜散分析及其抑制方法[J].自動化與儀表,2007(3):26-28.
ZHANG Han-dong,LIU Juan.Analysis of the spurious caused by phase truncation in DDS and the ways to restrain it[J].Automation&Instrumentation,2007(3):26-28.