文獻(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.
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)處理單元。
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)行讀取。
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)的跟蹤鎖定。
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)行讀取。
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)星的捕獲。
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所示。
首先中斷開(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所示。
在捕獲成功后,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)足定位需求。
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.