《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種多功能正弦信號(hào)發(fā)生器的設(shè)計(jì)
一種多功能正弦信號(hào)發(fā)生器的設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2011年第19期
李 璐,,李騰飛,李飛飛
(武漢大學(xué) 電子信息學(xué)院,,湖北 武漢 430079)
摘要: 介紹了一種以FPGA和單片機(jī)為控制核心,,基于調(diào)制原理配合使用DDS專用芯片AD9851,實(shí)現(xiàn)了一種多功能正弦信號(hào)發(fā)生器,。實(shí)現(xiàn)了在30 Hz~12 MHz頻率范圍內(nèi)正弦信號(hào)的無(wú)失真輸出,,且在輸出端接50 Ω功率電阻的條件下,輸出電壓峰峰值在5.8 V~6 V范圍內(nèi),。系統(tǒng)還具有AM,、FM、ASK,、FSK,、PSK調(diào)制的功能,整體工作穩(wěn)定,,界面友好,,操作簡(jiǎn)單。
Abstract:
Key words :

摘  要: 介紹了一種以FPGA單片機(jī)為控制核心,,基于調(diào)制原理配合使用DDS專用芯片AD9851,,實(shí)現(xiàn)了一種多功能正弦信號(hào)發(fā)生器。實(shí)現(xiàn)了在30 Hz~12 MHz頻率范圍內(nèi)正弦信號(hào)的無(wú)失真輸出,,且在輸出端接50 Ω功率電阻的條件下,,輸出電壓峰峰值在5.8 V~6 V范圍內(nèi)。系統(tǒng)還具有AM,、FM,、ASK、FSK,、PSK調(diào)制的功能,,整體工作穩(wěn)定,界面友好,,操作簡(jiǎn)單,。
關(guān)鍵詞: FPGA;單片機(jī),;DDS,;調(diào)制

 在通信、廣播,、電視系統(tǒng)中,,都需要射頻發(fā)射,即載波,,把音頻,、視頻信號(hào)或脈沖信號(hào)運(yùn)載出去,這就需要能產(chǎn)生高頻信號(hào)的振蕩器,。正弦波振蕩電路在各個(gè)科學(xué)技術(shù)部門的應(yīng)用是十分廣泛的,。在工業(yè),、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域(如高頻感應(yīng)加熱,、熔煉,、淬火,超聲波焊接,、超聲診斷,、核磁共振成像等)都需要功率或大或小、頻率或高或低的振蕩器,。
 本系統(tǒng)以直接數(shù)字合成(DDS)芯片為信號(hào)發(fā)生核心,,以單片機(jī)為控制和人機(jī)界面核心,使用FPGA作為控制核心,,組成一個(gè)具有多種信號(hào)輸出能力的信號(hào)發(fā)生電路,。可輸出頻率可調(diào)的正弦信號(hào),、調(diào)頻信號(hào),、調(diào)幅信號(hào)和數(shù)字調(diào)制輸出信號(hào)等,具有廣泛的應(yīng)用前景[1-2],。
1 系統(tǒng)總體設(shè)計(jì)方案和工作原理
 系統(tǒng)整體框圖如圖1,。單片機(jī)接收用戶的模式選擇和參數(shù)設(shè)置值并經(jīng)過(guò)程序處理后送入FPGA。在FPGA中預(yù)先構(gòu)建了實(shí)現(xiàn)各種功能的功能模塊,。DDS控制模塊用于控制DDS芯片AD9851產(chǎn)生相應(yīng)頻率的無(wú)調(diào)制正弦波及調(diào)頻正弦波,;DAC7611控制模塊用于控制DAC7611數(shù)模轉(zhuǎn)換器并為DAC904數(shù)模轉(zhuǎn)換器提供基準(zhǔn)電壓;二進(jìn)制基帶碼控制模塊用于將用戶輸入的二進(jìn)制基帶碼轉(zhuǎn)換為串行數(shù)據(jù),,便于后續(xù)處理,;數(shù)字調(diào)制控制模塊用于判斷用戶選擇的數(shù)字調(diào)制方式,并結(jié)合二進(jìn)制基帶碼模塊輸出的數(shù)據(jù),,輸出不同的相位值給ROM中的正弦波表,,實(shí)現(xiàn)輸出數(shù)字調(diào)制信號(hào);DAC904用于D/A轉(zhuǎn)換輸出數(shù)字調(diào)制信號(hào),。
2 FPGA內(nèi)部控制模塊及其實(shí)現(xiàn)
2.1 DDS控制模塊

 AD9851是ADI公司的專用DDS芯片,,采用CMOS生產(chǎn)的具有高集成度的直接數(shù)字合成器,內(nèi)置32 bit頻率累加器,、10 bit高速DAC、高速比較器和可軟件選通的時(shí)鐘6倍頻電路,。外接參考頻率源時(shí),,AD9851可以產(chǎn)生頻譜純凈、頻率和相位都可控且穩(wěn)定度非常高的正弦波,。
相位累加器的位數(shù)為N,,相位控制字的值為FN,,頻率控制字的位數(shù)為M,頻率控制字的值為FM,,F(xiàn)c為AD9851內(nèi)部時(shí)鐘頻率,。此時(shí),最終合成信號(hào)的頻率和相位可由式(1)和式(2)來(lái)決定:

 FPGA中DDS控制模塊的功能主要是對(duì)AD9851寫控制字,,使其輸出正弦,、AM、FSK,、FM波,。功能的切換通過(guò)寫入不同的控制字得以實(shí)現(xiàn),頻率數(shù)據(jù)由P0,、nWR,、CS、Addr等微機(jī)標(biāo)準(zhǔn)接口寫入,。對(duì)AD9851的操作由FQD,、WCK、Dout,、RST輸出口與芯片數(shù)字接口實(shí)現(xiàn),。實(shí)現(xiàn)FM時(shí),需要在中心頻率周圍產(chǎn)生5 kHz/10 kHz的頻偏,,這要求模塊輸出的頻率控制字要隨調(diào)制信號(hào)幅度變化而變化,,在模塊的輸入端給出了當(dāng)前的頻率控制字增量,模塊讀入這個(gè)增量與中心頻率控制字相加,,即可得到當(dāng)前頻率控制字,,也即實(shí)現(xiàn)了FM。
2.2 幅度調(diào)制模塊
 實(shí)際控制調(diào)幅度AM時(shí),,保持載波信號(hào)幅度不變,,控制調(diào)制信號(hào)的幅度,就可以實(shí)現(xiàn)AM在10%~100%之間調(diào)節(jié),。通過(guò)控制DAC7611輸出信號(hào)幅度,,即控制DAC904的參考電壓,達(dá)到控制調(diào)制度的效果,??梢酝ㄟ^(guò)一個(gè)模擬乘法器AD835電路實(shí)現(xiàn)調(diào)幅信號(hào),且載波信號(hào)頻率可以做得很高,,也比較容易實(shí)現(xiàn),。
2.3 頻率調(diào)制模塊
 在軟件實(shí)現(xiàn)時(shí),根據(jù)調(diào)頻信號(hào)變化的規(guī)律采用數(shù)字方式控制DDS正弦波發(fā)生器的頻率控制字,,存在一個(gè)單獨(dú)的ROM模塊中,,直接作用于輸出波形的頻率值,,即實(shí)現(xiàn)了對(duì)信號(hào)源頻率的調(diào)制。
 由單片機(jī)輸入中心頻率和最大頻偏后,,啟動(dòng)數(shù)字FM,,F(xiàn)PGA內(nèi)部時(shí)鐘單元將產(chǎn)生一個(gè)128 kHz的時(shí)鐘,用于累加8 128 bit正弦波表地址,,得出相應(yīng)正弦幅度量化值,。該幅度值一方面作為輸出信號(hào)輸出至外部D/A的數(shù)據(jù)端口,用于恢復(fù)正弦信號(hào),;另一方面作為頻率控制字的計(jì)算依據(jù),,根據(jù)相應(yīng)公式計(jì)算出頻率控制字。寫時(shí)序控制器在時(shí)鐘的作用下將生成的頻率控制字寫到DDS芯片AD9851內(nèi),,從而產(chǎn)生一個(gè)頻率與正弦信號(hào)幅度成比例的調(diào)頻信號(hào),。
2.4 數(shù)字調(diào)制模塊
 在具體的編程實(shí)現(xiàn)過(guò)程中,在FPGA內(nèi)設(shè)置二進(jìn)制基帶碼模塊和數(shù)字調(diào)制控制模塊,。通過(guò)二進(jìn)制基帶碼模塊,,將鍵盤輸入的0、1值轉(zhuǎn)換為串行數(shù)據(jù),,便于后續(xù)處理,。通過(guò)數(shù)字調(diào)制控制模塊判斷用戶選擇的方式為ASK、PSK還是FSK,,結(jié)合二進(jìn)制基帶碼模塊輸出的數(shù)據(jù),,輸出不同的相位值給ROM中的正弦波表,實(shí)現(xiàn)輸出數(shù)字調(diào)制信號(hào),。
對(duì)于ASK,,將載波信號(hào)與二進(jìn)制基帶信號(hào)相乘;對(duì)于PSK,,用二進(jìn)制基帶信號(hào)控制載波的相位,,當(dāng)二進(jìn)制基帶信號(hào)的上升沿(下降沿)到來(lái)時(shí),載波反相,,其他時(shí)間相位不變,,得到的輸出經(jīng)D/A轉(zhuǎn)換后就是PSK信號(hào),對(duì)于FSK,,0,、1各代表不同的頻率值,二進(jìn)制基帶信號(hào)控制頻率控制字,。
 假設(shè)載波固定頻率為100 kHz,,基帶序列碼速率為10 kb/s,當(dāng)實(shí)現(xiàn)2ASK時(shí),如果基帶序列為1碼,,應(yīng)輸出5個(gè)正弦載波,為0則應(yīng)輸出零電平,??蓪⒒鶐蛄械乃俾士刂妻D(zhuǎn)為控制當(dāng)序列符號(hào)為1時(shí)能輸出正弦波的數(shù)量,而載波的頻率是通過(guò)向自制DDS信號(hào)源寫入載波頻率控制字實(shí)現(xiàn)的,。因此,,當(dāng)確定載波頻率時(shí),從單片機(jī)輸入一個(gè)數(shù)字x表示當(dāng)序列符號(hào)為1時(shí)能輸出正弦波的數(shù)量,,則可確定基帶序列碼的速率,。如圖2所示,數(shù)字x通過(guò)din[7..0]輸入并存儲(chǔ)到了模塊內(nèi)部一個(gè)寄存器中,,內(nèi)部一個(gè)計(jì)數(shù)器從0開始計(jì)數(shù),,每當(dāng)計(jì)滿x-1,計(jì)數(shù)器清零,,并且使內(nèi)部一個(gè)標(biāo)志位flag取反,。當(dāng)flag為1時(shí),輸出端口adr-out[9..0]輸出一定規(guī)律的連續(xù)地址查表RAM-1 024 B存儲(chǔ)器(里面存的是正弦波表),,控制輸出正弦載波,;當(dāng)已輸出x個(gè)時(shí),flag取反為0,,則控制輸出一個(gè)固定地址到RAM-1 024 B,,這個(gè)固定地址里存為0值,則此時(shí)輸出0電平,。循環(huán)下去即可實(shí)現(xiàn)2ASK調(diào)制,。同理,當(dāng)選擇輸出2PSK時(shí),,每當(dāng)flag取反一次則將輸出的正弦載波反相一次,,則就實(shí)現(xiàn)了2PSK調(diào)制。當(dāng)選擇輸出2FSK時(shí),,每當(dāng)flag取反一次,,則分別將兩個(gè)頻率控制字送入自制DDS信號(hào)源,從而控制輸出了兩個(gè)頻率相互變化的2FSK輸出,。
3 電路調(diào)試及仿真
 電路調(diào)試采用計(jì)算機(jī)仿真和硬件調(diào)試相結(jié)合的方式,,以QuartusII 5.0為設(shè)計(jì)環(huán)境,用Verilog HDL硬件描述語(yǔ)言編程,,完成各個(gè)功能模塊的設(shè)計(jì),,并對(duì)設(shè)計(jì)好的各個(gè)模塊進(jìn)行仿真測(cè)試,再將各個(gè)模塊相互連接。分配好FPGA的各個(gè)引腳后,,對(duì)文件編譯并將生成文件下載到FPGA中,,完成設(shè)計(jì)。
3.1 軟件仿真
    在FPGA內(nèi)編譯后,,仿真時(shí)序如圖3所示,。

 

 


 ②2ASK波形記錄如圖7所示,。
?、?FSK波形記錄如圖8所示。
4 系統(tǒng)軟件設(shè)計(jì)
 本機(jī)用戶界面設(shè)計(jì)采用多鍵切換方式,,即每個(gè)工作模式都由一個(gè)對(duì)應(yīng)的按鍵去觸發(fā),,觸發(fā)后再設(shè)置輸出頻率、調(diào)制度等參數(shù),,單片機(jī)根據(jù)用戶輸入的參數(shù)對(duì)硬件進(jìn)行相應(yīng)設(shè)置,,主要包括寫頻率控制字、寫幅度控制字等,。軟件流程如圖9所示,。

 本文介紹的多功能正弦信號(hào)發(fā)生器可以輸出頻率可調(diào)的正弦波以及調(diào)制度可調(diào)的AM、FM,、FSK,、PSK、ASK波,。實(shí)驗(yàn)證明,,使用這種方法產(chǎn)生的波形具有穩(wěn)定及高精度的特點(diǎn),有一定的開發(fā)和生產(chǎn)價(jià)值,。
參考文獻(xiàn)
[1] 夏新凡,,陳曉君.正弦信號(hào)發(fā)生器的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2009(5):13-15.
[2] 郝小江,,羅彪.基于FPGA的函數(shù)信號(hào)發(fā)生器[J].電測(cè)與儀表,,2008(5):49-51.
[3] 黃根春,陳小橋,,張望先.電子設(shè)計(jì)教程[M].北京:電子工業(yè)出版社,,2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。