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