基于MCU/FPGA的多功能正弦信號發(fā)生器的設(shè)計(jì)
在通信、廣播、電視系統(tǒng)中,都需要射頻發(fā)射,即載波,把音頻、視頻信號或脈沖信號運(yùn)載出去,這就需要能產(chǎn)生高頻信號的振蕩器。正弦波振蕩電路在各個科學(xué)技術(shù)部門的應(yīng)用是十分廣泛的。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域(如高頻感應(yīng)加熱、熔煉、淬火,超聲波焊接、超聲診斷、核磁共振成像等)都需要功率或大或小、頻率或高或低的振蕩器。
本文引用地址:http://m.butianyuan.cn/article/190535.htm本系統(tǒng)以直接數(shù)字合成(DDS)芯片為信號發(fā)生核心,以單片機(jī)為控制和人機(jī)界面核心,使用FPGA作為控制核心,組成一個具有多種信號輸出能力的信號發(fā)生電路??奢敵鲱l率可調(diào)的正弦信號、調(diào)頻信號、調(diào)幅信號和數(shù)字調(diào)制輸出信號等,具有廣泛的應(yīng)用前景[1-2]。
1 系統(tǒng)總體設(shè)計(jì)方案和工作原理
系統(tǒng)整體框圖如圖1。單片機(jī)接收用戶的模式選擇和參數(shù)設(shè)置值并經(jīng)過程序處理后送入FPGA。在FPGA中預(yù)先構(gòu)建了實(shí)現(xiàn)各種功能的功能模塊。DDS控制模塊用于控制DDS芯片AD9851產(chǎn)生相應(yīng)頻率的無調(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)制信號;DAC904用于D/A轉(zhuǎn)換輸出數(shù)字調(dià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、高速比較器和可軟件選通的時鐘6倍頻電路。外接參考頻率源時,AD9851可以產(chǎn)生頻譜純凈、頻率和相位都可控且穩(wěn)定度非常高的正弦波。
相位累加器的位數(shù)為N,相位控制字的值為FN,頻率控制字的位數(shù)為M,頻率控制字的值為FM,F(xiàn)c為AD9851內(nèi)部時鐘頻率。此時,最終合成信號的頻率和相位可由式(1)和式(2)來決定:
FPGA中DDS控制模塊的功能主要是對AD9851寫控制字,使其輸出正弦、AM、FSK、FM波。功能的切換通過寫入不同的控制字得以實(shí)現(xiàn),頻率數(shù)據(jù)由P0、nWR、CS、Addr等微機(jī)標(biāo)準(zhǔn)接口寫入。對AD9851的操作由FQD、WCK、Dout、RST輸出口與芯片數(shù)字接口實(shí)現(xiàn)。實(shí)現(xiàn)FM時,需要在中心頻率周圍產(chǎn)生5 kHz/10 kHz的頻偏,這要求模塊輸出的頻率控制字要隨調(diào)制信號幅度變化而變化,在模塊的輸入端給出了當(dāng)前的頻率控制字增量,模塊讀入這個增量與中心頻率控制字相加,即可得到當(dāng)前頻率控制字,也即實(shí)現(xiàn)了FM。
2.2 幅度調(diào)制模塊
實(shí)際控制調(diào)幅度AM時,保持載波信號幅度不變,控制調(diào)制信號的幅度,就可以實(shí)現(xiàn)AM在10%~100%之間調(diào)節(jié)。通過控制DAC7611輸出信號幅度,即控制DAC904的參考電壓,達(dá)到控制調(diào)制度的效果??梢酝ㄟ^一個模擬乘法器AD835電路實(shí)現(xiàn)調(diào)幅信號,且載波信號頻率可以做得很高,也比較容易實(shí)現(xiàn)。
2.3 頻率調(diào)制模塊
在軟件實(shí)現(xiàn)時,根據(jù)調(diào)頻信號變化的規(guī)律采用數(shù)字方式控制DDS正弦波發(fā)生器的頻率控制字,存在一個單獨(dú)的ROM模塊中,直接作用于輸出波形的頻率值,即實(shí)現(xiàn)了對信號源頻率的調(diào)制。
由單片機(jī)輸入中心頻率和最大頻偏后,啟動數(shù)字FM,F(xiàn)PGA內(nèi)部時鐘單元將產(chǎn)生一個128 kHz的時鐘,用于累加8 128 bit正弦波表地址,得出相應(yīng)正弦幅度量化值。該幅度值一方面作為輸出信號輸出至外部D/A的數(shù)據(jù)端口,用于恢復(fù)正弦信號;另一方面作為頻率控制字的計(jì)算依據(jù),根據(jù)相應(yīng)公式計(jì)算出頻率控制字。寫時序控制器在時鐘的作用下將生成的頻率控制字寫到DDS芯片AD9851內(nèi),從而產(chǎn)生一個頻率與正弦信號幅度成比例的調(diào)頻信號。
2.4 數(shù)字調(diào)制模塊
在具體的編程實(shí)現(xiàn)過程中,在FPGA內(nèi)設(shè)置二進(jìn)制基帶碼模塊和數(shù)字調(diào)制控制模塊。通過二進(jìn)制基帶碼模塊,將鍵盤輸入的0、1值轉(zhuǎn)換為串行數(shù)據(jù),便于后續(xù)處理。通過數(shù)字調(diào)制控制模塊判斷用戶選擇的方式為ASK、PSK還是FSK,結(jié)合二進(jìn)制基帶碼模塊輸出的數(shù)據(jù),輸出不同的相位值給ROM中的正弦波表,實(shí)現(xiàn)輸出數(shù)字調(diào)制信號。
對于ASK,將載波信號與二進(jìn)制基帶信號相乘;對于PSK,用二進(jìn)制基帶信號控制載波的相位,當(dāng)二進(jìn)制基帶信號的上升沿(下降沿)到來時,載波反相,其他時間相位不變,得到的輸出經(jīng)D/A轉(zhuǎn)換后就是PSK信號,對于FSK,0、1各代表不同的頻率值,二進(jìn)制基帶信號控制頻率控制字。
假設(shè)載波固定頻率為100 kHz,基帶序列碼速率為10 kb/s,當(dāng)實(shí)現(xiàn)2ASK時,如果基帶序列為1碼,應(yīng)輸出5個正弦載波,為0則應(yīng)輸出零電平??蓪⒒鶐蛄械乃俾士刂妻D(zhuǎn)為控制當(dāng)序列符號為1時能輸出正弦波的數(shù)量,而載波的頻率是通過向自制DDS信號源寫入載波頻率控制字實(shí)現(xiàn)的。因此,當(dāng)確定載波頻率時,從單片機(jī)輸入一個數(shù)字x表示當(dāng)序列符號為1時能輸出正弦波的數(shù)量,則可確定基帶序列碼的速率。如圖2所示,數(shù)字x通過din[7..0]輸入并存儲到了模塊內(nèi)部一個寄存器中,內(nèi)部一個計(jì)數(shù)器從0開始計(jì)數(shù),每當(dāng)計(jì)滿x-1,計(jì)數(shù)器清零,并且使內(nèi)部一個標(biāo)志位flag取反。當(dāng)flag為1時,輸出端口adr-out[9..0]輸出一定規(guī)律的連續(xù)地址查表RAM-1 024 B存儲器(里面存的是正弦波表),控制輸出正弦載波;當(dāng)已輸出x個時,flag取反為0,則控制輸出一個固定地址到RAM-1 024 B,這個固定地址里存為0值,則此時輸出0電平。循環(huán)下去即可實(shí)現(xiàn)2ASK調(diào)制。同理,當(dāng)選擇輸出2PSK時,每當(dāng)flag取反一次則將輸出的正弦載波反相一次,則就實(shí)現(xiàn)了2PSK調(diào)制。當(dāng)選擇輸出2FSK時,每當(dāng)flag取反一次,則分別將兩個頻率控制字送入自制DDS信號源,從而控制輸出了兩個頻率相互變化的2FSK輸出。
模擬信號相關(guān)文章:什么是模擬信號
fpga相關(guān)文章:fpga是什么
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理 塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 離子色譜儀相關(guān)文章:離子色譜儀原理
評論