基于FPGA的混合擴(kuò)頻發(fā)射機(jī)設(shè)計(jì)與實(shí)現(xiàn)
摘要:以Alter公司的FPGA為硬件平臺(tái),以QuartusⅡ?yàn)樵O(shè)計(jì)工具,來(lái)實(shí)現(xiàn)該直擴(kuò)/跳頻混合發(fā)射系統(tǒng)。頂層采用圖形設(shè)計(jì)方式,各個(gè)模塊均采用Verilog語(yǔ)言進(jìn)行設(shè)計(jì)。編碼模塊采用了RS(255,223)碼與卷積碼(2,1,7)相結(jié)合,擴(kuò)頻模塊采用GOLD碼序列進(jìn)行擴(kuò)頻,調(diào)制模塊采用MSK調(diào)制。仿真結(jié)果表明:各個(gè)仿真模塊均滿(mǎn)足設(shè)計(jì)的要求,整個(gè)系統(tǒng)輸出穩(wěn)定無(wú)毛刺,達(dá)到了預(yù)期的效果。
關(guān)鍵詞:直擴(kuò)/跳頻;發(fā)射機(jī);Verilog HDL;MSK
0 引言
擴(kuò)頻通信是將待傳輸?shù)男畔?shù)據(jù)用偽隨機(jī)序列進(jìn)行調(diào)制,實(shí)現(xiàn)頻譜擴(kuò)展后再發(fā)射出去進(jìn)行傳輸。在接收端,使用與發(fā)射端相同的偽隨機(jī)碼對(duì)接收到的信號(hào)進(jìn)行相關(guān)處理,恢復(fù)出原來(lái)的信息。直擴(kuò)/跳頻(DS/FH)混合模式是一種有效的方法,它結(jié)合了直擴(kuò)擴(kuò)頻與跳頻擴(kuò)頻的優(yōu)點(diǎn),消除了直擴(kuò)擴(kuò)頻與跳頻擴(kuò)頻的局限性,可廣泛應(yīng)用于軍事通信中,達(dá)到更好的抗干擾效果。
該設(shè)計(jì)以FPGA為硬件平臺(tái),以QuartusⅡ?yàn)樵O(shè)計(jì)工具來(lái)實(shí)現(xiàn)直擴(kuò)/跳頻(DS/FH)發(fā)射機(jī)的。頂層采用圖形設(shè)計(jì)方式,各個(gè)模塊均采用Veri log語(yǔ)言進(jìn)行設(shè)計(jì),編碼模塊采用了RS(255,223)碼與卷積碼(2,1,7)相結(jié)合,擴(kuò)頻模塊采用GOLD碼序列進(jìn)行擴(kuò)頻,調(diào)制模塊采用MSK調(diào)制。
1 發(fā)射系統(tǒng)的總體框圖
所設(shè)計(jì)的發(fā)射機(jī)系統(tǒng)主要包括:信道編碼器、組幀電路、直擴(kuò)部分、成形電路、調(diào)制器、數(shù)/模轉(zhuǎn)換器、頻率合成器、RS碼產(chǎn)生器、混頻器、功放、天線等。組成框圖如圖1所示。
射頻部分主要采用跳頻技術(shù)將中頻信號(hào)進(jìn)行頻譜搬移,通過(guò)跳頻調(diào)制和高頻混頻兩步完成,用到頻率合成技術(shù)和濾波等,這主要通過(guò)硬件實(shí)現(xiàn)。基帶部分則完成FPGA的設(shè)計(jì),下面將詳細(xì)介紹。
主要可以劃分為以下幾個(gè)模塊:編碼模塊、組幀模塊、擴(kuò)頻模塊、調(diào)制模塊。編碼模塊完成信息的RS編碼和卷積編碼;組幀模塊在經(jīng)過(guò)編碼的數(shù)據(jù)前面添加位同步和幀同步信息;直接序列擴(kuò)頻模塊將信號(hào)頻譜擴(kuò)展到一個(gè)很寬的頻段上;MSK調(diào)制模塊利用擴(kuò)頻序列去調(diào)制載波,將擴(kuò)頻調(diào)制信號(hào)搬移到射頻上去,然后經(jīng)過(guò)功率放大,D/A變換發(fā)送出去。
2 各個(gè)發(fā)射模塊的功能介紹及設(shè)計(jì)
2.1 編碼模塊設(shè)計(jì)
整個(gè)編碼實(shí)現(xiàn)由4級(jí)組成,分別是RS編碼、交織、并/串轉(zhuǎn)換和卷積編碼,如圖2所示。
[!--empirenews.page--]
2.2 組幀模塊設(shè)計(jì)
在信息發(fā)送端,經(jīng)過(guò)編碼的數(shù)據(jù)插入狀態(tài)標(biāo)識(shí)組成數(shù)據(jù)幀。再加上同步序列、幀同步,組成1幀。組幀器的設(shè)計(jì)思路:首先將輸入數(shù)據(jù)放入一個(gè)寄存器,輸出12 b的同步序列,以及幀同步碼——巴克碼;之后,將保存的部分狀態(tài)標(biāo)識(shí)數(shù)據(jù)依次輸出;最后,通過(guò)移位法將輸人數(shù)據(jù)依次移位輸出,輸完之后加上幀尾。設(shè)計(jì)結(jié)果如圖3所示。
圖3中:
clk:時(shí)鐘采樣信號(hào),組幀器在其上升沿處數(shù)據(jù)采樣,并進(jìn)行組幀運(yùn)算。
reset_n:組幀器異步復(fù)位控制信號(hào)。定義為1表示不進(jìn)行復(fù)位操作,采樣數(shù)據(jù)有效,組幀器正常操作;定義為0表示進(jìn)行復(fù)位操作,采樣數(shù)據(jù)寄存器清零,組幀器清零。
data_in:信啟、數(shù)據(jù)的輸入端口,其位寬為1 b。
state_in:狀態(tài)標(biāo)識(shí)輸入比特。
valid:輸入數(shù)據(jù)的有效位。
data_out:組幀后碼字輸出端口,其位寬為1 b。
outvalid:輸出數(shù)據(jù)的有效位。
2.3 擴(kuò)頻模塊設(shè)計(jì)
GOLD碼序列產(chǎn)生器的設(shè)計(jì)結(jié)果如圖4所示。在整個(gè)模塊中分為2個(gè)進(jìn)程。一是在時(shí)鐘上升沿到來(lái)并且復(fù)位結(jié)束時(shí),進(jìn)行m序列優(yōu)選對(duì)的算法,分別將兩個(gè)31位的m序列值存入寄存器中,初值都為“11111”。另一個(gè)進(jìn)程通過(guò)輸入位valid進(jìn)行判斷。通過(guò)valid=1,進(jìn)行對(duì)位異或運(yùn)算,計(jì)算GOLD碼,產(chǎn)生一組碼后,將其保存,然后在連續(xù)零處添加1個(gè)零,然后輸出,其余的碼組通過(guò)移位實(shí)現(xiàn),這樣就生成了32 b×32 b的GOLD碼,串行輸出。
圖4中:
clk:時(shí)鐘采樣信號(hào),GOLD碼編碼器在其上升沿處數(shù)據(jù)采樣,并進(jìn)行產(chǎn)生GOLD碼運(yùn)算。
reset_n:GOLD碼編碼器異步復(fù)位控制信號(hào)。定義為1表示不進(jìn)行復(fù)位操作,數(shù)據(jù)有效,GOLD碼編碼器正常操作;定義為0表示進(jìn)行復(fù)位操作,數(shù)據(jù)寄存器清零,并進(jìn)行初值賦值。
valid:開(kāi)啟計(jì)算GOLD碼的開(kāi)關(guān)。
out:GOLD碼輸出端口,其位寬為1 b。
outvalid:輸出數(shù)據(jù)的有效位。
2.4 調(diào)制模塊設(shè)計(jì)
根據(jù)MSK的基本原理,并且根據(jù)公式改變頻率控制字的值即可改變NCO的輸出頻率。其中FCW為用二進(jìn)制初碼表示的頻率控制字。fin為NCO的采樣頻率,n為頻率控制字的位數(shù),相當(dāng)為輸入二進(jìn)制初碼的位數(shù)。即為輸出所要求的頻率。
MSK調(diào)制器的實(shí)現(xiàn)需要3個(gè)必要條件。一是在碼元轉(zhuǎn)換時(shí)刻,進(jìn)行FPGA中控制NCO的頻率輸出的切換。二是相位連續(xù)。由于NCO輸出信號(hào)的相位始終能保持連續(xù),滿(mǎn)足了條件。三是在一個(gè)符號(hào)周期內(nèi)必須包含1/4載波周期的整數(shù)倍。根據(jù)必要條件三,可以得出下式:
因此,當(dāng)fs=4 MHz,即輸入MSK調(diào)制器的符號(hào)采樣率為4 MHz,當(dāng)n=20時(shí),則fc為20 MHz,即載波頻率為20 MHz。因此,便完成了MSK調(diào)制器的FPGA實(shí)現(xiàn)。
根據(jù)上面的實(shí)現(xiàn)方式,需要一個(gè)開(kāi)關(guān),根據(jù)輸入碼字“1”或“0”來(lái)改變NCO輸入頻率字,分別輸出頻率24 MHz與16 MHz。于是設(shè)計(jì)的MSK調(diào)制器如圖5所示,前面部分是開(kāi)關(guān),后面部分是NCO。
圖5中clk:時(shí)鐘采樣信號(hào),MSK調(diào)制器的開(kāi)關(guān)在其上升沿處數(shù)據(jù)采樣。[!--empirenews.page--]
clk_sample:時(shí)鐘信號(hào),NCO時(shí)鐘采樣信號(hào)。
data_in:MSK調(diào)制器的字符輸入端口,其位寬為1b。
reset_n:MSK調(diào)制器異步復(fù)位控制信號(hào)。定義為1表示不進(jìn)行復(fù)位操作,數(shù)據(jù)有效,MSK調(diào)制器正常操作;定義為0表示進(jìn)行復(fù)位操作,數(shù)據(jù)寄存器清零,MSK調(diào)制器清零。
valid:開(kāi)啟MSK調(diào)制器的開(kāi)關(guān)。
out:MSK調(diào)制器輸出端口,其位寬為16b。
outvalid:輸出數(shù)據(jù)的有效位。
3 驗(yàn)證與實(shí)現(xiàn)
下面詳細(xì)敘述采用CycloneⅡ開(kāi)發(fā)板進(jìn)行編碼、組幀、擴(kuò)頻、調(diào)制模塊的驗(yàn)證結(jié)果。
3.1 編碼模塊的驗(yàn)證
首先驗(yàn)證RS編碼模塊。采用輸入信號(hào)為1~223,這223個(gè)十進(jìn)制數(shù)。通過(guò)Matlab仿真,輸出的校正位應(yīng)該是104,237,65,17,239,22,155,184,61,164,225,240,171,17,31,251,196,2,221,208,31,239,17,192,196,214,197,41,87,190,41,120。QuartusⅡ測(cè)試結(jié)果由圖6所示。從圖中可以看出,設(shè)計(jì)符合要求。
其次驗(yàn)證交織編碼模塊。輸入數(shù)據(jù)為上面RS編碼器的輸出。輸出數(shù)據(jù)為1,17,33,…;2,18,34,…;3,19,35,…;…;16,32,48,…。仿真結(jié)果如圖7所示。由于數(shù)據(jù)太長(zhǎng)無(wú)法顯示,只顯示部分。
最后驗(yàn)證卷積編碼,同時(shí)達(dá)到驗(yàn)證整個(gè)編碼器的功能的目的。輸入數(shù)據(jù)為上述編碼輸入的數(shù)據(jù)。根據(jù)Matlab的仿真,輸出的數(shù)據(jù)為1,1,1,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,…。仿真結(jié)果如圖8所示,參考時(shí)鐘為clk16。
[!--empirenews.page--]
3.2 組幀模塊的驗(yàn)證
組幀模塊比較簡(jiǎn)單,狀態(tài)標(biāo)識(shí)通過(guò)外界輸入,且長(zhǎng)度要求為31b。此模塊的輸入數(shù)據(jù)為上面編碼模塊的輸出數(shù)據(jù)。仿真結(jié)果如圖9所示,從frame_valid為高電平開(kāi)始,輸出12 b的“1”的導(dǎo)頻碼;后面是7 b的幀同步碼——巴克碼;之后,將部分狀態(tài)標(biāo)識(shí)數(shù)據(jù)與卷積編碼器的輸出數(shù)據(jù)1,1,1,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,…依次輸出;最后輸出剩余狀態(tài)標(biāo)識(shí)數(shù)據(jù)。
3.3 擴(kuò)頻模塊的驗(yàn)證
擴(kuò)頻實(shí)現(xiàn)原理:輸入數(shù)據(jù)與擴(kuò)頻碼進(jìn)行異或運(yùn)算,需要一個(gè)異或運(yùn)算器,如圖10所示。
圖10中clk:時(shí)鐘信號(hào),異或運(yùn)算器在其上升沿處數(shù)據(jù)采樣。
frame_data:異或運(yùn)算器的數(shù)據(jù)輸入端口,其位寬為1b。
frame_valid:輸入數(shù)據(jù)的有效標(biāo)志位。
gold_valid:GOLD碼輸出有效標(biāo)志位。
gold_data:GOLD碼。
goldout_valid:輸出數(shù)據(jù)有效標(biāo)志位。
gold_out:異或運(yùn)算器輸出端口,其位寬為1b。
擴(kuò)頻模塊的輸入數(shù)據(jù)為組幀模塊輸出的數(shù)據(jù),碼為GOLD碼。仿真結(jié)果如圖11所示,clk16_31是采樣時(shí)鐘,frame_out是數(shù)據(jù)輸入,gold是GOLD碼輸入,out為輸出。
3.4 調(diào)制模塊的驗(yàn)證
由于是驗(yàn)證模塊的正確性,因此時(shí)鐘與數(shù)據(jù)都是隨便取的。將程序下載到FPGA平臺(tái)上,通過(guò)SignalTapⅡ捕捉數(shù)據(jù)。結(jié)果如圖12所示,clk1M是輸入數(shù)據(jù),out是MSK調(diào)制的輸出結(jié)果。
4 結(jié)語(yǔ)
FPGA是整個(gè)發(fā)射機(jī)的核心,且FPGA的可編程性使電路的設(shè)計(jì)更具靈活性。本文即是以FPGA為硬件設(shè)計(jì)平臺(tái),QuartusⅡ?yàn)樵O(shè)計(jì)工具設(shè)計(jì)實(shí)現(xiàn)的一種直擴(kuò)/跳頻混合擴(kuò)頻發(fā)射系統(tǒng)。給出了發(fā)射機(jī)的系統(tǒng)模型,以及各個(gè)模塊的設(shè)計(jì)原理和仿真波形。仿真結(jié)果表明該FPGA設(shè)計(jì)是正確可行的,加入了擴(kuò)頻模塊,使得整個(gè)系統(tǒng)具有較高的性能指標(biāo),輸出穩(wěn)定無(wú)毛刺。