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