《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的GPS接收機(jī)基帶處理硬件在環(huán)系統(tǒng)
基于FPGA的GPS接收機(jī)基帶處理硬件在環(huán)系統(tǒng)
2016年電子技術(shù)應(yīng)用第7期
王家燃,王 峰,魏東明,利傳邁
廣東工業(yè)大學(xué) 信息工程學(xué)院,廣東 廣州510006
摘要: 針對(duì)GPS跟蹤環(huán)路參數(shù)調(diào)試繁瑣復(fù)雜、FPGA反復(fù)編譯耗時(shí)多的問(wèn)題,設(shè)計(jì)了一種基于FPGA的GPS接收機(jī)基帶處理硬件在環(huán)系統(tǒng)。該系統(tǒng)以FPGA設(shè)計(jì)的GPS基帶處理為核心,完成衛(wèi)星信號(hào)的采集和基帶信號(hào)處理,并將處理結(jié)果通過(guò)以太網(wǎng)實(shí)時(shí)傳送到Simulink設(shè)計(jì)的跟蹤環(huán)路進(jìn)行處理,在處理完成后反饋到FPGA的基帶處理單元,完成衛(wèi)星信號(hào)的捕獲和跟蹤。經(jīng)測(cè)試,該系統(tǒng)實(shí)現(xiàn)了衛(wèi)星信號(hào)的捕獲和跟蹤,驗(yàn)證了該平臺(tái)的有效性和準(zhǔn)確性,提高了GPS跟蹤環(huán)路的設(shè)計(jì)、調(diào)試、驗(yàn)證、實(shí)現(xiàn)的效率,對(duì)快速開(kāi)發(fā)衛(wèi)星導(dǎo)航芯片和系統(tǒng)具有積極作用。
關(guān)鍵詞: GPS FPGA 硬件在環(huán) Simulink
中圖分類(lèi)號(hào): TN962
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.07.015
中文引用格式: 王家燃,王峰,魏東明,等. 基于FPGA的GPS接收機(jī)基帶處理硬件在環(huán)系統(tǒng)[J].電子技術(shù)應(yīng)用,2016,42(7):60-63.
英文引用格式: Wang Jiaran,Wang Feng,Wei Dongming,et al. Hardware-in-the-Loop system of GPS receiver baseband processor based on FPGA[J].Application of Electronic Technique,2016,42(7):60-63.
Hardware-in-the-Loop system of GPS receiver baseband processor based on FPGA
Wang Jiaran,Wang Feng,Wei Dongming,Li Chuanmai
School of Information Engineering, Guangdong University of Technology,Guangzhou 510006,China
Abstract: To solve the cumbersome and complex problem of parameter tuning of the GPS tracking loop, and the time-consuming problem of repeated compilation of FPGA, a kind of Hardware-in-the-Loop system of GPS receiver baseband processing unit based on FPGA is designed. The system used the GPS baseband processing unit designed by FPGA as the core to complete the acquisition of the satellite signal and baseband signal processing. The processing results are transmitted to tracking loop designed by the Simulink in real time through the Ethernet. After processing, the results are fed back to the baseband processing unit to complete the acquisition and tracking of the satellite signal. By test, the system realizes the acquisition and tracking of the satellite signal, the validity and accuracy of the platform are verified, and the efficiency of the design, tuning, verification and implementation of the GPS tracking loop is improved. It is useful for rapid development of GNSS IC and system.
Key words : GPS;FPGA;Hardware-in-the-Loop;Simulink

0 引言

    衛(wèi)星導(dǎo)航定位技術(shù)對(duì)一個(gè)國(guó)家的軍事以及國(guó)民經(jīng)濟(jì)發(fā)展有著重要的意義,而跟蹤環(huán)路的設(shè)計(jì)是衛(wèi)星導(dǎo)航系統(tǒng)的關(guān)鍵部分,對(duì)衛(wèi)星導(dǎo)航系統(tǒng)的定位精度和穩(wěn)定性起到了關(guān)鍵性作用。同時(shí),跟蹤環(huán)路的參數(shù)設(shè)計(jì)復(fù)雜,特別是在高動(dòng)態(tài)的衛(wèi)星導(dǎo)航系統(tǒng)和組合導(dǎo)航系統(tǒng)中,跟蹤環(huán)路的設(shè)計(jì)、驗(yàn)證、實(shí)現(xiàn)成為了衛(wèi)星導(dǎo)航系統(tǒng)設(shè)計(jì)的關(guān)鍵一環(huán)。

    硬件在環(huán)(Hardware-in-the-Loop,HIL)是一種半實(shí)物實(shí)時(shí)仿真技術(shù),實(shí)現(xiàn)整個(gè)系統(tǒng)的半實(shí)物實(shí)時(shí)仿真測(cè)試,可以方便快速地實(shí)現(xiàn)設(shè)計(jì)方案的驗(yàn)證與優(yōu)化,縮短開(kāi)發(fā)周期,降低研發(fā)成本。HIL先后在航天航空、軍事、汽車(chē)等領(lǐng)域得到推廣應(yīng)用[1],目前GPS接收機(jī)的設(shè)計(jì)流程都是先采用MATLAB進(jìn)行算法設(shè)計(jì)、驗(yàn)證,然后再采用Verilog或者VHDL進(jìn)行算法實(shí)現(xiàn)[2-4],該過(guò)程反復(fù)迭代、費(fèi)時(shí)。由此將HIL運(yùn)用于衛(wèi)星導(dǎo)航接收機(jī)跟蹤環(huán)路的設(shè)計(jì),將MATLAB/Simulink設(shè)計(jì)的算法模型通過(guò)以太網(wǎng)與FPGA聯(lián)合起來(lái)進(jìn)行在線(xiàn)調(diào)試,對(duì)驗(yàn)證與優(yōu)化跟蹤環(huán)路的設(shè)計(jì)、縮短開(kāi)發(fā)周期、降低研發(fā)成本具有重要意義。

    本系統(tǒng)將FPGA設(shè)計(jì)的GPS基帶處理單元與Simulink設(shè)計(jì)的跟蹤環(huán)路進(jìn)行聯(lián)合[5],將基帶信號(hào)處理模塊集成到FPGA上,在Simulink上完成鎖相環(huán)路、鎖頻環(huán)路和延遲鎖定環(huán)路設(shè)計(jì),并通過(guò)以太網(wǎng)實(shí)現(xiàn)FPGA與Simulink之間的通信,完成一個(gè)實(shí)時(shí)的硬件在環(huán)系統(tǒng)的設(shè)計(jì),通過(guò)Simulink設(shè)計(jì)能夠方便快速地設(shè)計(jì)鎖相環(huán)路、鎖頻環(huán)路和延遲鎖定環(huán)路,同時(shí)能夠方便及時(shí)地調(diào)整鎖相環(huán)路、鎖頻環(huán)路和延遲鎖定環(huán)路的參數(shù),實(shí)時(shí)調(diào)整跟蹤環(huán)路參數(shù),加快跟蹤環(huán)路設(shè)計(jì)。

1 系統(tǒng)總體設(shè)計(jì)

    系統(tǒng)整體設(shè)計(jì)原理圖如圖1所示。該系統(tǒng)主要分為4個(gè)單元:MAX2769B射頻單元、基帶信號(hào)處理單元、以太網(wǎng)通信單元、PC端Simulink。MAX2769B射頻單元用于完成衛(wèi)星信號(hào)的濾波、下變頻以及模數(shù)轉(zhuǎn)換;基帶信號(hào)處理單元用于低中頻衛(wèi)星信號(hào)的捕獲、跟蹤,其中LEON3處理器用于完成數(shù)據(jù)運(yùn)算、控制捕獲和跟蹤模塊的運(yùn)行、中斷,以及接收捕獲和跟蹤模塊的信息;以太網(wǎng)通信單元用于PC端Simulink跟蹤環(huán)路模塊與衛(wèi)星信號(hào)基帶處理單元之間的通信;PC端Simulink用于接收基帶信號(hào)處理單元的I/Q支路的相關(guān)積分結(jié)果,并輸入鎖相環(huán)路、鎖頻環(huán)路和延遲鎖定環(huán)路,得到環(huán)路處理結(jié)果,再通過(guò)以太網(wǎng)反饋到基帶信號(hào)處理單元。

qrs3-t1.gif

2 系統(tǒng)的硬件設(shè)計(jì)

2.1 衛(wèi)星信號(hào)捕獲模塊設(shè)計(jì)與實(shí)現(xiàn)

    衛(wèi)星信號(hào)捕獲模塊結(jié)構(gòu)如圖2所示,采用Verilog[6]語(yǔ)言進(jìn)行設(shè)計(jì),嵌入AHB總線(xiàn)的從設(shè)備接口掛載到AHB總線(xiàn)上,實(shí)現(xiàn)與LEON3處理器的數(shù)據(jù)交互。該模塊采用雙口RAM作為數(shù)據(jù)緩存RAM,用于緩存AHB總線(xiàn)與捕獲模塊的交互數(shù)據(jù),實(shí)現(xiàn)跨時(shí)鐘域處理,解決時(shí)鐘不一致的問(wèn)題。在捕獲控制模塊的控制下,將緩存之后低中頻數(shù)據(jù)與載波發(fā)生器相乘進(jìn)行下變頻,再經(jīng)過(guò)一個(gè)CIC(Cascade Integrator Comb)陷波器進(jìn)行干擾檢測(cè)和干擾抵消,然后通過(guò)分段匹配濾波器進(jìn)行相關(guān)積分并緩存到RAM中供FFT處理,處理完成后進(jìn)行門(mén)限判斷,并將捕獲結(jié)果緩存至雙口RAM,同時(shí)申請(qǐng)捕獲中斷,通知LENON3處理器進(jìn)行讀取。

qrs3-t2.gif

2.2 衛(wèi)星信號(hào)跟蹤模塊設(shè)計(jì)與實(shí)現(xiàn)

    衛(wèi)星信號(hào)跟蹤模塊中嵌入AHB從設(shè)備接口,并掛載在A(yíng)HB總線(xiàn)上,如圖3所示。將捕獲模塊中經(jīng)過(guò)干擾抵消后的信號(hào)作為跟蹤模塊的輸入信號(hào),載波發(fā)生器模塊對(duì)輸入信號(hào)進(jìn)行第一級(jí)下變頻,再進(jìn)行半帶濾波處理。由于衛(wèi)星處于運(yùn)動(dòng)之中,衛(wèi)星相對(duì)本地接收機(jī)頻偏也是在不斷地變化,需要通過(guò)載波發(fā)生器模塊對(duì)信號(hào)的頻偏進(jìn)行跟蹤,實(shí)現(xiàn)第二級(jí)精準(zhǔn)變頻;然后與本地C/A碼發(fā)生器產(chǎn)生的超前碼、即時(shí)碼、延遲碼進(jìn)行相關(guān)累加,并將結(jié)果發(fā)送到以太網(wǎng)數(shù)據(jù)緩存FIFO中;再通過(guò)以太網(wǎng)傳送到Simulink中,經(jīng)過(guò)載波環(huán)和碼環(huán)的計(jì)算,再把載波頻率控制字以及C/A碼生成控制字反饋到各通道的載波發(fā)生器和本地C/A碼發(fā)生器,實(shí)現(xiàn)對(duì)信號(hào)的跟蹤鎖定。

qrs3-t3.gif

2.3 以太網(wǎng)通信單元設(shè)計(jì)與實(shí)現(xiàn)

    以太網(wǎng)通信單元采用100 MHz的通信速率實(shí)現(xiàn)基帶信號(hào)處理單元與PC端Simulink之間的高速通信。如圖4所示,基帶處理單元將相關(guān)累加結(jié)果通過(guò)以太網(wǎng)從設(shè)備接口傳送到接收模塊中,在接收緩存后PC端Simulink通過(guò)以太網(wǎng)主設(shè)備接口讀取相關(guān)累加結(jié)果,并進(jìn)行載波環(huán)和碼環(huán)的計(jì)算,然后再通過(guò)主設(shè)備接口將計(jì)算得出的載波頻率控制字以及C/A碼生成控制字發(fā)送到發(fā)送緩存,最后由衛(wèi)星信號(hào)基帶處理單元進(jìn)行讀取。

qrs3-t4.gif

3 系統(tǒng)的軟件設(shè)計(jì)

3.1 衛(wèi)星信號(hào)捕獲模塊程序設(shè)計(jì)

    衛(wèi)星信號(hào)捕獲程序流程如圖5所示。系統(tǒng)上電后,開(kāi)啟捕獲中斷,將CIC濾波器參數(shù)發(fā)送到捕獲數(shù)據(jù)緩存RAM,配置硬件CIC濾波器模塊并回讀反饋參數(shù),然后判斷CIC濾波器反饋參數(shù)是否大于門(mén)限值。如果大于門(mén)限值,則重新計(jì)算CIC濾波器參數(shù),否則等待捕獲中斷。捕獲中斷響應(yīng)后,讀取捕獲的成功標(biāo)志位,如果捕獲成功,則讀取捕獲緩存RAM中的捕獲衛(wèi)星號(hào)、碼相位、相關(guān)值最大值及其對(duì)應(yīng)行列值,求出衛(wèi)星多普勒頻率,并將結(jié)果送到跟蹤數(shù)據(jù)緩存RAM;如果捕獲不成功則首先判斷該衛(wèi)星所有頻點(diǎn)是否搜索完畢,如果沒(méi)搜索完畢則搜索下一個(gè)頻點(diǎn)。在捕獲到一個(gè)衛(wèi)星或者搜索完成某一衛(wèi)星的所有頻點(diǎn)后,統(tǒng)計(jì)已捕獲、未捕獲、需要重捕的衛(wèi)星數(shù),將捕獲信息發(fā)送到捕獲緩存RAM,進(jìn)行下一個(gè)衛(wèi)星的捕獲。

qrs3-t5.gif

3.2 衛(wèi)星信號(hào)跟蹤模塊程序設(shè)計(jì)

    衛(wèi)星信號(hào)跟蹤程序主要負(fù)責(zé)跟蹤通道狀態(tài)的控制,讀取PC端Simulink通過(guò)以太網(wǎng)傳送過(guò)來(lái)的載波環(huán)以及碼環(huán)參數(shù),并將環(huán)路參數(shù)反饋到各個(gè)跟蹤通道,其流程如圖6所示。

qrs3-t6.gif

    首先中斷開(kāi)始后讀取各個(gè)跟蹤通道的相干積分值、多普勒頻率以及碼相位信息,根據(jù)當(dāng)前支路的 I、Q積分值計(jì)算出通道的載噪比進(jìn)行通道失鎖檢測(cè)。如果跟蹤通道失鎖,則釋放跟蹤通道并對(duì)該衛(wèi)星重新進(jìn)行捕獲,否則將讀取Simulink通過(guò)以太網(wǎng)傳送過(guò)來(lái)的載波環(huán)以及碼環(huán)參數(shù)并更新到跟蹤緩存 RAM 中,鎖存各個(gè)跟蹤通道的數(shù)據(jù),退出中斷。

3.3 基于Simulink的跟蹤環(huán)路設(shè)計(jì)

    采用Simulink設(shè)計(jì)跟蹤環(huán)路,其中載波環(huán)路采用一階鎖頻環(huán)路輔助二階鎖相環(huán)路結(jié)構(gòu)進(jìn)行載波鑒相、鑒頻以及環(huán)路濾波,碼環(huán)采用一階延遲鎖定環(huán)路進(jìn)行鑒相以及環(huán)路濾波,如圖7所示。

qrs3-t7.gif

    在捕獲成功后,F(xiàn)PGA通過(guò)以太網(wǎng)向Simulink發(fā)送開(kāi)始信號(hào)和I/Q相關(guān)值,然后相關(guān)值采樣模塊將I/Q支路即時(shí)碼相關(guān)值送入鑒頻器和鑒相器進(jìn)行鑒頻和鑒相處理,最后鎖相環(huán)路濾波器將鑒相結(jié)果和鎖頻環(huán)路濾波器的處理結(jié)果進(jìn)行濾波處理,得到載波頻率控制字。同樣地,將I/Q支路的延遲、超前碼相關(guān)值送入碼環(huán)鑒相器進(jìn)行鑒相處理,處理完成后通過(guò)碼環(huán)濾波器進(jìn)行濾波,最后將濾波后輸出的載波頻率控制字和C/A碼產(chǎn)生控制字通過(guò)以太網(wǎng)反饋到基帶信號(hào)處理單元的跟蹤通道中。

4 系統(tǒng)的測(cè)試與分析

    本系統(tǒng)采用Quartus II 11.0進(jìn)行設(shè)計(jì)、綜合,并將設(shè)計(jì)結(jié)果下載到DE2-115開(kāi)發(fā)板的上進(jìn)行驗(yàn)證。通過(guò)Simulink軟件自帶的示波器顯示其中兩個(gè)跟蹤環(huán)路的I、Q支路波形,如圖8所示。同時(shí),將I、Q支路的輸出的(I,Q)數(shù)據(jù)對(duì)一一標(biāo)記在相量圖中,如圖9所示,當(dāng)鎖相環(huán)鎖定信號(hào)后,相位差異值就基本上在零附近晃動(dòng),I支路信號(hào)功率保持最大,Q支路信號(hào)功率接近于0,即大致有一半的數(shù)據(jù)對(duì)集中在正向I軸,而另一半集中在負(fù)向I軸[7],由此,跟蹤環(huán)路完成了對(duì)衛(wèi)星信號(hào)的跟蹤鎖定。最后將6個(gè)通道的導(dǎo)航數(shù)據(jù)輸出進(jìn)行定位解算,得到的經(jīng)緯度為:113.392862、23.037484,通過(guò)谷歌地圖顯示,得到誤差范圍在5 m之內(nèi),滿(mǎn)足定位需求。

qrs3-t8.gif

qrs3-t9.gif

5 結(jié)論

    本文設(shè)計(jì)了FPGA聯(lián)合Simulink的GPS接收機(jī)基帶處理硬件在環(huán)系統(tǒng)。介紹了系統(tǒng)的軟硬件設(shè)計(jì),借助FPGA的高速并行處理能力實(shí)現(xiàn)衛(wèi)星信號(hào)的捕獲,通過(guò)以太網(wǎng)完成Simulink設(shè)計(jì)的跟蹤環(huán)路與基帶處理單元的實(shí)時(shí)通信。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠完成衛(wèi)星信號(hào)的捕獲和跟蹤,通過(guò)Simulink實(shí)時(shí)在線(xiàn)修改跟蹤環(huán)路參數(shù),在算法模型以及參數(shù)最終確定后再轉(zhuǎn)換為VHDL/Verilog,避免了反復(fù)修改算法、參數(shù)而需反復(fù)編譯綜合FPGA,提高了開(kāi)發(fā)效率,方便了后期算法優(yōu)化、升級(jí)。

參考文獻(xiàn)

[1] 付志紅,馬靜,謝品芳,等.基于高速數(shù)字信號(hào)處理平臺(tái)的實(shí)時(shí)仿真技術(shù)[J].系統(tǒng)仿真學(xué)報(bào),2007,19(16):3680-3683.

[2] 姜天林.基于FPGA的GPS基帶處理器的研究與設(shè)計(jì)[D].廣州:華南理工大學(xué),2013.

[3] 陳建華.基于FPGA的GPS軟件接收機(jī)跟蹤捕獲算法研究[D].南京:南京郵電大學(xué),2013.

[4] 劉雷.基于FPGA的北斗信號(hào)捕獲與跟蹤算法研究[D].西安:西安電子科技大學(xué),2014.

[5] Altera.Hardware in the Loop from the MATLAB/Simulink environment[EB-OL].(2013-09).https://www.altera.com.cn/content/dam/altera-wp-01208-hardware-in-the-loop.pdf.

[6] 吳繼華,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.

[7] 謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。