文獻(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è)國家的軍事以及國民經(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)化,縮短開發(fā)周期,降低研發(fā)成本,。HIL先后在航天航空、軍事,、汽車等領(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],,該過程反復(fù)迭代、費(fèi)時(shí),。由此將HIL運(yùn)用于衛(wèi)星導(dǎo)航接收機(jī)跟蹤環(huán)路的設(shè)計(jì),,將MATLAB/Simulink設(shè)計(jì)的算法模型通過以太網(wǎng)與FPGA聯(lián)合起來進(jìn)行在線調(diào)試,對(duì)驗(yàn)證與優(yōu)化跟蹤環(huán)路的設(shè)計(jì),、縮短開發(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ì),并通過以太網(wǎng)實(shí)現(xiàn)FPGA與Simulink之間的通信,,完成一個(gè)實(shí)時(shí)的硬件在環(huán)系統(tǒng)的設(shè)計(jì),,通過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é)果,,再通過以太網(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]語言進(jìn)行設(shè)計(jì),,嵌入AHB總線的從設(shè)備接口掛載到AHB總線上,實(shí)現(xiàn)與LEON3處理器的數(shù)據(jù)交互,。該模塊采用雙口RAM作為數(shù)據(jù)緩存RAM,,用于緩存AHB總線與捕獲模塊的交互數(shù)據(jù),實(shí)現(xiàn)跨時(shí)鐘域處理,,解決時(shí)鐘不一致的問題,。在捕獲控制模塊的控制下,將緩存之后低中頻數(shù)據(jù)與載波發(fā)生器相乘進(jìn)行下變頻,再經(jīng)過一個(gè)CIC(Cascade Integrator Comb)陷波器進(jìn)行干擾檢測(cè)和干擾抵消,,然后通過分段匹配濾波器進(jìn)行相關(guān)積分并緩存到RAM中供FFT處理,,處理完成后進(jì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è)備接口,,并掛載在AHB總線上,,如圖3所示。將捕獲模塊中經(jīng)過干擾抵消后的信號(hào)作為跟蹤模塊的輸入信號(hào),,載波發(fā)生器模塊對(duì)輸入信號(hào)進(jìn)行第一級(jí)下變頻,,再進(jìn)行半帶濾波處理。由于衛(wèi)星處于運(yùn)動(dòng)之中,,衛(wèi)星相對(duì)本地接收機(jī)頻偏也是在不斷地變化,,需要通過載波發(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中;再通過以太網(wǎng)傳送到Simulink中,,經(jīng)過載波環(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é)果通過以太網(wǎng)從設(shè)備接口傳送到接收模塊中,,在接收緩存后PC端Simulink通過以太網(wǎng)主設(shè)備接口讀取相關(guān)累加結(jié)果,并進(jìn)行載波環(huán)和碼環(huán)的計(jì)算,然后再通過主設(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)上電后,,開啟捕獲中斷,,將CIC濾波器參數(shù)發(fā)送到捕獲數(shù)據(jù)緩存RAM,配置硬件CIC濾波器模塊并回讀反饋參數(shù),,然后判斷CIC濾波器反饋參數(shù)是否大于門限值,。如果大于門限值,則重新計(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)是否搜索完畢,,如果沒搜索完畢則搜索下一個(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通過以太網(wǎng)傳送過來的載波環(huán)以及碼環(huán)參數(shù),,并將環(huán)路參數(shù)反饋到各個(gè)跟蹤通道,,其流程如圖6所示。
首先中斷開始后讀取各個(gè)跟蹤通道的相干積分值,、多普勒頻率以及碼相位信息,,根據(jù)當(dāng)前支路的 I、Q積分值計(jì)算出通道的載噪比進(jìn)行通道失鎖檢測(cè),。如果跟蹤通道失鎖,,則釋放跟蹤通道并對(duì)該衛(wèi)星重新進(jìn)行捕獲,否則將讀取Simulink通過以太網(wǎng)傳送過來的載波環(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通過以太網(wǎng)向Simulink發(fā)送開始信號(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)行鑒相處理,處理完成后通過碼環(huán)濾波器進(jìn)行濾波,,最后將濾波后輸出的載波頻率控制字和C/A碼產(chǎn)生控制字通過以太網(wǎng)反饋到基帶信號(hào)處理單元的跟蹤通道中,。
4 系統(tǒng)的測(cè)試與分析
本系統(tǒng)采用Quartus II 11.0進(jìn)行設(shè)計(jì)、綜合,,并將設(shè)計(jì)結(jié)果下載到DE2-115開發(fā)板的上進(jìn)行驗(yàn)證,。通過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,,通過谷歌地圖顯示,得到誤差范圍在5 m之內(nèi),,滿足定位需求,。
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)的捕獲,,通過以太網(wǎng)完成Simulink設(shè)計(jì)的跟蹤環(huán)路與基帶處理單元的實(shí)時(shí)通信。實(shí)驗(yàn)結(jié)果表明,,該系統(tǒng)能夠完成衛(wèi)星信號(hào)的捕獲和跟蹤,,通過Simulink實(shí)時(shí)在線修改跟蹤環(huán)路參數(shù),在算法模型以及參數(shù)最終確定后再轉(zhuǎn)換為VHDL/Verilog,避免了反復(fù)修改算法,、參數(shù)而需反復(fù)編譯綜合FPGA,,提高了開發(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] 吳繼華,,王誠.Altera FPGA/CPLD設(shè)計(jì)(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.
[7] 謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,,2009.