郭鍵,朱杰
(北京物資學(xué)院 信息學(xué)院,北京 101149)
信號(hào)發(fā)生器是一類十分重要的儀器,在通信、測(cè)控、導(dǎo)航、雷達(dá)、醫(yī)療等領(lǐng)域有著廣泛的應(yīng)用,而頻率和幅值可調(diào)的正弦信號(hào)更是常用作基準(zhǔn)信號(hào)或載波信號(hào)[1-2]。直接數(shù)字頻率合成(DDS)技術(shù)是一種新型的頻率合成技術(shù),它較之以前的頻率合成技術(shù),具有極短的頻率切換時(shí)間,極高的頻率分辨率,頻率變化時(shí)相位變化連續(xù),易于對(duì)頻率、相位、幅度進(jìn)行調(diào)制等突出優(yōu)點(diǎn),這使得DDS日益受到重視,已成為現(xiàn)代電子系統(tǒng)中信號(hào)源的首選[3-4]。
DDS的工作原理的實(shí)質(zhì)是將2π弧度做N位量化,以系統(tǒng)時(shí)鐘為參考頻率對(duì)信號(hào)相位進(jìn)行采樣。其基本結(jié)構(gòu)框圖如圖1所示,由相位累加器、波形ROM、D/A轉(zhuǎn)換器和低通濾波器以及參考時(shí)鐘fc構(gòu)成。N位頻率控制字在每個(gè)時(shí)鐘周期內(nèi)與相位累加器中的相位進(jìn)行一次累加,該累加的結(jié)果作為一個(gè)尋址地址,該地址對(duì)應(yīng)的波形存儲(chǔ)器中的內(nèi)容就是一個(gè)波形合成點(diǎn)的幅度值,經(jīng)D/A轉(zhuǎn)換將其轉(zhuǎn)換為模擬采樣值,再經(jīng)低通濾波器濾波后得到符合要求的模擬信號(hào)[5-7]。
圖1 DDS工作原理圖Fig.1 Diagram of working principle of DDS
若N位頻率控制字在參考時(shí)鐘fc的作用下以頻率控制字M為步進(jìn)進(jìn)行相位累加,則輸出頻率fout與時(shí)鐘頻率fc及頻率控制字M的關(guān)系為:fout=M×fc/2N。當(dāng)參考時(shí)鐘頻率fc與相位累加器的位數(shù)N固定時(shí),輸出頻率fout的大小就由M來(lái)確定M=2N×fout/fc,因此M值改變則輸出頻率隨之改變。當(dāng)M=1時(shí),DDS所能產(chǎn)生信號(hào)的最低頻率為fout=fc/2N,這是DDS的頻率分辨率。DDS的最高輸出頻率由奈奎斯特采樣定理決定,即fc/2。
設(shè)參考時(shí)鐘頻率fc=2fHz,相位累加器位數(shù)為N,要求信號(hào)發(fā)生器輸出頻率范圍a~fHz,頻率變化的分辨力即步距為tHz,則可選的輸出頻率數(shù)有(f-a)/t+1 個(gè),即aHz,(a+t) Hz,(a+2t) Hz,……,(f-t) Hz,fHz,其中最小頻率a也應(yīng)為步距t的整數(shù)倍。
目前常用的計(jì)算頻率控制M的方法主要采用2種。其一是利用手工計(jì)算這 (f-a)/t+1個(gè)頻率對(duì)應(yīng)的寫向頻率寄存器的值M,把這 (f-a)/t+1個(gè)N位二進(jìn)制數(shù)存儲(chǔ)到系統(tǒng)存儲(chǔ)器中,信號(hào)發(fā)生器接受頻率設(shè)定值后從(f-a)/t+1個(gè)數(shù)中找出對(duì)應(yīng)的值寫向頻率寄存器。此方法的優(yōu)點(diǎn)是設(shè)定頻率的精度可達(dá)DDS芯片的頻率分辨力即fc/2N,精度較高。但系統(tǒng)設(shè)計(jì)時(shí)需要計(jì)算的數(shù)據(jù)量大,頻率設(shè)定速度低,系統(tǒng)需要的存儲(chǔ)空間大。
其二是利用公式M=2N×fout/fc,編程后用軟件計(jì)算。即先計(jì)算fout=tHz時(shí)對(duì)應(yīng)的寫向頻率寄存器的值M1并對(duì)其取整得則某一頻率下寫向頻率寄存器的值M為:M=B×,其中B(=1,2,3……)為某一頻率對(duì)tHz的倍數(shù)(因?yàn)閠是頻率變化的步距)。以t=0.1 Hz為例,則求35.4 Hz對(duì)應(yīng)的寫向頻率寄存器的值M=354M1’。此算法的優(yōu)點(diǎn)是編程簡(jiǎn)單,不需要手工計(jì)算大量數(shù)值,不需要占大量存儲(chǔ)空間。但設(shè)定頻率有誤差累積效應(yīng),隨著頻率增加,設(shè)定頻率的絕對(duì)誤差也在增加,為Δ=(M1-M1’)×B/M1Hz。 如當(dāng),N=28,t=0.1 Hz,輸出頻率為1 kHz時(shí),其絕對(duì)誤差約為31 Hz,這樣大的誤差在儀表校準(zhǔn)應(yīng)用中是不允許的。
為解決2.1中2種方法的缺點(diǎn),文中設(shè)計(jì)了一種新方法,既可以在不降低頻率設(shè)定速度情況下節(jié)省大量存儲(chǔ)空間,又可以顯著降低設(shè)定頻率的絕對(duì)誤差。
首先分別計(jì)算出輸出頻率為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的對(duì)數(shù)向上取整)時(shí)對(duì)應(yīng)的寫入寄存器的值M(四舍五入后保留的整數(shù)),并將其存入q個(gè)數(shù)組M1,M2,……,Mi,……,Mq中,則可通過(guò)下面步驟獲得設(shè)定頻率為mHz時(shí)需寫入寄存器的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時(shí),0≤ni≤9,1≤np≤9。
3)則設(shè)定頻率為mHz時(shí)需寫入寄存器的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對(duì)應(yīng)的M值時(shí),則①可先求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ù)均采用手工計(jì)算,故求某組數(shù)據(jù)中頻率對(duì)應(yīng)的M值(四舍五入后保留的整數(shù))時(shí)最大誤差為0.5,此時(shí)對(duì)應(yīng)的輸出頻率誤差為:Δ≤0.5×fc/2N=0.5tHz,所以本算法最大的輸出頻率絕對(duì)誤差為:q×Δ=0.5×t×q/M1’Hz。
本方法優(yōu)點(diǎn):1)需寫入內(nèi)存的數(shù)據(jù)少,只需寫入q組:即9×q個(gè)N位二進(jìn)制數(shù);2)頻率設(shè)定速度快,因只需從內(nèi)存的q組數(shù)據(jù)中查找指定值,比方法1中從(f-a)/t+1個(gè)數(shù)據(jù)中查找指定值速度快;3)本方法顯著降低了方法2中的誤差累積效應(yīng)(因?yàn)閝的值很?。敵鲱l率絕對(duì)誤差小,精度高。
為進(jìn)一步降低算法的絕對(duì)誤差,還可以利用q組數(shù)據(jù)△1-△q分別記錄計(jì)算M1-Mq時(shí)舍去的小數(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]。然后對(duì)△四舍五入取整后加入③求得的M中,即得最終寫入寄存器的M值。
以a=0.1 Hz,f=1 MHz,t=0.1 Hz,N=28 時(shí),設(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]。然后對(duì)△四舍五入取整后加入3)求得的M中,即得最終寫入寄存器的M值。
經(jīng)過(guò)這樣處理,誤差累積效應(yīng)會(huì)進(jìn)一步得到降低,輸出頻率絕對(duì)誤差可降低到≤0.5×fc/2NHz(為頻率分辨率的一半),當(dāng)fc=2 MHz,N=28時(shí),輸出頻率絕對(duì)誤差 Δ≤0.5×fc/2N=0.5×2×106/228=0.003 725 Hz,顯著降低了誤差的累積效應(yīng)。
系統(tǒng)由微控制器、鍵盤、顯示、信號(hào)發(fā)生電路、信號(hào)幅值調(diào)整電路及電源部分組成,如圖2所示。
圖2 系統(tǒng)硬件組成框圖Fig.2 Diagram of system hardware
1)微控器及鍵盤
微控制器部分由MSP430F135和復(fù)位電路組成,鍵盤由功能鍵、確認(rèn)鍵、左移鍵、上箭頭鍵、下箭頭鍵組成,其電路圖如圖3所示。
圖3 微控制器及鍵盤Fig.3 Micro-controller and keyboard
2)幅值調(diào)整電路
幅值調(diào)整電路由運(yùn)算放大器、模擬開關(guān)HCF4051及3個(gè)三極管組成,具體電路如圖4所示。
3)信號(hào)發(fā)生電路
信號(hào)發(fā)生電路由直接數(shù)字合成器芯片AD9833、有源晶體振蕩器及運(yùn)算放大器調(diào)整電路組成,具體電路如圖5所示。
4)電源電路
電源部分由+18V、+5V和+3.3V 3種電源組成;3種電壓各由一片DC-DC轉(zhuǎn)換芯片及其外圍電路組成的升壓或降壓電路獲得;3種電源均由2節(jié)串聯(lián)的鋰電池供電。
5)顯示驅(qū)動(dòng)電路
顯示部分由兩片74LVC07組成的信號(hào)電平轉(zhuǎn)換電路和LCM1602D液晶顯示模塊組成,具體電路如圖7所示。
微控制器通過(guò)5個(gè)IO口線與5個(gè)鍵盤信號(hào)相連;微控制器的11個(gè)IO口線經(jīng)過(guò)兩片74LVC07及電阻組成的電平轉(zhuǎn)換電路,實(shí)現(xiàn)對(duì)顯示的控制與驅(qū)動(dòng),可以顯示頻率、信號(hào)幅值等;微控制器作為主機(jī)通過(guò)三線制SPI接口與信號(hào)發(fā)生電路部分的AD9833通訊,向AD9833寫入控制命令字及頻率設(shè)定值M;信號(hào)發(fā)生電路輸出信號(hào)送入信號(hào)幅值調(diào)整電路;微控制器通過(guò)3個(gè)IO口線選擇HCF4051的模擬導(dǎo)通通道,從而調(diào)整信號(hào)的放大倍數(shù),得到不同幅值的信號(hào)。
圖4 幅值調(diào)整電路Fig.4 Amplitude adjustment circuit
圖6 電源部分電路Fig.6 Power supply section circuit
圖7 顯示驅(qū)動(dòng)電路Fig.7 Display driver circuit
具體工作過(guò)程:由2.2中方法求得的數(shù)據(jù)存儲(chǔ)于微控制器的存儲(chǔ)器中,系統(tǒng)上電啟動(dòng)后,通過(guò)鍵盤設(shè)定要輸出的頻率值、信號(hào)波形、信號(hào)幅值,微控制器根據(jù)頻率設(shè)定值從相應(yīng)數(shù)組中取數(shù)并計(jì)算得M值;微控制器通過(guò)三線制SPI通信接口將信號(hào)波形命令字及M值寫入AD9833(直接數(shù)字合成器芯片),通過(guò)3個(gè)IO口線選定所需幅值;以上設(shè)定完成后,微控制器通過(guò)三線制SPI通訊接口向AD9833寫入啟動(dòng)命令,則AD9833就會(huì)輸出所需頻率信號(hào),該信號(hào)經(jīng)過(guò)幅值調(diào)整電路后,即得到最終所需信號(hào)。
控制器的主要工作是響應(yīng)鍵盤輸入、刷新液晶顯示、控制波形輸出。首先控制器進(jìn)入默認(rèn)的工作狀態(tài),此時(shí)若有按鍵按下,則響應(yīng)按鍵;通過(guò)按鍵輸入所需的頻率、幅度和波形參數(shù);控制器再根據(jù)輸入的頻率計(jì)算出頻率控制字;最后根據(jù)頻率控制字、幅度和波形參數(shù)控制輸出對(duì)應(yīng)波形,其系統(tǒng)的軟件流程圖如圖8所示。
圖8 系統(tǒng)的軟件流程圖Fig.8 Flow chart of the system software
信號(hào)發(fā)生器是一種常用的電子儀器,在做實(shí)驗(yàn)、進(jìn)行產(chǎn)品研制和調(diào)試以及系統(tǒng)測(cè)試中都是必不可少的,而傳統(tǒng)的信號(hào)發(fā)生器性能非常有限,因此開發(fā)一款高性能的信號(hào)源當(dāng)務(wù)之急。DDS技術(shù)是一種重要的頻率合成手段,由于其在帶寬、頻率轉(zhuǎn)換時(shí)間、頻率分辨率、相位連續(xù)性以及集成化等一系列性能指標(biāo)方面的優(yōu)勢(shì)而廣泛的應(yīng)用于需要使用信號(hào)源的傳統(tǒng)領(lǐng)域。為解決利用DDS技術(shù)合成多頻率信號(hào)時(shí)存在的計(jì)算量大、頻率設(shè)定效率低、占用存儲(chǔ)空間大或設(shè)定頻率有誤差累積效應(yīng)等缺點(diǎn),本文研制了一種新的計(jì)算頻率控制字的算法,該方法無(wú)需計(jì)算大量數(shù)據(jù)和大量存儲(chǔ)空間且可顯著減低誤差的累積效應(yīng),提高頻率設(shè)定的效率和精度。以微控制器MSP430F135為主控電路,利用2.2中的求取頻率控制字的新算法,較好地實(shí)現(xiàn)一款精度高、頻率連續(xù)可調(diào)、響應(yīng)速度快、輸出信號(hào)頻譜穩(wěn)定、實(shí)用性強(qiáng)等優(yōu)點(diǎn)的信號(hào)源的設(shè)計(jì)。
[1]趙越.基于DDS技術(shù)的信號(hào)發(fā)生器 [J].計(jì)量與測(cè)試技術(shù),2010(11):9-10.
ZHAO Yue.The signal generator based on DDS[J].Metrology&Measurement Technique,2010(11):9-10.
[2]許利霞,王衛(wèi)星,俞龍,等.基于雙單片機(jī)的正弦信號(hào)源設(shè)計(jì)[J].測(cè)控技術(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信號(hào)源的幅頻特性補(bǔ)償方法研究[J].測(cè)控技術(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ù)在正弦信號(hào)發(fā)生器中的應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,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)信號(hào)發(fā)生器的設(shè)計(jì)[J].電子測(cè)量技術(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ù)實(shí)現(xiàn)的虛擬任意波形發(fā)生器[J].計(jì)算機(jī)測(cè)量與控制,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].自動(dòng)化與儀表,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.