文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.07.015
中文引用格式: 王家燃,王峰,魏東明,等. 基于FPGA的GPS接收機基帶處理硬件在環(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.
0 引言
衛(wèi)星導(dǎo)航定位技術(shù)對一個國家的軍事以及國民經(jīng)濟發(fā)展有著重要的意義,而跟蹤環(huán)路的設(shè)計是衛(wèi)星導(dǎo)航系統(tǒng)的關(guān)鍵部分,對衛(wèi)星導(dǎo)航系統(tǒng)的定位精度和穩(wěn)定性起到了關(guān)鍵性作用。同時,跟蹤環(huán)路的參數(shù)設(shè)計復(fù)雜,特別是在高動態(tài)的衛(wèi)星導(dǎo)航系統(tǒng)和組合導(dǎo)航系統(tǒng)中,跟蹤環(huán)路的設(shè)計、驗證、實現(xiàn)成為了衛(wèi)星導(dǎo)航系統(tǒng)設(shè)計的關(guān)鍵一環(huán)。
硬件在環(huán)(Hardware-in-the-Loop,HIL)是一種半實物實時仿真技術(shù),實現(xiàn)整個系統(tǒng)的半實物實時仿真測試,可以方便快速地實現(xiàn)設(shè)計方案的驗證與優(yōu)化,縮短開發(fā)周期,降低研發(fā)成本。HIL先后在航天航空、軍事、汽車等領(lǐng)域得到推廣應(yīng)用[1],目前GPS接收機的設(shè)計流程都是先采用MATLAB進行算法設(shè)計、驗證,然后再采用Verilog或者VHDL進行算法實現(xiàn)[2-4],該過程反復(fù)迭代、費時。由此將HIL運用于衛(wèi)星導(dǎo)航接收機跟蹤環(huán)路的設(shè)計,將MATLAB/Simulink設(shè)計的算法模型通過以太網(wǎng)與FPGA聯(lián)合起來進行在線調(diào)試,對驗證與優(yōu)化跟蹤環(huán)路的設(shè)計、縮短開發(fā)周期、降低研發(fā)成本具有重要意義。
本系統(tǒng)將FPGA設(shè)計的GPS基帶處理單元與Simulink設(shè)計的跟蹤環(huán)路進行聯(lián)合[5],將基帶信號處理模塊集成到FPGA上,在Simulink上完成鎖相環(huán)路、鎖頻環(huán)路和延遲鎖定環(huán)路設(shè)計,并通過以太網(wǎng)實現(xiàn)FPGA與Simulink之間的通信,完成一個實時的硬件在環(huán)系統(tǒng)的設(shè)計,通過Simulink設(shè)計能夠方便快速地設(shè)計鎖相環(huán)路、鎖頻環(huán)路和延遲鎖定環(huán)路,同時能夠方便及時地調(diào)整鎖相環(huán)路、鎖頻環(huán)路和延遲鎖定環(huán)路的參數(shù),實時調(diào)整跟蹤環(huán)路參數(shù),加快跟蹤環(huán)路設(shè)計。
1 系統(tǒng)總體設(shè)計
系統(tǒng)整體設(shè)計原理圖如圖1所示。該系統(tǒng)主要分為4個單元:MAX2769B射頻單元、基帶信號處理單元、以太網(wǎng)通信單元、PC端Simulink。MAX2769B射頻單元用于完成衛(wèi)星信號的濾波、下變頻以及模數(shù)轉(zhuǎn)換;基帶信號處理單元用于低中頻衛(wèi)星信號的捕獲、跟蹤,其中LEON3處理器用于完成數(shù)據(jù)運算、控制捕獲和跟蹤模塊的運行、中斷,以及接收捕獲和跟蹤模塊的信息;以太網(wǎng)通信單元用于PC端Simulink跟蹤環(huán)路模塊與衛(wèi)星信號基帶處理單元之間的通信;PC端Simulink用于接收基帶信號處理單元的I/Q支路的相關(guān)積分結(jié)果,并輸入鎖相環(huán)路、鎖頻環(huán)路和延遲鎖定環(huán)路,得到環(huán)路處理結(jié)果,再通過以太網(wǎng)反饋到基帶信號處理單元。
2 系統(tǒng)的硬件設(shè)計
2.1 衛(wèi)星信號捕獲模塊設(shè)計與實現(xiàn)
衛(wèi)星信號捕獲模塊結(jié)構(gòu)如圖2所示,采用Verilog[6]語言進行設(shè)計,嵌入AHB總線的從設(shè)備接口掛載到AHB總線上,實現(xiàn)與LEON3處理器的數(shù)據(jù)交互。該模塊采用雙口RAM作為數(shù)據(jù)緩存RAM,用于緩存AHB總線與捕獲模塊的交互數(shù)據(jù),實現(xiàn)跨時鐘域處理,解決時鐘不一致的問題。在捕獲控制模塊的控制下,將緩存之后低中頻數(shù)據(jù)與載波發(fā)生器相乘進行下變頻,再經(jīng)過一個CIC(Cascade Integrator Comb)陷波器進行干擾檢測和干擾抵消,然后通過分段匹配濾波器進行相關(guān)積分并緩存到RAM中供FFT處理,處理完成后進行門限判斷,并將捕獲結(jié)果緩存至雙口RAM,同時申請捕獲中斷,通知LENON3處理器進行讀取。
2.2 衛(wèi)星信號跟蹤模塊設(shè)計與實現(xiàn)
衛(wèi)星信號跟蹤模塊中嵌入AHB從設(shè)備接口,并掛載在AHB總線上,如圖3所示。將捕獲模塊中經(jīng)過干擾抵消后的信號作為跟蹤模塊的輸入信號,載波發(fā)生器模塊對輸入信號進行第一級下變頻,再進行半帶濾波處理。由于衛(wèi)星處于運動之中,衛(wèi)星相對本地接收機頻偏也是在不斷地變化,需要通過載波發(fā)生器模塊對信號的頻偏進行跟蹤,實現(xiàn)第二級精準(zhǔn)變頻;然后與本地C/A碼發(fā)生器產(chǎn)生的超前碼、即時碼、延遲碼進行相關(guān)累加,并將結(jié)果發(fā)送到以太網(wǎng)數(shù)據(jù)緩存FIFO中;再通過以太網(wǎng)傳送到Simulink中,經(jīng)過載波環(huán)和碼環(huán)的計算,再把載波頻率控制字以及C/A碼生成控制字反饋到各通道的載波發(fā)生器和本地C/A碼發(fā)生器,實現(xiàn)對信號的跟蹤鎖定。
2.3 以太網(wǎng)通信單元設(shè)計與實現(xiàn)
以太網(wǎng)通信單元采用100 MHz的通信速率實現(xiàn)基帶信號處理單元與PC端Simulink之間的高速通信。如圖4所示,基帶處理單元將相關(guān)累加結(jié)果通過以太網(wǎng)從設(shè)備接口傳送到接收模塊中,在接收緩存后PC端Simulink通過以太網(wǎng)主設(shè)備接口讀取相關(guān)累加結(jié)果,并進行載波環(huán)和碼環(huán)的計算,然后再通過主設(shè)備接口將計算得出的載波頻率控制字以及C/A碼生成控制字發(fā)送到發(fā)送緩存,最后由衛(wèi)星信號基帶處理單元進行讀取。
3 系統(tǒng)的軟件設(shè)計
3.1 衛(wèi)星信號捕獲模塊程序設(shè)計
衛(wèi)星信號捕獲程序流程如圖5所示。系統(tǒng)上電后,開啟捕獲中斷,將CIC濾波器參數(shù)發(fā)送到捕獲數(shù)據(jù)緩存RAM,配置硬件CIC濾波器模塊并回讀反饋參數(shù),然后判斷CIC濾波器反饋參數(shù)是否大于門限值。如果大于門限值,則重新計算CIC濾波器參數(shù),否則等待捕獲中斷。捕獲中斷響應(yīng)后,讀取捕獲的成功標(biāo)志位,如果捕獲成功,則讀取捕獲緩存RAM中的捕獲衛(wèi)星號、碼相位、相關(guān)值最大值及其對應(yīng)行列值,求出衛(wèi)星多普勒頻率,并將結(jié)果送到跟蹤數(shù)據(jù)緩存RAM;如果捕獲不成功則首先判斷該衛(wèi)星所有頻點是否搜索完畢,如果沒搜索完畢則搜索下一個頻點。在捕獲到一個衛(wèi)星或者搜索完成某一衛(wèi)星的所有頻點后,統(tǒng)計已捕獲、未捕獲、需要重捕的衛(wèi)星數(shù),將捕獲信息發(fā)送到捕獲緩存RAM,進行下一個衛(wèi)星的捕獲。
3.2 衛(wèi)星信號跟蹤模塊程序設(shè)計
衛(wèi)星信號跟蹤程序主要負責(zé)跟蹤通道狀態(tài)的控制,讀取PC端Simulink通過以太網(wǎng)傳送過來的載波環(huán)以及碼環(huán)參數(shù),并將環(huán)路參數(shù)反饋到各個跟蹤通道,其流程如圖6所示。
首先中斷開始后讀取各個跟蹤通道的相干積分值、多普勒頻率以及碼相位信息,根據(jù)當(dāng)前支路的 I、Q積分值計算出通道的載噪比進行通道失鎖檢測。如果跟蹤通道失鎖,則釋放跟蹤通道并對該衛(wèi)星重新進行捕獲,否則將讀取Simulink通過以太網(wǎng)傳送過來的載波環(huán)以及碼環(huán)參數(shù)并更新到跟蹤緩存 RAM 中,鎖存各個跟蹤通道的數(shù)據(jù),退出中斷。
3.3 基于Simulink的跟蹤環(huán)路設(shè)計
采用Simulink設(shè)計跟蹤環(huán)路,其中載波環(huán)路采用一階鎖頻環(huán)路輔助二階鎖相環(huán)路結(jié)構(gòu)進行載波鑒相、鑒頻以及環(huán)路濾波,碼環(huán)采用一階延遲鎖定環(huán)路進行鑒相以及環(huán)路濾波,如圖7所示。
在捕獲成功后,F(xiàn)PGA通過以太網(wǎng)向Simulink發(fā)送開始信號和I/Q相關(guān)值,然后相關(guān)值采樣模塊將I/Q支路即時碼相關(guān)值送入鑒頻器和鑒相器進行鑒頻和鑒相處理,最后鎖相環(huán)路濾波器將鑒相結(jié)果和鎖頻環(huán)路濾波器的處理結(jié)果進行濾波處理,得到載波頻率控制字。同樣地,將I/Q支路的延遲、超前碼相關(guān)值送入碼環(huán)鑒相器進行鑒相處理,處理完成后通過碼環(huán)濾波器進行濾波,最后將濾波后輸出的載波頻率控制字和C/A碼產(chǎn)生控制字通過以太網(wǎng)反饋到基帶信號處理單元的跟蹤通道中。
4 系統(tǒng)的測試與分析
本系統(tǒng)采用Quartus II 11.0進行設(shè)計、綜合,并將設(shè)計結(jié)果下載到DE2-115開發(fā)板的上進行驗證。通過Simulink軟件自帶的示波器顯示其中兩個跟蹤環(huán)路的I、Q支路波形,如圖8所示。同時,將I、Q支路的輸出的(I,Q)數(shù)據(jù)對一一標(biāo)記在相量圖中,如圖9所示,當(dāng)鎖相環(huán)鎖定信號后,相位差異值就基本上在零附近晃動,I支路信號功率保持最大,Q支路信號功率接近于0,即大致有一半的數(shù)據(jù)對集中在正向I軸,而另一半集中在負向I軸[7],由此,跟蹤環(huán)路完成了對衛(wèi)星信號的跟蹤鎖定。最后將6個通道的導(dǎo)航數(shù)據(jù)輸出進行定位解算,得到的經(jīng)緯度為:113.392862、23.037484,通過谷歌地圖顯示,得到誤差范圍在5 m之內(nèi),滿足定位需求。
5 結(jié)論
本文設(shè)計了FPGA聯(lián)合Simulink的GPS接收機基帶處理硬件在環(huán)系統(tǒng)。介紹了系統(tǒng)的軟硬件設(shè)計,借助FPGA的高速并行處理能力實現(xiàn)衛(wèi)星信號的捕獲,通過以太網(wǎng)完成Simulink設(shè)計的跟蹤環(huán)路與基帶處理單元的實時通信。實驗結(jié)果表明,該系統(tǒng)能夠完成衛(wèi)星信號的捕獲和跟蹤,通過Simulink實時在線修改跟蹤環(huán)路參數(shù),在算法模型以及參數(shù)最終確定后再轉(zhuǎn)換為VHDL/Verilog,避免了反復(fù)修改算法、參數(shù)而需反復(fù)編譯綜合FPGA,提高了開發(fā)效率,方便了后期算法優(yōu)化、升級。
參考文獻
[1] 付志紅,馬靜,謝品芳,等.基于高速數(shù)字信號處理平臺的實時仿真技術(shù)[J].系統(tǒng)仿真學(xué)報,2007,19(16):3680-3683.
[2] 姜天林.基于FPGA的GPS基帶處理器的研究與設(shè)計[D].廣州:華南理工大學(xué),2013.
[3] 陳建華.基于FPGA的GPS軟件接收機跟蹤捕獲算法研究[D].南京:南京郵電大學(xué),2013.
[4] 劉雷.基于FPGA的北斗信號捕獲與跟蹤算法研究[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] 吳繼華,王誠.Altera FPGA/CPLD設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.
[7] 謝鋼.GPS原理與接收機設(shè)計[M].北京:電子工業(yè)出版社,2009.