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