文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.09.013
中文引用格式: 江燦輝,孫希延,嚴素清,等. 基于DSP和FPGA的衛(wèi)星信號模擬器設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(9):51-54.
英文引用格式: Jiang Canhui,Sun Xiyan,Yan Suqing,et al. Design and realizing of satellite signal simulator based on DSP+FPGA[J].Application of Electronic Technique,2016,42(9):51-54.
0 引言
隨著我國北斗衛(wèi)星導(dǎo)航系統(tǒng)的建立和發(fā)展,衛(wèi)星導(dǎo)航在我國得到廣泛應(yīng)用。衛(wèi)星導(dǎo)航系統(tǒng)已經(jīng)成為一個國家國防力量的重要體現(xiàn),衛(wèi)星導(dǎo)航技術(shù)發(fā)展趨勢也由單一GPS技術(shù)向多系統(tǒng)兼容、互操作方向發(fā)展。將BDS和GPS組合起來,可以增加接收機的觀測量,提高導(dǎo)航定位的精度和服務(wù)質(zhì)量。衛(wèi)星信號模擬器可以精確生成和復(fù)現(xiàn)不同條件下接收機射頻前端接收到的衛(wèi)星信號,為導(dǎo)航接收機的設(shè)計和研發(fā)提供可靠、準確和易用的測試環(huán)境,從而提高接收機的研發(fā)效率,減少研發(fā)測試費用[1]。在軍事領(lǐng)域,接收機被安裝在飛機、導(dǎo)彈和火箭等高動態(tài)載體上,需要借助衛(wèi)星信號模擬器進行測試。
1 系統(tǒng)總體架構(gòu)
本文所設(shè)計的衛(wèi)星信號模擬器主要由DSP信息處理模塊、FPGA信號生成模塊、D/A轉(zhuǎn)換模塊、射頻上變頻模塊、Flash、SDRAM等模塊組成。系統(tǒng)總體架構(gòu)如圖1所示。
圖1 系統(tǒng)總體架構(gòu)圖
DSP信息處理模塊主要實現(xiàn)衛(wèi)星導(dǎo)航算法。FPGA信號生成模塊主要實現(xiàn)數(shù)字中頻信號合成,F(xiàn)PGA通過DSP的外部存儲器接口(EMIF)與DSP相連,F(xiàn)PGA作為DSP外接的異步存儲器與DSP進行數(shù)據(jù)交互。D/A轉(zhuǎn)換模塊將FPGA輸出的數(shù)字中頻信號轉(zhuǎn)換為模擬中頻信號,本設(shè)計有3路D/A轉(zhuǎn)換模塊,一路D/A生成GPS L1和BDS B1I頻點的模擬中頻信號,另外2路D/A分別輸出BDS B2I和BDS B3頻點的模擬中頻信號。3路射頻上變頻電路分別將D/A輸出的模擬中頻信號上變頻至對應(yīng)頻點的射頻信號。Flash芯片用于存儲DSP引導(dǎo)裝載所需的代碼和系統(tǒng)初始化時所需參數(shù)。SDRAM用于存儲DSP程序中占用空間大且使用頻率低的變量和數(shù)組。
2 硬件電路設(shè)計
2.1 D/A轉(zhuǎn)換模塊電路設(shè)計
為了將生成的BDS、GPS多頻點數(shù)字中頻信號轉(zhuǎn)換為模擬信號,需要多路D/A轉(zhuǎn)換電路來完成。本系統(tǒng)選用AD9742實現(xiàn)中頻信號的數(shù)模轉(zhuǎn)換。AD9742是ADI公司的一款低功耗、高性能、量化精度為12 bit的D/A轉(zhuǎn)換芯片,其最高采樣速率可達165 MS/s。本系統(tǒng)采用3片AD9742實現(xiàn)GPS L1和BDS B1、B2、B3頻點中頻信號的數(shù)模轉(zhuǎn)換,其中GPS L1和BDS B1I信號從一路DA輸出。本系統(tǒng)GPS L1和BDS B1、B2、B3信號的中頻頻率分別為20.42 MHz、6.098 MHz、7.140 MHz和18.520 MHz。D/A轉(zhuǎn)換模塊電路示意圖如圖2所示。
圖2 D/A轉(zhuǎn)換模塊電路示意圖
2.2 射頻上變頻模塊電路設(shè)計
射頻上變頻模塊是系統(tǒng)的重要組成部分,上變頻模塊主要實現(xiàn)信號調(diào)制、上變頻、功率放大、功率調(diào)節(jié)等功能。本文選用ADRF6755作為上變頻模塊。ADRF6755集成正交調(diào)制器、頻率合成器和可編程衰減器,輸出信號頻率范圍為100 MHz~2 400 MHz,滿足本設(shè)計輸出信號頻率的要求。ADRF6755片內(nèi)集成有一個數(shù)字控制輸出衰減器,功率調(diào)節(jié)范圍為47 dB,步進為1 dB。本設(shè)計中信號采用差分方式從I路輸入;通過SPI接口對片內(nèi)寄存器進行設(shè)置,可以實現(xiàn)不同頻率的信號輸出。GPS L1和BDS B1、B2、B3信號的射頻頻率分別為1 575.42 MHz、
1 561.098 MHz、1 207.140 MHz和1 268.520 MHz,對應(yīng)本振頻率分別為1 555 MHz、1 555 MHz、1 200 MHz和1 250 MHz。本設(shè)計的上變頻模塊電路示意圖如圖3所示。
圖3 上變頻模塊電路示意圖
2.3 DSP與FPGA接口設(shè)計
DSP通過EMIF接口與FPGA進行通信,同時,將DSP的外部中斷信號、多通道緩沖串行口(MCBSP0)信號與FPGA的I/O引腳相連,以實現(xiàn)DSP與FPGA之間的靈活控制及通信。DSP與FPGA電路連接示意圖如圖4所示。
圖4 DSP與FPGA電路連接示意圖
圖4中,AOEN、AWEN、TCE信號為片選和使能信號,用于控制DSP與FPGA之間的讀寫時序;MCBSP0信號復(fù)位FPGA;EXTINT4和EXTINT5信號分別觸發(fā)DSP芯片的中斷4和中斷5。
3 軟件結(jié)構(gòu)設(shè)計
3.1 DSP信息處理模塊軟件設(shè)計
DSP信息處理模塊主要完成系統(tǒng)初始化信息提取、信號生成參數(shù)計算和系統(tǒng)控制參數(shù)計算等功能。首先DSP接收上位機軟件下發(fā)的場景文件和星歷文件,并提取相關(guān)信息。然后根據(jù)場景文件生成載體運動軌跡;根據(jù)星歷文件中的星歷參數(shù)計算所有衛(wèi)星的空間坐標,判斷衛(wèi)星的可見狀況;實時計算可見衛(wèi)星和載體之間的偽距及偽距變化率,進而得到系統(tǒng)仿真起始時間的信號初始狀態(tài),并計算出初始碼相位、初始載波相位、整數(shù)碼片數(shù)、碼頻率控制字和載波頻率控制字。分別對BDS和GPS進行電文編碼,并預(yù)存導(dǎo)航電文。DSP完成系統(tǒng)初始化計算后,發(fā)送通道狀態(tài)字給FPGA,F(xiàn)PGA開始生成信號。系統(tǒng)啟動以后,DSP實時更新信號生成參數(shù),并通過EMIF與FPGA進行數(shù)據(jù)交互。DSP算法流程如圖5所示。
圖5 DSP算法流程圖
本設(shè)計采用數(shù)控振動器合成數(shù)字中頻信號,由于衛(wèi)星和用戶載體存在相對運動,存在多普勒頻率偏移;同理,測距碼和導(dǎo)航電文也存在多普勒頻移[2]。當用戶處于高動態(tài)運動狀態(tài)時,多普勒頻移將對接收機的定位造成很大的影響。為實時模擬多普勒頻移,需要實時調(diào)整數(shù)控振蕩器的頻率控制字。本文以BDS B1I信號為例,介紹多普勒效應(yīng)對模擬器輸出信號頻率的影響。衛(wèi)星播發(fā)的B1I信號的頻率為1 561.096 MHz,由于衛(wèi)星和用戶接收設(shè)備存在相對運動,用戶接收到的B1I信號的頻率不精確為1 561.096 MHz。模擬器模擬的是接收機射頻前端接收到的衛(wèi)星信號[4],因此模擬器輸出的射頻信號不固定為1 561.096 MHz,NCO頻率控制字K不是固定不變的,K隨中頻信號頻率變化而變化。假設(shè)衛(wèi)星和用戶接收設(shè)備不存在多普勒效應(yīng),則頻率控制字Kbase的計算方法為[4]:
式中,IFB1I為設(shè)定的BDS B1I信號的中心頻率;fclk為系統(tǒng)時鐘頻率;N為NCO中相位累加器的位寬。假設(shè)NCO中設(shè)定的頻率控制字的更新間隔為Δt,本地接收機t時刻偽距為rt,則t時刻接收到的衛(wèi)星信號的發(fā)射時間ts(t)為:
本地接收機t+Δt時刻偽距為rt+Δt,則t+Δt時刻接收到的衛(wèi)星信號的發(fā)射時間ts(t+Δt)為:
用戶接收設(shè)備在Δt時間內(nèi)前后兩次接收到衛(wèi)星信號,而這兩次衛(wèi)星信號發(fā)射的時間間隔Δts為:
由此可得,Δt時間間隔內(nèi)載波頻率控制字和偽碼頻率控制字分別為:
式中,Kcarr表示載波頻率控制字,Kcode表示碼頻率控制字,fB1I表示BDS B1I信號偽碼速率。
3.2 FPGA信號生成模塊軟件設(shè)計
本設(shè)計中FPGA模塊主要功能包括偽碼生成、載波生成、偽碼調(diào)制、載波調(diào)制、系統(tǒng)時序控制和數(shù)字中頻信號合成。本文研制的衛(wèi)星信號模擬器FPGA模塊結(jié)構(gòu)框圖如圖6所示。
圖6 FPGA模塊結(jié)構(gòu)框圖
FPGA模塊以通道為基本單元,總共包含48個信號通道,1~12號通道合成GPS L1信號,13~24號通道合成BDS B1I信號,25~36號通道合成BDS B2I信號,37~48號通道合成BDS B3信號。
系統(tǒng)初始化階段,F(xiàn)PGA在接收到DSP發(fā)送的載波NCO參數(shù)、碼NCO參數(shù)、導(dǎo)航電文和通道狀態(tài)字后,從通道狀態(tài)字中提取衛(wèi)星號并選擇對應(yīng)的信號通道,然后進行導(dǎo)航電文NH調(diào)制、偽碼調(diào)制、載波調(diào)制,合成與衛(wèi)星號相對應(yīng)頻段信號的偽碼和載波,最后將同一個頻段的多個多通道信號進行合成,生成數(shù)字中頻信號。同一個衛(wèi)星導(dǎo)航系統(tǒng)的FPGA各信號通道的模塊結(jié)構(gòu)基本相同,BDS系統(tǒng)和GPS系統(tǒng)FPGA信號通道的差異在于信號調(diào)制過程中BDS系統(tǒng)MEO衛(wèi)星信號需對導(dǎo)航電文進行NH碼調(diào)制,再進行偽碼調(diào)制;而GPS L1信號不需要進行NH調(diào)制。FPGA各模塊主要功能為:
(1)RTC時序控制模塊。衛(wèi)星信號模擬器要求時鐘嚴格同步,即各個芯片或者器件都必須同源。該模塊主要功能為協(xié)調(diào)控制系統(tǒng)各模塊之間的工作,給DSP模塊提供中斷信號。
(2)載波NCO模塊。FPGA模塊采用數(shù)控振蕩器來生成衛(wèi)星信號的數(shù)字載波。本設(shè)計中將MATLAB軟件生成正余弦的幅值表存入FPGA的ROM核中,然后通過相位查詢表生成相應(yīng)頻率的載波信號[5]。
(3)碼NCO模塊。FPGA模塊采用數(shù)控振蕩器來生成衛(wèi)星信號偽碼。BDS和GPS衛(wèi)星的偽碼通過MATLAB軟件生成,偽碼序列存放在FPGA的 ROM核中,其中GPS系統(tǒng)的每個信號通道中的ROM核中都存儲有GPS系統(tǒng)32顆衛(wèi)星的偽碼表。
(4)信號調(diào)制合成模塊。信號調(diào)制的主要功能是實現(xiàn)各系統(tǒng)導(dǎo)航電文的讀取和同步,完成偽碼、導(dǎo)航電文和載波的調(diào)制,實現(xiàn)多路信號的合成,控制通道的狀態(tài)和配置等。本設(shè)計中選用12 bit的D/A模塊,這要求多個通道信號合成后為12 bit,需要對每個通道輸出數(shù)字中頻信號的高位進行擴展,在合成信號輸出至D/A模塊時,只綁定合成信號的高12 bit到D/A模塊的物理引腳。
(5)數(shù)據(jù)交互模塊。系統(tǒng)采用DSP模塊的EMIF方式實現(xiàn)數(shù)據(jù)交互。DSP和FPGA交互的數(shù)據(jù)主要包括:載波初始相位、載波頻率控制字、碼初始相位、碼頻率控制字和通道狀態(tài)字等。
4 測試結(jié)果
根據(jù)接收機定位解算的結(jié)果與模擬器預(yù)設(shè)的載體運動軌跡進行比較,根據(jù)接收機定位誤差的大小來驗證模擬器信號的正確性。模擬器模擬的載體位置緯度為北緯31°、東經(jīng)121°、海拔高度50 m,測試采用泰斗微電子科技有限公司生產(chǎn)的基帶、射頻一體化接接收模塊TD3020C,BDS B1I信號定位結(jié)果如圖7所示。由圖7分析可知,在緯度和經(jīng)度方向的定位誤差大概在2 m之內(nèi),高度方向的定位誤差在5 m之內(nèi)。定位結(jié)果說明,本文所設(shè)計的衛(wèi)星信號模擬器工作正常,能正確模擬導(dǎo)航衛(wèi)星信號。
圖7 BDS B1I信號定位結(jié)果
5 結(jié)束語
為便于接收機的研發(fā)和測試,本文設(shè)計了一種BDS/GPS雙模多頻點衛(wèi)星信號模擬器,在DSP+FPGA硬件平臺上實現(xiàn)了系統(tǒng)功能。對系統(tǒng)功能進行了測試,測試結(jié)果表明,系統(tǒng)可以準確模擬衛(wèi)星信號。該系統(tǒng)可以應(yīng)用于導(dǎo)航儀、接收機生產(chǎn)廠商,也可以應(yīng)用于衛(wèi)星導(dǎo)航科研院所等單位。
參考文獻
[1] 王海峰,張升康,王宏博,等.GPS/BDS組合導(dǎo)航態(tài)信號模擬器關(guān)鍵技術(shù)研究[J].宇航計測技術(shù),2013,33(3):17-22.
[2] 于厚鋼.高動態(tài)GPS衛(wèi)星信號模擬器的基帶數(shù)字信號處理實現(xiàn)[D].北京:北京郵電大學(xué),2009.
[3] 李曉敏.GPS/BD雙模衛(wèi)星信號模擬器的數(shù)字信號實現(xiàn)[D].北京:北京郵電大學(xué),2013.
[4] 趙軍祥.高動態(tài)智能GPS衛(wèi)星信號模擬器軟件數(shù)學(xué)模型研究[D].北京:北京航空航天大學(xué),2003.
[5] 保玲,佘世剛,周毅,等.應(yīng)用于數(shù)字鎖相環(huán)的NCO設(shè)計[J].電子設(shè)計工程,2011,19(14):160-162.