1. 引言
在GPS接收機(jī)的設(shè)計(jì)中,為了檢驗(yàn)和完善信號(hào)處理算法,需要在本地獲得GPS數(shù)字中頻信號(hào)數(shù)據(jù)。采用真實(shí)的數(shù)據(jù)并不是最佳選擇,主要是因?yàn)槠渲械脑S多信號(hào)屬性無(wú)法控制,也無(wú)法模擬不同的接收環(huán)境和干擾情況,這給算法的驗(yàn)證測(cè)試帶來(lái)麻煩;而且存儲(chǔ)GPS真實(shí)數(shù)據(jù)需要消耗大量的硬件資源。解決這一問(wèn)題的有效方法是設(shè)計(jì)一個(gè)能夠產(chǎn)生GPS數(shù)字中頻信號(hào)并且參數(shù)可控的仿真信號(hào)源。
通常的仿真信號(hào)源設(shè)計(jì)方式被割裂為兩種——純硬件方式和純軟件方式。純硬件方式是利用硬件器件和硬件表述直接進(jìn)行設(shè)計(jì),其設(shè)計(jì)難度大、周期長(zhǎng),而且系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的改變會(huì)帶來(lái)巨大的硬件設(shè)計(jì)工作量。純軟件設(shè)計(jì)的仿真信號(hào)源,是利用軟件語(yǔ)言在PC機(jī)上搭建整個(gè)系統(tǒng),其產(chǎn)生的數(shù)據(jù)需要被緩存起來(lái)以供硬件測(cè)試。這樣做不僅浪費(fèi)存儲(chǔ)資源,而且難以滿(mǎn)足實(shí)時(shí)性要求。本文介紹了一種新的GPS中頻信號(hào)源的FPGA設(shè)計(jì)方案,它是利用Xilinx System Generator for DSP工具可以自動(dòng)由系統(tǒng)級(jí)表述轉(zhuǎn)換成FPGA硬件表述的特點(diǎn),完成從軟件圖形化設(shè)計(jì)到FPGA硬件實(shí)現(xiàn)的一體化流程。其優(yōu)點(diǎn)在于,功能設(shè)計(jì)部分在MATLAB/SIMULINK下完成,信號(hào)源產(chǎn)生結(jié)構(gòu)清晰,進(jìn)行信號(hào)驗(yàn)證檢測(cè)和參數(shù)更改;硬件實(shí)現(xiàn)時(shí),通過(guò)Xilinx System Generator 工具,自動(dòng)生成優(yōu)化的硬件描述語(yǔ)言文件和硬件測(cè)試文件,輔以Xilinx 硬件開(kāi)發(fā)平臺(tái),大大減少了直接的硬件設(shè)計(jì)工作量,縮短了從設(shè)計(jì)到實(shí)現(xiàn)的過(guò)程,也方便了對(duì)系統(tǒng)設(shè)計(jì)的修改和升級(jí)。
2. Xilinx System Generator for DSP
Xilinx System Generator是Xilinx公司開(kāi)發(fā)的FPGA輔助設(shè)計(jì)工具,包括嵌入Simulink的Xilinx 模塊集合(BlockSet)和模型到硬件的轉(zhuǎn)換軟件。它可自動(dòng)生成FPGA綜合、仿真和實(shí)現(xiàn)工具所需的命令文件。用戶(hù)可以在圖形化環(huán)境中完成系統(tǒng)模型的硬件開(kāi)發(fā)。在設(shè)計(jì)中,System Generator將Xilinx 模塊集合里的模塊映射為IP(Intellectual Property)庫(kù)中的模塊,接著從系統(tǒng)參數(shù)推斷出控制信號(hào)和電路,再將Simulink的分層設(shè)計(jì)轉(zhuǎn)換為VHDL的分層網(wǎng)表,之后調(diào)用Xilinx Core Generator 和VHDL模擬、綜合實(shí)現(xiàn)工具來(lái)完成硬件設(shè)計(jì),最后通過(guò)FPGA平臺(tái)實(shí)現(xiàn)硬件系統(tǒng)。這樣,設(shè)計(jì)者就可以輕而易舉地從一個(gè)抽象的系統(tǒng)級(jí)表述轉(zhuǎn)換到單一來(lái)源的門(mén)級(jí)的FPGA硬件表述。這也解決了不熟悉硬件語(yǔ)言描述的設(shè)計(jì)者進(jìn)行硬件設(shè)計(jì)實(shí)現(xiàn)的問(wèn)題。
3. GPS 數(shù)字中頻信號(hào)源的FPGA設(shè)計(jì)
3.1 GPS數(shù)字中頻信號(hào)
3.2 設(shè)計(jì)方案
圖1 GPS數(shù)字中頻信號(hào)源設(shè)計(jì)方案
根據(jù)GPS數(shù)字中頻信號(hào)的產(chǎn)生公式,我們可以得到如圖1所示的設(shè)計(jì)方案。其中每一個(gè)通道負(fù)責(zé)產(chǎn)生一顆特定衛(wèi)星(對(duì)應(yīng)一個(gè)特定的衛(wèi)星PRN號(hào))的擴(kuò)頻碼、導(dǎo)航數(shù)據(jù)等信號(hào)。參數(shù)設(shè)定模塊負(fù)責(zé)計(jì)算和設(shè)定各個(gè)模塊的關(guān)鍵參數(shù)(如衛(wèi)星PRN號(hào),載波頻率,碼發(fā)生器的寄存器狀態(tài)等),其中包括一個(gè)對(duì)應(yīng)GPS時(shí)間的Z計(jì)數(shù)器和X1計(jì)數(shù)器[3]。載波發(fā)生器是以Xilinx 模塊集合中的NCO(Numerically Controlled Oscillator)模塊[4]為核心搭建的,其頻率和相位可由參數(shù)設(shè)定模塊調(diào)控。多徑模塊可以模擬傳播過(guò)程中多徑效應(yīng),方案中是通過(guò)將前端一顆或多顆衛(wèi)星產(chǎn)生的信號(hào)經(jīng)過(guò)不同的延遲加入到原信號(hào)中實(shí)現(xiàn)的。濾波/采樣部分可以根據(jù)后續(xù)模塊的不同(C/A碼捕獲或P碼捕獲),在軟件設(shè)計(jì)中采用不同的參數(shù)(濾波器帶寬、采樣率),或在硬件實(shí)現(xiàn)時(shí)采用不同的硬件濾波器和采樣器。下面介紹C/A碼、P碼發(fā)生器、設(shè)定器以及其他幾個(gè)關(guān)鍵模塊的設(shè)計(jì)方案。
3.2.1 C/A碼發(fā)生器及設(shè)定器設(shè)計(jì)
GPS 的C/A碼是序列長(zhǎng)度為1023的GOLD碼,碼速率為1.023MHz,周期為1ms。由兩個(gè)10位移位寄存器G1和G2通過(guò)異或合并得到的,其移位多項(xiàng)式分別為 和 。
本方案中C/A碼設(shè)定器可以工作于兩種模式:
1)在碼循環(huán)周期的初始點(diǎn)或半中點(diǎn)設(shè)定。根據(jù)待設(shè)定的目標(biāo)GPS時(shí)刻對(duì)應(yīng)的計(jì)數(shù)器值,換算出距離未來(lái)最近的C/A碼循環(huán)周期初始點(diǎn)或半中點(diǎn)的碼片數(shù),并用此數(shù)值設(shè)置倒計(jì)數(shù)器初值,待其計(jì)數(shù)為零時(shí)C/A碼設(shè)定器將G1和G2寄存器復(fù)位到它們的初始狀態(tài)或半中點(diǎn)狀態(tài)。自此以后C/A碼發(fā)生器與目標(biāo)GPS時(shí)間實(shí)現(xiàn)同步。該設(shè)定過(guò)程的最大延遲為511ms.
2)即時(shí)設(shè)定。本方案中對(duì)每一個(gè)寄存器位單獨(dú)設(shè)計(jì)了設(shè)定單元,可以在下一個(gè)時(shí)鐘周期到來(lái)時(shí),將該位設(shè)定成0或1。在本工作模式中,模塊需要首先換算出目標(biāo)GPS時(shí)刻對(duì)應(yīng)的C/A碼狀態(tài)索引,之后結(jié)合預(yù)存的寄存器狀態(tài)表查找到G1和G2的寄存器狀態(tài),通過(guò)設(shè)定單元在下一個(gè)時(shí)鐘周期將狀態(tài)進(jìn)行修改。這種模式可以實(shí)現(xiàn)即時(shí)同步。
3.2.2 P碼發(fā)生器及設(shè)定器設(shè)計(jì)
GPS的P碼是由4個(gè)具有不同特征多項(xiàng)式的12位移位寄存器X1A,X1B,X2A,X2B的結(jié)果合并得到。通過(guò)譯碼截?cái)唷⒀舆t、時(shí)鐘控制等模塊實(shí)現(xiàn)X1B相對(duì)于X1A,X2B相對(duì)于X2A,以及X2A/X2B相對(duì)于X1A/X1B的相位進(jìn)動(dòng),從而產(chǎn)生周期為1.5秒的X1歷元以及周期為38個(gè)星期的P碼序列。通過(guò)控制 相對(duì)于 結(jié)果的延遲,達(dá)到產(chǎn)生不同衛(wèi)星對(duì)應(yīng)P碼的目的。
圖2 X2B狀態(tài)設(shè)定器工作流程圖
P碼設(shè)定器相對(duì)于C/A碼設(shè)定器要復(fù)雜的多,需要根據(jù)4個(gè)移位寄存器的不同情況進(jìn)行不同的設(shè)計(jì),且需要在不同的時(shí)間復(fù)位。圖2給出了我們提出的X2B寄存器設(shè)定器的設(shè)計(jì)算法,X1A,X1B和X2A的設(shè)定器的設(shè)計(jì)思路與之類(lèi)似。X1計(jì)數(shù)值,Z計(jì)數(shù)值和衛(wèi)星PRN號(hào)作為輸入。首先根據(jù)X1,Z計(jì)數(shù)值,計(jì)算出X2歷元內(nèi)的計(jì)數(shù)值X2和在一個(gè)X2B循環(huán)內(nèi)的計(jì)數(shù)值X2B。如果此時(shí)間處于一星期的X1A的最后一個(gè)循環(huán),需要在此循環(huán)結(jié)束時(shí)對(duì)X2B進(jìn)行截?cái)?。否則,根據(jù)設(shè)定時(shí)間對(duì)應(yīng)X2B寄存器的不同情況,推算出距離下一個(gè)寄存器初始狀態(tài)所需等待的P碼碼片數(shù)(N2B)。將此值作為計(jì)數(shù)器初值并開(kāi)始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為零時(shí)將X2B寄存器設(shè)置為初始狀態(tài),從此時(shí)刻開(kāi)始,該寄存器的狀態(tài)與目標(biāo)GPS時(shí)間達(dá)到同步。在實(shí)現(xiàn)該算法時(shí),利用Xilinx 模塊集合中的Mcode模塊編寫(xiě)算法程序。此種算法完成對(duì)所有4個(gè)寄存器的同步最大延遲小于500 。同樣,P 碼設(shè)定器也可工作在即時(shí)設(shè)定模式下。
3.2.3導(dǎo)航數(shù)據(jù)模塊
導(dǎo)航數(shù)據(jù)為50Hz的二進(jìn)制碼,由12.5分鐘長(zhǎng)的超幀組成,每個(gè)超幀分為25幀,每幀5個(gè)子幀,每個(gè)子幀10個(gè)字長(zhǎng),每個(gè)字長(zhǎng)30bit。每幀第1,2,3播放衛(wèi)星的星鐘修正參數(shù)和廣播星歷,第4,5個(gè)子幀為歷書(shū)數(shù)據(jù)、電離層修正參數(shù)及其它系統(tǒng)信息。方案中我們只設(shè)計(jì)第1,2個(gè)子幀,對(duì)于其它3個(gè)子幀,我們將NASA網(wǎng)站下載的24小時(shí)GPS歷書(shū)數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制比特文件,導(dǎo)入導(dǎo)航數(shù)據(jù)模塊產(chǎn)生。第1個(gè)子幀為遙測(cè)字(TLW),其前8個(gè)比特為同步頭(10001011),第9~24比特為衛(wèi)星測(cè)控信息和保留位(這里我們都置為0),最后6比特為校驗(yàn)位。第二個(gè)子幀為握手字(HOW),由Z計(jì)數(shù)(對(duì)P碼產(chǎn)生器中的X1歷元個(gè)數(shù)的計(jì)數(shù)),告警標(biāo)志,反欺騙標(biāo)志,子幀ID,保留位和校驗(yàn)位組成。
在實(shí)現(xiàn)時(shí),可以使用Xilinx Mcode模塊,結(jié)合星歷數(shù)據(jù)文件,產(chǎn)生仿真導(dǎo)航數(shù)據(jù),也可設(shè)計(jì)成對(duì)外的輸入接口,接真實(shí)導(dǎo)航數(shù)據(jù)或其它導(dǎo)航數(shù)據(jù)仿真器的輸出。
3.2.4 高斯白噪聲產(chǎn)生模塊
這里我們需要產(chǎn)生限帶的高斯白噪聲,由于偽隨機(jī)噪聲具有類(lèi)似于隨機(jī)噪聲的一些統(tǒng)計(jì)特性,具有隨機(jī)噪聲的特點(diǎn),我們采用與碼發(fā)生器中類(lèi)似的寄存器序列來(lái)產(chǎn)生偽隨機(jī)m序列。又因?yàn)閙序列的噪聲特性與其周期長(zhǎng)度有關(guān),周期越長(zhǎng),越接近白噪聲譜,我們這里采用特征多項(xiàng)式為 的m序列發(fā)生器。若m序列的碼元周期為 ,則在0~0.45/ (Hz)的范圍內(nèi)可認(rèn)為具有均勻的功率譜。因此通過(guò)控制 可以得到所需頻率范圍內(nèi)的模擬高斯白噪聲。
4.硬件實(shí)現(xiàn)及運(yùn)行結(jié)果
此GPS數(shù)字中頻信號(hào)源的設(shè)計(jì)方案在Simulink環(huán)境中完成了圖形化設(shè)計(jì)和仿真驗(yàn)證,并利用System Generator工具生成FPGA硬件表述文件和硬件測(cè)試文件,在Xilinx ISE環(huán)境下進(jìn)行了編譯和綜合,同時(shí)利用ModelSim進(jìn)行了硬件仿真驗(yàn)證。最后將Xilinx ISE生成的位流文件下載到采用Xilinx XC2S200 芯片的FPGA硬件平臺(tái)進(jìn)行了硬件系統(tǒng)實(shí)現(xiàn)和信號(hào)驗(yàn)證。圖3給出了基于本方案設(shè)計(jì)的仿真信號(hào)源所產(chǎn)生的GPS數(shù)字中頻信號(hào)的時(shí)域波形和功率譜(衛(wèi)星PRN號(hào)為1,中頻頻率為15.42MHz,信噪比10dB)。經(jīng)過(guò)與實(shí)際GPS中頻信號(hào)及其功率譜的對(duì)比發(fā)現(xiàn),二者特性是相一致的。
圖3 仿真信號(hào)源產(chǎn)生的 GPS數(shù)字中頻信號(hào)及功率譜
5.結(jié)論
文章從GPS數(shù)字中頻信號(hào)源的數(shù)學(xué)模型出發(fā),基于純硬件和純軟件信號(hào)源設(shè)計(jì)方式的缺點(diǎn),提出了兼具軟件設(shè)計(jì)靈活性和硬件設(shè)計(jì)實(shí)時(shí)高效性的GPS數(shù)字中頻信號(hào)源的設(shè)計(jì)方案。方案通過(guò)多通道并行結(jié)構(gòu)實(shí)現(xiàn)了對(duì)多顆可見(jiàn)衛(wèi)星信號(hào)的模擬,通過(guò)碼發(fā)生器和設(shè)定器實(shí)現(xiàn)了對(duì)任意GPS時(shí)間對(duì)應(yīng)C/A碼、P碼的產(chǎn)生和同步,并通過(guò)多徑、高斯白噪聲模塊模擬了信號(hào)傳播過(guò)程中的多徑效應(yīng)和噪聲環(huán)境。對(duì)衛(wèi)星PRN的選擇及各個(gè)模塊的關(guān)鍵參數(shù)進(jìn)行集中計(jì)算、設(shè)定和管理,方便了參數(shù)調(diào)節(jié)、對(duì)各種效應(yīng)影響的研究以及和其他信號(hào)處理模塊的協(xié)作[7]。本設(shè)計(jì)采用的基于System Generator的一體化流程,既降低了因系統(tǒng)修改和升級(jí)帶來(lái)的硬件設(shè)計(jì)工作量,又彌補(bǔ)了軟件方案實(shí)時(shí)性不足的缺點(diǎn),這也為GPS接收機(jī)其他模塊及其他信號(hào)處理系統(tǒng)的設(shè)計(jì)提供了新思路。本信號(hào)源的設(shè)計(jì)和實(shí)現(xiàn)是GPS及其他衛(wèi)星導(dǎo)航系統(tǒng)接收機(jī)自主研制的重要組成部分,在衛(wèi)星導(dǎo)航系統(tǒng)的民用產(chǎn)業(yè)化過(guò)程中,能夠產(chǎn)生可觀(guān)的社會(huì)效益和經(jīng)濟(jì)效益。
本文作者的創(chuàng)新點(diǎn):提出了兼具軟件設(shè)計(jì)靈活性和硬件設(shè)計(jì)實(shí)時(shí)高效性的GPS數(shù)字中頻信號(hào)源的高效一體化FPGA設(shè)計(jì)方案。
責(zé)任編輯:gt
評(píng)論
查看更多