孟麗妍
摘要:此設(shè)計是在MAX+plusⅡ開發(fā)軟件環(huán)境下,使用硬件描述語言VHDL來設(shè)計2ASK和2FSK調(diào)制器。本文給出了在MAX+plusⅡ開發(fā)軟件環(huán)境下,利用VHDL硬件描述語言設(shè)計2ASK和2FSK的具體方法和仿真并分析結(jié)果。
關(guān)鍵詞:VHDL;2FSK/2ASK;調(diào)制編譯
中圖分類號:TN761 文獻標(biāo)志碼:A 文章編號:1674-9324(2017)33-0196-02
一、2FSK/2ASK的VHDL設(shè)計
由于2FSK/2ASK為模擬信號,而FPGA只能產(chǎn)生數(shù)字信號,因此需對正弦信號采樣并經(jīng)模數(shù)變換來得到所需的2FSK/2ASK信號。本例由FPGA產(chǎn)生正弦信號的采樣值。
2FSK的設(shè)計:2FSK的設(shè)計是由分頻器、m序列產(chǎn)生器、跳變檢測、2∶1數(shù)據(jù)選擇器、正弦波信號產(chǎn)生器和DAC數(shù)模變換器等六部分共同組成,其中的前五部分由FPGA器件來完成。
2ASK的設(shè)計:在2FSK的基礎(chǔ)上,設(shè)計2ASK信號發(fā)生器。當(dāng)檢測到基帶碼元的上升沿時,2ASK與2FSK是一致的,在檢測到基帶碼元的下降沿時,2ASK使輸出波形為“零”值即可。可以通過一個按鍵控制信號發(fā)生器輸出2FSK或是2ASK信號。
二、功能仿真波形
(一)分頻
本例中數(shù)據(jù)傳送速率為300kHz,要求產(chǎn)生兩個不同的正弦信號,分別是12MHz的正弦信號和6MHz和正弦信號。由于正弦信號每周期取20個采樣點,所以要求能夠產(chǎn)生下面3個時鐘信號,分別是300kHz的數(shù)據(jù)速率、12MHz的正弦信號和6MHz的正弦信號。其中的基準(zhǔn)時鐘由一個12MHz的晶振提供。設(shè)計中要求一個2分頻(產(chǎn)生6MHz信號),然后載20分頻(產(chǎn)生300kHz信號)共有兩個分頻值。
(二)m序列
m序列作為一種常用的偽隨機碼,顯著特點是可預(yù)見性、隨機特性和循環(huán)特性,最重要的是它具有良好的自相關(guān)特性,非常適于通信領(lǐng)域中的信號流的模擬與分析。本設(shè)計利用一種帶有兩個反饋抽頭的三級反饋移位寄存器得到一串“1110010”循環(huán)序列,同時采取措施防止進入全“0”狀態(tài)。
(三)跳變檢測
在正弦波的產(chǎn)生中引入跳變檢測,可以使每次基帶碼元上升沿或下降沿到來時,對應(yīng)輸出波形位于正弦波形的sin0處。
基帶信號的跳變檢測有很多方法,下圖1所示為一種便于在可編程邏輯器件中實現(xiàn)的方法。
(四)頻率選擇
選擇正弦波產(chǎn)生器的兩個輸入時鐘是由2:1數(shù)據(jù)選擇器來實現(xiàn)的。一個時鐘的頻率為12MHz,正弦波產(chǎn)生器產(chǎn)生一個12MHz的正弦波,代表數(shù)字信號“0”;另一個時鐘的頻率為6MHz,產(chǎn)生一個6MHz的正弦波信號,代表數(shù)字信號“1”。本程序中用到3個頻率:CLOCK、CLOCK1和CLOCK2。
其中,MODE表示調(diào)制方式:MODE=0表示2FSK調(diào)制,MODE=1表示2ASK調(diào)制。M_CODE為m序列的數(shù)字信息。
在2FSK中,用與CLOCK相對應(yīng)的正弦波表示‘0,CLOCK1表示‘1;在2ASK中的正弦波頻率則都用CLOCK1。在設(shè)計中,數(shù)字基帶信號與2FSK調(diào)制信號的對應(yīng)關(guān)系為:“1”對應(yīng)6MHz,“0”對應(yīng)12MHz。
(五)正弦信號的產(chǎn)生
整個系統(tǒng)設(shè)計的一個關(guān)鍵是正弦波發(fā)生器。D/A變換即模擬信號要經(jīng)過采樣,量化過程后才能變成數(shù)字信號的過程。根據(jù)采樣定理,當(dāng)采樣頻率大于2倍的被采樣的最高頻率才可以無失真地恢復(fù)被采樣信號。本設(shè)計中每個采樣點采用8位量化編碼。
(六)功能仿真波形
1.2FSK仿真波形。如下面兩個圖中所示:MODE=0,工作在2FSK模式下,可以看到圖2中m序列由“1”變?yōu)椤?”,圖3中m序列由“0”變?yōu)椤?”輸出波形對應(yīng)的VALUE值的變化,同時也看出傳遞信號“0”的波形密度明顯比傳遞信號“1”的波形密度高。實現(xiàn)了2FSK的頻率變化傳遞數(shù)字信息,即12MHz表示信號“0”,6MHz表示信號“1”。
2.2ASK仿真波形。如下面兩個圖中所示:MODE=1,工作在2ASK模式下,可以看到圖4中m序列由“0”變?yōu)椤?”,圖5中m序列由“1”變?yōu)椤?”,輸出波形對應(yīng)的VALUE值的變化,可以看出,m序列值為“0”時,輸出為0,成功地實現(xiàn)了2ASK調(diào)制,波形有一些延時。
3.2ASK和2FSK的功能轉(zhuǎn)換。2ASK和2FSK功能上的轉(zhuǎn)換是根據(jù)MODE的值來控制的,如下圖6所示:MODE由0變成1,工作模式由2FSK轉(zhuǎn)變成2ASK。m序列的值沒有跳變,一直是“1”,對應(yīng)的正弦波形也沒有變化,相對應(yīng)的數(shù)值也沒有變化。而圖7中:MODE由1變成0,工作模式由2ASK變成了2FSK,m序列的值沒有跳變,一直是“0”,對應(yīng)的正弦波相應(yīng)的有正確的變化。
三、總結(jié)
本設(shè)計通過自動調(diào)用MAX7000S家族的EPM7032LC44-7型FPGA器件實現(xiàn)。在設(shè)計前分好功能模塊,分別進行編寫而最后進行綜合分析調(diào)試,達到我們要求的效果。
在這個設(shè)計中,需要輸入一個整周期內(nèi)20個采樣點的值,利用的是直接在程序中輸入20個采樣點的值。2FSK信號發(fā)生器主要由分頻器、m序列產(chǎn)生器、跳變檢測、正弦信號發(fā)生器和DAC幾個部分組成。2FSK的關(guān)鍵是通過判斷信號跳變是來改變頻率的變化,2ASK的關(guān)鍵是通過信號的跳變來改變幅度值的變化。
在編程的過程中,曾遇到了許多的問題。
第一,在處理分頻時,習(xí)慣的是2的倍數(shù)的分頻,在這個程序中需要一個20分頻,和一個二分頻,二分頻好實現(xiàn),而20分頻經(jīng)過反復(fù)編程、仿真、再編程才最終實現(xiàn)。
第二,在處理m序列的時候,一開始,沒有輸出,單獨把那個模塊拿出來編譯仿真都沒有問題,后來發(fā)現(xiàn)問題并不是出現(xiàn)在沒有時鐘的輸入,而是一開始分頻的數(shù)字太大,仿真出來的波形只有一個多周期,不夠?qū)崿F(xiàn)M序列的變換就完了,然后又重新改的合適的分頻數(shù),讓仿真出來的波形可以觀察到多個M序列周期的波形。
第三,在處理2ASK和2FSK的功能轉(zhuǎn)換的時候,雖然編程語言上沒有問題,邏輯上出現(xiàn)了問題,但是當(dāng)仿真波形時,總是和預(yù)期的結(jié)果不一樣,經(jīng)過反復(fù)的修改調(diào)試,終于達到了預(yù)期的結(jié)果。
VHDL Design and Implementation of 2ASK/2FSK Modulator
MENG Li-yan
(Shijiazhuang Railway Transport School,Shijiazhuang,Hebei 050000,China)
Abstract:This article is the use of MAX + plus Ⅱ software development environment,VHDL hardware description language used to design 2ASK and 2FSK modulators.In the MAX + plus Ⅱ software development environment,the use of VHDL hardware description language design 2ASK and 2FSK specific methods and results of simulation and analysis.
Key words:VHDL;2FSK/2ASK;modulation circuit compiler