王 歡,郭策安
(沈陽(yáng)理工大學(xué) 裝備工程學(xué)院,遼寧 沈陽(yáng) 110159)
1973年,美國(guó)國(guó)防部研究建立了新一代衛(wèi)星導(dǎo)航系統(tǒng)“Navigation Satellite Timing and Ranging/Global Positioning System”即“授時(shí)與測(cè)距導(dǎo)航系統(tǒng)”,通常稱(chēng)為“全球衛(wèi)星定位系統(tǒng)”,簡(jiǎn)稱(chēng)“GPS”[1].GPS系統(tǒng)定位精度高,全天候開(kāi)放,近年來(lái)在導(dǎo)航定位等多方面得到了廣泛的應(yīng)用.GPS領(lǐng)域中任何研究必須首先建立真實(shí)可靠的GPS衛(wèi)星信號(hào),然后才能推廣到應(yīng)用中.而真實(shí)的GPS衛(wèi)星信號(hào)是高頻RF(Radio Frequency)信號(hào),并夾雜于不斷變化的環(huán)境噪聲中,其硬件模擬方法需要考慮高頻信號(hào)的傳播、延時(shí)、多徑干擾等因素,導(dǎo)致其硬件模擬設(shè)備非常復(fù)雜,而且無(wú)法模擬多種環(huán)境下的GPS衛(wèi)星信號(hào).而基于現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array,FPGA)[2]的GPS衛(wèi)星導(dǎo)航信號(hào)發(fā)生器采用Xilinx公司VirtexⅣ系列的XC3S500e-4pq208芯片,加載不同的應(yīng)用程序,可以很好地解決上述問(wèn)題.
本文通過(guò)分析GPS信號(hào)發(fā)生器中偽隨機(jī)序列對(duì)載波的調(diào)制,以及偽隨機(jī)序列與基帶速率進(jìn)行異或運(yùn)算后生成復(fù)合碼的過(guò)程,運(yùn)用擴(kuò)頻通信的生成原理和技術(shù)理論,對(duì)GPS衛(wèi)星導(dǎo)航信號(hào)發(fā)生器進(jìn)行設(shè)計(jì),并采用Modelsim軟件進(jìn)行仿真.這一研究有利于優(yōu)化GPS信號(hào)發(fā)生器中數(shù)字信號(hào)基帶處理過(guò)程,進(jìn)一步提高其抗干擾性和保密性,對(duì)開(kāi)發(fā)GPS信號(hào)發(fā)生器產(chǎn)品以及相關(guān)領(lǐng)域的研究工作都具有重要的意義.
本文基于FPGA,主要對(duì)分頻模塊、Gold碼發(fā)生器模塊和二進(jìn)制相移鍵控(Binary Phase Shift Keying,BPSK)調(diào)制模塊進(jìn)行設(shè)計(jì),在實(shí)現(xiàn)較為精確的偽隨機(jī)碼同步后,用擴(kuò)頻模塊進(jìn)行頻譜拓寬,加入載波,并采用BPSK的調(diào)制方式進(jìn)行調(diào)制.頂層模塊的原理如圖1所示.
圖1 頂層模塊原理圖
對(duì)設(shè)計(jì)程序進(jìn)行綜合、仿真等一系列操作后,可將具有特定功能的設(shè)計(jì)實(shí)體定義為一個(gè)元件.頂層模塊的主要功能是通過(guò)元件例化[3],描述元件之間端口界面的連接狀況,把電路設(shè)計(jì)元件或子模塊連接成一個(gè)完整的電路.圖2所示為綜合FPGA程序后得到的頂層模塊的綜合原理圖.
圖2 頂層模塊的綜合原理圖
在圖2中,左邊的輸入信號(hào)包括時(shí)鐘信號(hào)Clk、復(fù)位信號(hào)Reset,右邊的輸出信號(hào)為Out1和Sine(5∶0).Out1是偽隨機(jī)碼與基帶速率異或運(yùn)算后的輸出,Sine(5∶0)是直接數(shù)字式頻率合成器(Direct Digital Synthesizer,DDS)輸出的正弦載波經(jīng)BPSK調(diào)制的信號(hào)波.
時(shí)鐘分頻器[4]一般分為如下兩種:一種是將單一頻率信號(hào)的頻率降低為原來(lái)的1/k(可稱(chēng)作k分頻方法);另一種是將信號(hào)中不同頻率成分的各種信號(hào)分成幾個(gè)頻率段.本文采用k分頻的分頻器,首先對(duì)100 MHz進(jìn)行50分頻,將其降到2 MHz,接著對(duì)2 MHz進(jìn)行40分頻,將頻率降到50 kHz.圖3所示為采用k分頻方法的時(shí)鐘分頻電路圖.圖4所示為綜合FPGA程序后得到的時(shí)鐘分頻器的綜合原理圖.
圖3 時(shí)鐘分頻電路圖
圖4 時(shí)鐘分頻器的綜合原理圖
分頻模塊程序的關(guān)鍵語(yǔ)句如下:
if count1="11000" then
count1<="00000";
clk_2Mtemp <= not clk_2Mtemp ;
else
count1<=count1+"00001";
clk_2M <= clk_2Mtemp.
C/A碼是偽隨機(jī)碼,又稱(chēng)為偽隨機(jī)序列.在GPS C/A碼發(fā)生器[5]中,通常采用反饋型移位寄存器來(lái)產(chǎn)生偽隨機(jī)序列.C/A碼發(fā)生器主要由一個(gè)時(shí)鐘分頻器和兩個(gè)帶反饋的線性碼發(fā)生器組成.GPS信號(hào)發(fā)生器生成的C/A碼的碼長(zhǎng)N=1 023位,碼元寬度T0=0.977 52 μs,周期T=NT0=1 ms,基碼速率為1.023 Mbit/s.C/A碼的生成過(guò)程如圖5所示.
圖5 C/A碼的生成過(guò)程
由C/A碼的設(shè)計(jì)規(guī)范可知,C/A碼為Gold組合碼,是由兩個(gè)10級(jí)移位寄存器產(chǎn)生的.移位寄存器G1的反饋抽頭連接在第3,10級(jí)上,G2的5個(gè)反饋抽頭分別為第2,3,6,9,10級(jí).這些寄存器的狀態(tài)信息由異或電路運(yùn)算后反饋到第1級(jí).
碼發(fā)生器模塊程序的關(guān)鍵語(yǔ)句如下:
temp1 <= G1(2) xor G1(9);
G1<=G1(8 DOWNTO 0)& temp1;
temp2 <= G2(5) xor G2(4));
G2<=G2(8 DOWNTO 0)& temp2.
圖6所示為綜合FPGA程序后得到的碼發(fā)生器模塊的綜合原理圖.
圖6 碼發(fā)生器模塊的綜合原理圖
在二進(jìn)制數(shù)字調(diào)制[6-7]中,當(dāng)正弦載波的相位隨二進(jìn)制數(shù)字基帶信號(hào)離散變化時(shí),將產(chǎn)生BPSK信號(hào).通常用一條信號(hào)載波的0°相位和180°相位分別表示二進(jìn)制數(shù)字基帶信號(hào)的1和0.BPSK信號(hào)的時(shí)域表達(dá)式為:
uBPSK(t)=Acos(ωct+φn)
(1)
式中:A為載波信號(hào)的振幅;ωc為載波信號(hào)的角頻率;φn為載波信號(hào)第n個(gè)符號(hào)的絕對(duì)相位,且取值為0或π.當(dāng)發(fā)送二進(jìn)制符號(hào)1時(shí),已調(diào)信號(hào)uBPSK(t)取0°相位,而發(fā)送二進(jìn)制符號(hào)0時(shí),uBPSK(t)取180°相位.
BPSK信號(hào)的波形如圖7所示.
采用直接序列擴(kuò)頻得到的信號(hào)來(lái)調(diào)制正弦載波,能夠輸出預(yù)期的調(diào)制波信號(hào)(GPS衛(wèi)星導(dǎo)航模擬信號(hào)).
BPSK調(diào)制模塊的關(guān)鍵語(yǔ)句為:
if out2=‘0’ then
sine <= sine1;
else sine <= “111111”-sine1+“000001”.
圖8所示為綜合FPGA程序后得到的BPSK調(diào)制模塊的綜合原理圖.
圖7 BPSK信號(hào)的波形
圖8 BPSK調(diào)制模塊的綜合原理圖
將調(diào)制模塊的復(fù)位端Reset設(shè)為“1”,當(dāng)Out2為“0”且Clk為上升沿時(shí),信號(hào)Sine波形與DDS波形相同;當(dāng)Out2為“1”且Clk為上升沿時(shí),信號(hào)Sine波形與DDS波形的相位相反,即信號(hào)Sine波形發(fā)生翻轉(zhuǎn).
采用Xilinx公司VirtexⅣ系列的XC3S500e-4pq208芯片,通過(guò)Modelsim軟件進(jìn)行仿真時(shí),時(shí)鐘頻率設(shè)置為100 MHz,仿真時(shí)間設(shè)置為10 μs.
在時(shí)鐘分頻電路中,50分頻模塊的輸入時(shí)鐘信號(hào)Clk為100 MHz的系統(tǒng)時(shí)鐘,進(jìn)行50分頻后,輸出為2 MHz的時(shí)鐘信號(hào)“Clk_2 MHz”(圖9).
圖9 100 MHz時(shí)鐘分頻至2 MHz的分頻模塊運(yùn)行結(jié)果
經(jīng)過(guò)50分頻輸出的“Clk_2 MHz”時(shí)鐘信號(hào),作為40分頻模塊的輸入時(shí)鐘信號(hào),即此時(shí)的輸入時(shí)鐘信號(hào)為2 MHz,進(jìn)行40分頻后,輸出為50 kHz的時(shí)鐘信號(hào)“Clk_50 kHz”(圖10).
圖10 2 MHz時(shí)鐘分頻至50 kHz的分頻模塊運(yùn)行結(jié)果
碼發(fā)生器是本文獲得GPS衛(wèi)星導(dǎo)航信號(hào)發(fā)生器調(diào)制信號(hào)的基礎(chǔ).選擇不同的衛(wèi)星信號(hào)可以產(chǎn)生不同的C/A碼,只有獲得正確的C/A碼才能進(jìn)行后續(xù)調(diào)制.本文選擇0號(hào)測(cè)試衛(wèi)星的信號(hào)進(jìn)行GPS衛(wèi)星導(dǎo)航信號(hào)發(fā)生器的仿真設(shè)計(jì)與實(shí)現(xiàn).
C/A碼發(fā)生器模塊輸入的時(shí)鐘信號(hào)Clkin為2 MHz,仿真運(yùn)行后可得到0號(hào)衛(wèi)星的偽隨機(jī)碼CA_OUT(圖11).
圖11 0號(hào)衛(wèi)星的偽隨機(jī)碼仿真結(jié)果
頂層模塊是一個(gè)特殊的模塊,經(jīng)過(guò)綜合可被看作電路模塊的“封裝”體.它的主要功能是對(duì)時(shí)鐘分頻電路模塊、碼發(fā)生器模塊和BPSK調(diào)制模塊進(jìn)行例化封裝[7],使得3個(gè)子模塊連接成一個(gè)完整的電路.在頂層模塊中,通過(guò)例化后3個(gè)子模塊的輸入和輸出可檢驗(yàn)各子模塊的正確性.衛(wèi)星導(dǎo)航信號(hào)發(fā)生器的頂層模塊仿真波形如圖12所示.
圖12 衛(wèi)星導(dǎo)航信號(hào)發(fā)生器的頂層模塊仿真波形
由圖12可知:“Clk_50 kHz”為基帶速率;C/A碼與基帶速率的異或運(yùn)算可生成“Out1”;“Sine”是分頻模塊和碼發(fā)生器模塊加入“20 MHz DDS”載波與D觸發(fā)器,經(jīng)BPSK調(diào)制而最終形成的信號(hào),即GPS信號(hào)發(fā)生器發(fā)出的信號(hào).
本文在分析GPS導(dǎo)航信號(hào)形成過(guò)程的基礎(chǔ)上,設(shè)計(jì)了時(shí)鐘分頻模塊、C/A碼發(fā)生器模塊和BPSK載波調(diào)制模塊,采用硬件描述語(yǔ)言編程,通過(guò)FPGA/Modelsim平臺(tái)仿真驗(yàn)證,實(shí)現(xiàn)了0號(hào)衛(wèi)星GPS導(dǎo)航信號(hào)發(fā)生器的仿真設(shè)計(jì).所設(shè)計(jì)的民用GPS衛(wèi)星導(dǎo)航信號(hào)發(fā)生器在數(shù)字信號(hào)基帶處理過(guò)程中具有較優(yōu)越的性能,保密性和抗干擾性強(qiáng).在硬件設(shè)計(jì)中,為便于驗(yàn)證、說(shuō)明和調(diào)試,對(duì)信號(hào)參數(shù)進(jìn)行了映射處理,這與衛(wèi)星信號(hào)的實(shí)際參數(shù)不完全一致.此外,對(duì)加入噪聲的情況也考慮不周.這些不足均需在今后工作中進(jìn)一步完善.