GNSS接收機中數(shù)據(jù)傳輸優(yōu)化方法設(shè)計與應(yīng)用
摘要:對于基于FPGA+DSP架構(gòu)實現(xiàn)的、需要同時接收處理多系統(tǒng)多頻點導(dǎo)航衛(wèi)星信號的GNSS接收機,隨著跟蹤通道數(shù)目成倍增長以及為提升抗多徑等性能造成的每通道相關(guān)器數(shù)目的增加,F(xiàn)PGA和DSP之間需要交互的相關(guān)值數(shù)據(jù)量也將成倍增加。本文在定制的FPGA+DSP的硬件平臺上,利用DSP芯片的QDMA功能,消除了連續(xù)數(shù)據(jù)讀取間隔的無效時間,并實現(xiàn)了衛(wèi)星信號處理與相關(guān)值數(shù)據(jù)傳輸的并行化,顯著降低了數(shù)據(jù)傳輸對DSP處理時間的占用,使得在同樣硬件平臺上跟蹤通道數(shù)由44個提高到96個,滿足了項目設(shè)計的要求。
引言
隨著北斗導(dǎo)航衛(wèi)星系統(tǒng)(BDS)、伽利略導(dǎo)航衛(wèi)星系統(tǒng)(Galileo)以及Glonass導(dǎo)航衛(wèi)星系統(tǒng)的發(fā)展,全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite Systems,GNSS)接收機工作模式已經(jīng)從單模單頻向多模多頻轉(zhuǎn)變,這一趨勢在高精度衛(wèi)星導(dǎo)航接收機以及兼容互操作接收機中體現(xiàn)得更加明顯。接收信號數(shù)量的增加直接導(dǎo)致接收機通道數(shù)量的成倍增加。同時,為了提升抗多徑干擾的能力,接收機相關(guān)通道通常在典型的三組復(fù)相關(guān)器的基礎(chǔ)上額外增加兩組復(fù)相關(guān)器。此外,為了適應(yīng)新信號體制下的導(dǎo)頻分量與數(shù)據(jù)分量的同時接收,接收機相關(guān)通道內(nèi)部需要單獨一路相關(guān)器對數(shù)據(jù)支路進行數(shù)據(jù)解調(diào)。接收機通道數(shù)據(jù)增加以及相關(guān)器數(shù)量的增加直接導(dǎo)致DSP與FPGA之間傳輸數(shù)據(jù)量的劇增。
DSP與FPGA之間的通信通常采用EMIF異步總線方式實現(xiàn),由于傳輸數(shù)據(jù)量的成倍增加,數(shù)據(jù)傳輸所占用的CPU時間也將成倍增加,最終導(dǎo)致CPU不能在0.505mS內(nèi)完成所有通道的信號處理任務(wù)。
因此,研究如何有效提升FPGA和DSP之間的數(shù)據(jù)傳輸速率以降低數(shù)據(jù)傳輸對DSP處理時間的占用,對實現(xiàn)多模多頻GNSS接收機具有重要意義。
1 接收機硬件架構(gòu)
定制的基于FPGA+DSP架構(gòu)的接收機硬件方案如圖1所示。
接收機天線采用的是全頻段天線,能夠接收BDS、GPS、Galileo以及Glonass系統(tǒng)所有頻點的衛(wèi)星導(dǎo)航信號;射頻通道RF完成導(dǎo)航信號的放大、下變頻以及濾波等工作;基帶平臺中的A/D轉(zhuǎn)換器對射頻通道輸出的中頻信號進行采樣,完成模擬信號到數(shù)字信號的轉(zhuǎn)換;FPGA實現(xiàn)導(dǎo)航信號的捕獲以及通道相關(guān)運算功能;DSP選用TI公司的OMAPL138,完成環(huán)路的更新以及定位解算功能。
2 數(shù)據(jù)傳輸分析
在接收的導(dǎo)航信號中,有些信號沒有導(dǎo)頻支路分量(如B1I、L1CA等),但是為了保證積分通道的通用性,F(xiàn)PGA內(nèi)部積分通道均采用5路復(fù)相關(guān)器完成導(dǎo)頻分量的跟蹤,同時具有一路獨立的相關(guān)器完成數(shù)據(jù)的解調(diào)功能。單通道內(nèi)的環(huán)路結(jié)構(gòu)如圖2所示。
與傳統(tǒng)的只有三路復(fù)相關(guān)器的接收機相比較,在圖2所示的單通道內(nèi),增加了EE與LL兩組復(fù)相關(guān)器、數(shù)據(jù)支路偽隨機碼發(fā)生器(data code generator)、數(shù)據(jù)解調(diào)器以及IQ切換單元(I,Q switch)。增加兩路復(fù)相關(guān)器是為了能夠?qū)崿F(xiàn)性能良好的抗多徑算法;由于在不同信號分量內(nèi)數(shù)據(jù)支路與導(dǎo)頻支路的相位關(guān)系不確定,因此需要在解調(diào)數(shù)據(jù)之前添加IQ切換功能單元。對于沒有導(dǎo)頻支路的導(dǎo)航信號,在接收機通道使用過程中無需使用IQ切換單元、數(shù)據(jù)解調(diào)相關(guān)器以及數(shù)據(jù)支路偽隨機碼發(fā)生器。
在通道更新之前,OMAPL138需要將FPGA內(nèi)部完成的5組積分值讀取到內(nèi)部,完成相位延遲鎖定環(huán)路(PLL)和偽碼延遲鎖定環(huán)路(DLL)的鑒相以及濾波,最后將環(huán)路更新的結(jié)果反饋至FPGA內(nèi)部的相關(guān)通道中,從而完成一次環(huán)路的更新。在下面分析的過程中將誤差計算、濾波以及PLL、DLL更新合稱為“通道處理”。
DSP執(zhí)行0.505 ms中斷任務(wù)的流程如圖3所示。中斷開始后首先讀取所有通道相關(guān)積分標(biāo)志,循環(huán)判斷通道積分狀態(tài)標(biāo)志位,根據(jù)1ms相關(guān)積分狀態(tài)標(biāo)志位,進行相應(yīng)通道處理。
FPGA與OMAPL138之間通過EIMF總線進行數(shù)據(jù)傳輸。EIMF總線具有兩種工作模式:同步和異步。程序設(shè)計初始階段,接收機采用異步模式普通尋址方式進行數(shù)據(jù)傳輸。在分析數(shù)據(jù)傳輸時序的過程中,采用Altera邏輯分析儀軟件signalTap對DSP與FPGA之間的異步通信時序進行仿真分析。分析結(jié)果如圖4所示。
由圖4中的片選信號cen可以看出,數(shù)據(jù)訪問的時間由片選低電平以及兩次訪問數(shù)據(jù)間的高電平組成。其中,低電平時間主要由EMIF總線時序中的 setup、strobe以及hold時間構(gòu)成;高電平代表讀取數(shù)據(jù)的切換時間,視為無效時間,這段元效時間嚴(yán)重降低了數(shù)據(jù)傳輸速率。通過第一行的采樣點以及采樣頻率可以估計出普通異步訪問總線數(shù)據(jù)速率為3.0 03 MB。0.505 ms內(nèi)跟蹤通道數(shù)滿足下式:
n·Ns/R+n·tsp+δt<0.505 ms (1)
其中,R為EIMF通信速率(MB/s);Ns為單通道數(shù)據(jù)量(字節(jié));tsp為單通道處理時間(s);δt為OMAPL138查詢通道過程中的程序執(zhí)行時間,在下面計算過程中忽略此時間。
在復(fù)相關(guān)器數(shù)為3(Ns=12字節(jié)),跟蹤通道數(shù)n=12的傳統(tǒng)接收機工作模式下,單通道處理時間tsp=4 μs;由式(1)可知,通道更新時間t=n·Ns/R+n·tsp+δt≈96μs,滿足t< 0.505 ms,因此OMAPL138能夠完成12個通道的跟蹤。但是在單通道內(nèi)復(fù)相關(guān)器數(shù)量為5,同時具有一路解調(diào)數(shù)據(jù)相關(guān)器的情況下,單通道積分?jǐn)?shù)據(jù)Ns增加至22字節(jié),則跟蹤通道數(shù)n<44,不能滿足項目中跟蹤通道數(shù)為96的要求。
基于以上分析,下面將重點討論如何通過縮短無效時間,以及通過數(shù)據(jù)讀取與通道處理并行執(zhí)行縮短數(shù)據(jù)傳輸占用DSP時間兩方面來提高數(shù)據(jù)傳輸?shù)男省?/p>
3 數(shù)據(jù)傳輸優(yōu)化方法分析與實現(xiàn)
3.1 消除數(shù)據(jù)讀取間隔的無效時間
采用signalTap對memcpy或者QDMA數(shù)據(jù)通信進行仿真分析,分析結(jié)果表明兩者在數(shù)據(jù)傳輸過程的時序關(guān)系一致,能夠有效縮短數(shù)據(jù)訪問時間。異步時序模式下QDMA/memcpy通信時序關(guān)系如圖5所示。
由圖5中的片選信號cen可以看出,在采用QDMA或者memcpy進行數(shù)據(jù)傳輸時,cen高電平僅出現(xiàn)一次,EMIF總線數(shù)據(jù)吞吐率提升至6.85 MB/s,縮短了數(shù)據(jù)傳輸占用OMAPL138的時間。由式(1)可以得出,跟蹤通道數(shù)n<70,不能滿足設(shè)計指標(biāo),因此需要通過實現(xiàn)數(shù)據(jù)傳輸與通道處理的并行執(zhí)行進一步縮短數(shù)據(jù)傳輸占用OMAPL138時間,實現(xiàn)在0.505 ms內(nèi)完成96個跟蹤通道的更新。
3.2 實現(xiàn)數(shù)據(jù)傳輸與通道處理并行執(zhí)行
與memcpy方法進行數(shù)據(jù)傳輸相比較,QDMA數(shù)據(jù)傳輸方式能夠通過修改軟件算法方便地實現(xiàn)數(shù)據(jù)傳輸與通道處理并行執(zhí)行,從而達到進一步縮短數(shù)據(jù)傳輸占用OMAPL138時間的目的。采用QDMA方式進行數(shù)據(jù)傳輸后的0.505 ms任務(wù)流程如圖6所示。
圖6與圖3比較可以看出,在采用QDMA數(shù)據(jù)傳輸方式下,數(shù)據(jù)傳輸與通道處理任務(wù)執(zhí)行算法得到優(yōu)化,在查詢到第一個通道積分值有效后,采用memcpy方式對該通道的積分?jǐn)?shù)據(jù)進行讀取,數(shù)據(jù)讀取完成后開始查詢下一個積分值有效通道,當(dāng)查詢到下一個有效通道后,將QDMA設(shè)置為開始讀下一個通道數(shù)據(jù);當(dāng)通道處理完成后,檢查QDMA是否完成通道數(shù)據(jù)的讀取,如果完成則切換到下一個通道進行查詢,若沒有完成,則等待數(shù)據(jù)傳輸完成。當(dāng)96個通道全部查詢完成后,開始執(zhí)行最后一個通道的處理任務(wù),這保證了只有一個通道的積分值有效的情況下能夠?qū)@個通道進行處理;若96個通道的積分值均無效,則在查詢完積分標(biāo)志位后直接結(jié)束中斷任務(wù)。
圖7的0.505 ms中斷內(nèi)的任務(wù)時序圖更直觀地說明,采用QDMA方式數(shù)據(jù)傳輸有效縮短了數(shù)據(jù)傳輸占用OMAPL138的時間。傳輸步驟如下:查詢通道狀態(tài);讀取累積值標(biāo)志位;通道數(shù)據(jù)讀取;通道處理。
圖7中的編號為有效通道的通道號,能夠更加方便地看出在0.505 ms內(nèi),由于數(shù)據(jù)傳輸與通道處理的并行執(zhí)行,將數(shù)據(jù)傳輸占用OMAPL138的時間縮減至一次數(shù)據(jù)讀取的時間,從而完成數(shù)據(jù)傳輸?shù)淖顑?yōu)化。通道數(shù)量與數(shù)據(jù)傳輸速率的約束公式變?yōu)椋?/p>
1·Ns/R+n·tsp+δt<0.505 ms (2)
其中,R為OMAPL138與FPGA通信速率(6.85 MB/s);Ns為單通道數(shù)據(jù)量(22字節(jié));tsp為單通道處理時間(4 μs);δt為OMAPL138查詢通道過程中的程序執(zhí)行時間。
結(jié)語
以工程實際為基礎(chǔ),在低功耗的前提下,針對如何有效提升FPGA和DSP之間的數(shù)據(jù)傳輸速率以降低數(shù)據(jù)傳輸對DSP處理時間的占用問題,通過在當(dāng)前定制的衛(wèi)星導(dǎo)航接收機硬件平臺上對數(shù)據(jù)傳輸進行仿真分析,最終提出對數(shù)據(jù)傳輸采用QDMA方式進行優(yōu)化,消除了連續(xù)數(shù)據(jù)讀取間隔的無效時間,并實現(xiàn)了衛(wèi)星信號處理與相關(guān)值數(shù)據(jù)傳輸?shù)牟⑿谢?,顯著降低了數(shù)據(jù)傳輸對DSP處理時間的占用,使得在同樣硬件平臺上跟蹤通道數(shù)由44個提高到96個,滿足了項目設(shè)計的要求。本文的優(yōu)化思想并不局限于設(shè)計實現(xiàn)基于DSP實現(xiàn)的GNSS接收機,同時為采用嵌入式MCU設(shè)計多通道GNSS接收機提供了理論依據(jù)。