蔡建平,錢曙光,杜克明,溫幸饒
(1.中國人民解放軍61081部隊,北京100094;2.西安電子科技大學通信工程學院,陜西西安710071;3.河北省廣播電視局,河北石家莊050000)
衛(wèi)星導航系統(tǒng)在國民經(jīng)濟建設(shè)中占有重要位置,是國民經(jīng)濟信息化建設(shè)的重要組成部分和推進力量,是建設(shè)國家信息體系的重要基礎(chǔ)設(shè)施,是直接關(guān)系到國家安全和經(jīng)濟發(fā)展的關(guān)鍵性技術(shù)支撐系統(tǒng)。從目前衛(wèi)星導航定位技術(shù)的發(fā)展趨勢以及市場需求來看,單一的衛(wèi)星導航定位服務系統(tǒng)已經(jīng)不能滿足要求,發(fā)展趨勢必然是多種導航定位系統(tǒng)的兼容,而導航定位接收機中的相關(guān)器設(shè)計是導航定位接收機設(shè)計的一個關(guān)鍵技術(shù)之一。SoC作為系統(tǒng)級芯片,在集成電路的設(shè)計領(lǐng)域中越來越顯現(xiàn)出其優(yōu)勢。SoC的設(shè)計方法也將發(fā)展到即插即用型基于應用平臺的設(shè)計,這種設(shè)計的最大特點就是對IP核的設(shè)計和復用。因此采用基于SoC應用的IP核設(shè)計方法對導航定位接收機中的關(guān)鍵電路雙模相關(guān)器IP核進行設(shè)計,既是對IP核設(shè)計方法的有益探索,也為以后的雙模及多模接收機的研制打下了基礎(chǔ)。
鑒于Galileo系統(tǒng)兼容于GPS系統(tǒng),同時GPS系統(tǒng)又是非常穩(wěn)定和成熟的,因此以GPS系統(tǒng)來對相關(guān)器的工作原理進行介紹。GPS衛(wèi)星發(fā)射的是擴頻BPSK信號,接收端只有經(jīng)解擴、解調(diào)才能恢復基帶信號,而完成這些工作就要用到相關(guān)器。相關(guān)器是利用本地復現(xiàn)的載波頻率和C/A碼與輸入的數(shù)字中頻進行相關(guān)處理,去除載波頻率和C/A碼信號,得到用于計算偽距和導航電文的各種測量數(shù)據(jù)和狀態(tài)數(shù)據(jù)。如果忽略信號在傳輸路徑上和接收機內(nèi)附加的滯后延時,經(jīng)過射頻前端采樣后的中頻信號用連續(xù)信號可以表示為:
式中,SIF(t)為射頻前端輸出的數(shù)字中頻信號;C/A(t)為C/A碼信號;D(t)為導航電文;ωIF為數(shù)字中頻;φ為初始相位。該中頻信號經(jīng)基帶處理器采樣并鎖存后分成2路與本地載波NCO產(chǎn)生的同相載波分量和正交載波分量進行混頻之后,經(jīng)過低通濾波器基帶信號可表示為:
如果經(jīng)過捕獲、跟蹤、微調(diào)后,本地載波與輸入載波同步、本地C/A碼與衛(wèi)星擴頻碼同步,即 ωIF=ω0.φ=φ0,于是在式(4)中,正交分量輸出為0,同相分量得到導航電文:
相關(guān)器電路主要由本地載波NCO、碼NCO、本地C/A碼發(fā)生器、載波剝離模塊、相關(guān)陣列模塊構(gòu)成。GPS的一個典型的相關(guān)器的結(jié)構(gòu)如圖1所示。
圖1 典型相關(guān)器結(jié)構(gòu)圖
從圖1可以看出,輸入信號首先送給載波剝離模塊,在該模塊中輸入信號與本地復現(xiàn)的載波信號的同相分量和正交分量相乘,得到采樣數(shù)據(jù)流的同相分量和正交分量。這些輸出值與本地產(chǎn)生的C/A碼的超前、即時和滯后碼同時進行相關(guān)計算,共有6組積分累加數(shù)據(jù)輸出。這些輸出的數(shù)據(jù)送給后面的處理器進行計算,得到修正量來控制本地載波發(fā)生器和C/A碼發(fā)生器,完成對載波和碼的捕獲和跟蹤。
在進行實際相關(guān)器的設(shè)計時,除了本地載波NCO、碼NCO、本地C/A碼發(fā)生器、乘法器和累加清零器模塊之外,還包括時基發(fā)生器模塊、時鐘發(fā)生器模塊、碼滑動計數(shù)器、載波周期計數(shù)器、碼相位計數(shù)器和歷元計數(shù)器。其中時基發(fā)生器產(chǎn)生時間定時信號用于控制在相關(guān)器的累加器和微處理器之間的數(shù)據(jù)傳輸。時鐘發(fā)生器對輸入的主時鐘進行分頻產(chǎn)生相關(guān)器所需要的各種時鐘信號以及用作處理器的同步時鐘信號。碼滑動計數(shù)器的功能是更改本地碼發(fā)生器的狀態(tài),從而改變本地產(chǎn)生的碼序列的相位。歷元計數(shù)器測量值由處理器讀取用于位同步和幀同步。載波周期計數(shù)器的功能是對2個基本時間幀之間的載波周期進行計數(shù),這個測量值可以用來計算2個偽距之間的變化量,從而計算出接收機的速度。
Galileo信號的設(shè)計特點之一是兼容GPS信號,2種信號均為CDMA擴頻調(diào)制,因此相關(guān)器通道能夠兼容,這為雙模接收機的實現(xiàn)奠定了基礎(chǔ)。但Galileo信號的設(shè)計同時采用了一些新技術(shù),如BOC調(diào)制和導引信道等,這些新技術(shù)的應用在帶來優(yōu)勢的同時也帶來了在高靈敏度接收方面的困難。下面對2種信號進行具體分析。
根據(jù)歐空局(ESA)與伽利略聯(lián)合執(zhí)行體(GJU)公布的最新信號接口控制文檔,Galileo信號的頻譜共有10個空間信號,傳輸5種不同的服務數(shù)據(jù)。所有Galileo衛(wèi)星都將共享同樣的頻率波段,采用CDMA多址技術(shù),每個信號每個頻率及每顆衛(wèi)星都將使用不同的擴頻碼,極化方式與GPS一樣,仍然是右手螺旋極化。可以發(fā)現(xiàn)Galileo信號的E1、E5a頻段與GPS的L1、L5頻段的中心頻點是相同的。也就是說只要射頻前端的帶寬相應增加即可接收到2個星座系統(tǒng)的信號,這就為雙模接收機的研制提供了方便。Galileo信號設(shè)計時為了與GPS信號實現(xiàn)良好的兼容,采用了BOC(Binary Offset Carrier)調(diào)制方式作為Galileo信號設(shè)計的主要方式。BOC調(diào)制不僅使Galileo信號避免了與GPS L1信號的相互干擾,而且在許多方面具有優(yōu)勢。但BOC信號所獲取的優(yōu)勢其實是以其帶寬翻倍為代價的,這就為高靈敏度接收機的實現(xiàn)帶來了困難;BOC信號的捕獲,在BOC信號的初始捕獲階段,以同樣的捕獲時間為標準,Galileo接收機的相關(guān)器資源消耗是GPS的一個數(shù)量級以上。對于高靈敏度信號的接收,由于相干積分時間的加長,捕獲上的差別主要是碼相位數(shù)目的增加。如果輔助信息的提供能夠去除Galileo信號的二級碼,必然能夠減小非相干的次數(shù),靈敏度能夠得到改善。因此Galileo信號的特點決定了傳統(tǒng)的GPS接收機相關(guān)器通道結(jié)構(gòu)不完全適合于Galileo信號的接收,這就使得雙模接收機的設(shè)計面臨了新的挑戰(zhàn)。
雙模導航定位接收機電路設(shè)計為24個接收通道,其中12個用于接收GPS,12個用于接收Galileo。其中射頻和基帶輸入時鐘為同一晶振的時鐘,達到同源效果,晶振頻率為10M。AD_CLK為62 MHz,能滿足AD采樣性能要求。AD芯片輸出數(shù)字信號量化比特為8 bit。芯片主要負責信號相關(guān),采用FFT技術(shù)進行頻譜分析,微處理器主要負責捕獲控制、環(huán)路、電文解調(diào)和PVT解調(diào)等。
雙模相關(guān)器電路主要分為捕獲和跟蹤兩部分。在捕獲部分采樣FFT頻域捕獲方案,原理是利用FFT計算,在頻域上劃分分格依次搜索。這樣每次搜索完成后,整個時域就被搜索一遍。當整個頻域依次被搜索完畢后,也會在二維時域和頻率空間尋找最大相關(guān)值。這種捕獲策略相對于其他方法而言,能夠有效減少捕獲時間。FFT搜索算法是基于數(shù)學特性:時域的卷積等價于頻域的相乘。傳統(tǒng)的2個抽樣序列之間的相關(guān)實現(xiàn)方式如下:
式中,R(m)為延遲m的函數(shù),是x(n)和c(n)之間的函數(shù)。但是如果直接計算相關(guān)值R(m),其運算量非常大,正比于序列長度的NL平方。如果通過頻域來計算,其運算量將大幅度減少,運算時間變短。在FFT單元,對輸入的數(shù)據(jù)進行分段處理,分段的長度L就決定一次并行運算的長度,與捕獲概率、捕獲時間有很大關(guān)系。偽碼并行FFT算法的搜索過程與匹配濾波法相似,但速度比匹配濾波法快。即在估計的多普勒頻率點進行一次FFT,以搜索全部偽碼相位,并把功率最大值和門限值比較,若最大值大于門限值,則表明信號捕獲,隨即給出信號所在位置的碼相位和多普勒頻率,進入信號跟蹤階段。如果最大值小于門限值,則表明信號未捕獲,通過控制邏輯改變多普勒搜索單元,重復上述過程。由于FFT具有把能量集中到一個單元上的特性,所以FFT的并行搜索方式,不但搜索時間短,而且可以在低信噪比下捕獲信號。
跟蹤部分使用的碼跟蹤環(huán)路是非相干超前/滯后門延時鎖定環(huán)路,輸入跟蹤環(huán)路的是導航信息和PRN碼調(diào)制后的載波。輸入信號分為2路,與本地產(chǎn)生的PRN碼的超前和滯后作相關(guān)。2路本地碼間隔一樣,通常典型值是準同步碼±0.5個碼片。相關(guān)后的2路信號都與基帶混合,就產(chǎn)生了同相和正交兩分量。超前和滯后2路信號的能量相減,結(jié)果經(jīng)過濾波后輸入NCO(數(shù)控振蕩器),NCO的輸出作為PRN碼發(fā)生器的時鐘輸入。這樣,誤差信號的偏移量就能指示哪路信號含有更多能量,于是就能得知NCO究竟需要加速還是減慢本地PRN碼的發(fā)生。
在雙模相關(guān)器IP核的設(shè)計過程中,首先是使用Matlab進行系統(tǒng)建模,并生成模擬的數(shù)據(jù)作為激勵進行系統(tǒng)級仿真。在仿真成功后,進行RTL設(shè)計。RTL設(shè)計全部采用VHDL,并且嚴格遵守VHDL編碼規(guī)則及IP核設(shè)計規(guī)則。測試使用的激勵由Matlab產(chǎn)生,調(diào)試時使用了代碼覆蓋率檢查工具,確保覆蓋率達到100%。雙模相關(guān)器IP核的電路模塊結(jié)構(gòu)示意圖如圖2所示。
圖2 雙模相關(guān)器芯片的電路模塊結(jié)構(gòu)
在雙模相關(guān)器IP核功能得到驗證之后,進行了IP核的標準化工作,首先使用檢查工具leda3.0.0對相關(guān)器的VHDL代碼進行檢查,在使用標準腳本運行檢查之后,沒有 Error和Warning;IP核中的Memory,可以根據(jù)選擇的工藝庫不同,運行與工藝庫相對應的腳本即可得到;仿真工具有2款:Windows XP操作系統(tǒng)下的Modelsim6.5和Linux操作系統(tǒng)下的vcs2009.06。測試激勵是由導航系統(tǒng)碼流儀產(chǎn)生的,TB分為跟蹤和捕獲兩大部分,分別使用相關(guān)數(shù)據(jù)進行仿真結(jié)果的驗證;代碼覆蓋率分析使用的是vcs2009.6,達到了100%;綜合使用的是Synopsys公司的DesignCompiler2007.03軟件實現(xiàn)的,使用的腳本、約束文件均已打包,并且針對不同的工藝庫,使用了不同的腳本文件,可以解壓縮直接使用;后端布局布線時的時鐘樹的說明,使用的TCL腳本,DRC、LVS檢查的規(guī)則,都生成了正式的文件,并配以說明;時序分析使用的是Synopsys公司的PrimeTime,有獨立的腳本,可以直接運行;功耗分析使用的是Synopsys公司的PowerCompiler,經(jīng)過分析也滿足IP核的使用要求。以上IP核標準化過程中所產(chǎn)生的文檔和文件,均使用商用轉(zhuǎn)換器進行打包,可以直接解壓縮使用,基本滿足IP核標準化的要求。
雙模相關(guān)器IP核的仿真驗證手段是多層次的,包括系統(tǒng)級、RTL級和FPGA平臺級驗證。首先是進行系統(tǒng)級仿真,建立雙模相關(guān)器IP核的modelsim仿真環(huán)境,加以合適的激勵,通過這組激勵得到的最終結(jié)果和預期結(jié)果完全一致,證明雙模相關(guān)器IP核的系統(tǒng)設(shè)計正確;其次搭建基于FPGA的原型驗證環(huán)境,在原型機的驗證環(huán)境中進行實際仿真測試,測試結(jié)果與系統(tǒng)級仿真相符,即設(shè)計滿足了系統(tǒng)設(shè)計要求,進一步證明IP核系統(tǒng)設(shè)計的正確性;最后將可綜合的代碼替代FPGA代碼,進行Modelsim的功能仿真,采用的激勵與FPGA平臺相同得到結(jié)果也一致,即證明了IP核邏輯設(shè)計的正確,之后再使用VCS對代碼進行完備的仿真、綜合,產(chǎn)生網(wǎng)表信息,最后對雙模相關(guān)器進行IP化設(shè)計,完成雙模相關(guān)器IP核的設(shè)計。下面對雙模相關(guān)器IP核在Modelsim仿真環(huán)境下的邏輯功能仿真進行分析,尤其是對其中重要模塊的波形做重點分析。
雙模相關(guān)器IP核中的all_sat_recvchannels是雙模相關(guān)器中所有通道的集合,是雙模相關(guān)器IP核的主體模塊,包括24個通道和一個C碼捕獲模塊,每個通道就是將輸入碼流解析,產(chǎn)生相關(guān)的IQ兩路數(shù)據(jù)和code碼,送入C碼捕獲模塊進行捕獲,在對每一個通道的捕獲過程中,對輸入的數(shù)據(jù)分為10組進行捕獲。其中的test_outc就是捕獲的結(jié)果數(shù)據(jù),C碼捕獲模塊啟動信號Acq_Start是由DSP配置進去的,當?shù)刂窞槿?時,會將數(shù)據(jù)總線的最低位(0位)配置為Acq_Start 。進行相關(guān)運算,50 μ s一次,一共進行100次運算,將運算值存入ram中。存入ram之后進行讀取ram,每次讀取20個數(shù)據(jù)進行運算,運算結(jié)果緩存為out_data ;每 50 μ s進行 8 次運算,一共需要20*50 μ s完成一組數(shù)據(jù)的運算。在運算到第10次,也就是最后一次運算的時候,會將運算結(jié)果進行比較,得到最大值,并且記錄相應的地址。其中WR_Corr_Cnt_20為寫ram的次數(shù),1 ms中寫20次;NonCoh_Cnt_10為非相干累計的次數(shù),10次一循環(huán),out_data 為非相干累積結(jié)果,最終在第10次非相干累計時,將得到的非相干值進行比較,在比較結(jié)束后,產(chǎn)生Compare_Done 脈沖將最大值附近的頻譜輸出。仿真結(jié)果得到的最大值是0E02,地址是143D,與使用FPGA原型驗證平臺運行相同激勵得到的結(jié)果,以及與預期結(jié)果相一致,驗證了雙模相關(guān)器IP核設(shè)計的正確。
實現(xiàn)Galileo和GPS接收系統(tǒng)的兼容,可有效提高衛(wèi)星導航在北半球高緯度地區(qū)的可用性、提高衛(wèi)星導航業(yè)務的靈敏度、改善衛(wèi)星導航在城市地區(qū)的可用性。因此多種導航定位系統(tǒng)的兼容接收已成為發(fā)展趨勢,但同時也面臨著挑戰(zhàn),挑戰(zhàn)之一是基于SoC應用的雙模相關(guān)器IP核的設(shè)計。對Galileo/GPS雙模相關(guān)器IP核進行了分析設(shè)計,并進行了仿真驗證和分析,可為本領(lǐng)域的設(shè)計人員提供有益的借鑒,同時也可應用于雙模導航定位接收機中,具有很好的實用價值。
[1]馬 瑞,馬穎莉.Galileo/GPS系統(tǒng)組合導航的定位算法研究[J].遙測遙控,2009(1):7-11.
[2]邢兆棟,趙維剛.基于NIOSII的多模導航接收機跟蹤環(huán)路[J].無線電工程,2009(8):32-37.
[3]車 斐.多衛(wèi)星導航系統(tǒng)組合定位解算[J].無線電工程,2007(3):34-35.
[4]翟 艷,楊銀堂,朱樟明,等.一種基于SoC應用的 Railto-Rail運算放大器IP核[J].西安電子科技大學學報,2005(1):112-115.
[5]唐重林,柴常春,程春來.基于SoC應用的運算放大器IP核設(shè)計[J].微計算機信息,2008(20):167-169.