<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 射頻直采GNSS數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          射頻直采GNSS數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2017-06-05 來源:網(wǎng)絡(luò) 收藏

          隨著在衛(wèi)星導(dǎo)航接收機(jī)上的廣泛應(yīng)用,衛(wèi)星導(dǎo)航接收機(jī)的硬件部分簡化為和高速模塊兩部分。隨著GPS現(xiàn)代化和伽利略、北斗信號(hào)的發(fā)展,未來接收機(jī)必須能夠接收多個(gè)頻點(diǎn)的導(dǎo)航信號(hào),為了避免多頻下變頻存在的多路頻率混頻的難題,可以在射頻上直接進(jìn)行數(shù)字采樣和數(shù)據(jù)傳輸。

          本文引用地址:http://www.ex-cimer.com/article/201706/349164.htm

           2009年,瑞士的洛桑聯(lián)邦理工大學(xué)設(shè)計(jì)出了多頻射頻直接采樣的前端,并對(duì)各級(jí)信號(hào)增益和三階截止點(diǎn)進(jìn)行了詳細(xì)的評(píng)估。同時(shí)對(duì)多頻信號(hào)的采樣率要求進(jìn)行了分析[1]。2009年,北京航空航天大學(xué)設(shè)計(jì)出了能夠同時(shí)在射頻上直接采集GPS L1、L2雙信號(hào)的接收機(jī),采樣率為100 MHz[2]。

           國內(nèi)外目前對(duì)于多頻射頻直接采樣的高速部分研究很少,北京航空航天大學(xué)之前的方案只是做到雙頻的集成,采樣率較低。而洛桑聯(lián)邦理工大學(xué)的方案成熟但是對(duì)于和定位分析的工作沒有論述。能夠同時(shí)接收GPS 3個(gè)頻帶信號(hào)、伽利略信號(hào)以及北斗信號(hào)的接收機(jī)需要的采樣率更高更難以實(shí)現(xiàn)。因此多頻直接采樣接收機(jī)的硬件設(shè)計(jì)工作在國內(nèi)外均開展較少,其中高速數(shù)據(jù)采集以及多頻設(shè)計(jì)是其中的兩個(gè)關(guān)鍵問題。

          1 硬件系統(tǒng)設(shè)計(jì)

          衛(wèi)星導(dǎo)航系統(tǒng)軟件接收機(jī)的思想是讓寬帶A/D轉(zhuǎn)換器盡可能靠近射頻天線,盡早地將模擬信號(hào)轉(zhuǎn)為數(shù)字信號(hào)[3],最大程度地用軟件來實(shí)現(xiàn)接收機(jī)的各種功能。

          本文中數(shù)據(jù)采集系統(tǒng)的工作原理是,使用寬頻天線接收信號(hào)后,在射頻前端進(jìn)行放大、濾波和增益控制工作。其中多頻技術(shù)需要使用分路濾波技術(shù)。前端輸出的信號(hào)被送到高速ADC進(jìn)行采樣,其后通過FPGA進(jìn)行緩沖和處理(如FIR數(shù)字濾波器處理等)。然后PFGA將數(shù)據(jù)封裝成幀結(jié)構(gòu)通過以太網(wǎng)口將其傳送到主機(jī)上。主機(jī)在物理層抓獲以太網(wǎng)數(shù)據(jù)包,分析MAC地址后將需要的數(shù)據(jù)存儲(chǔ)到硬盤之中。

          1.1 射頻前端設(shè)計(jì)

          直接采樣的射頻前端與傳統(tǒng)的采用下變頻技術(shù)的接收機(jī)前端有所不同。如圖1所示,直接采樣的射頻前端使用高增益GNSS天線接收信號(hào)。而信號(hào)經(jīng)過LNA作第一級(jí)放大后,經(jīng)過1.1 GHz~1.7 GHz帶通濾波,再使用PA進(jìn)一步放大。此后射頻信號(hào)分為3路,分別進(jìn)行濾波、放大、再濾波后合并,之后使用AGC環(huán)路調(diào)節(jié)輸出信號(hào)功率。

           下變頻前端的混頻器頻率由晶振提供,通過混頻對(duì)射頻信號(hào)進(jìn)行多級(jí)下變頻,并進(jìn)行放大和濾波,最后輸出中頻信號(hào)供ADC采集。

          在射頻上直接進(jìn)行采樣不需要本地晶振,但是所有放大器和濾波器均需要在射頻下工作。多頻前端需要對(duì)不同的頻帶進(jìn)行分路濾波放大,同時(shí)將帶外噪聲盡可能地濾除掉。本系統(tǒng)使用了實(shí)驗(yàn)室自行設(shè)計(jì)的射頻前端,能夠在ADC之前得到頻譜形狀如圖2所示的信號(hào)。它包括了GPS的L1、L2、L5信號(hào)和伽利略E1、E5a、E5b以及部分北斗衛(wèi)星的信號(hào)。表1列出了上述導(dǎo)航系統(tǒng)的信號(hào)頻率及帶寬。

          前端將信號(hào)放大至ADC可以采樣的電平,對(duì)于ADC08D500, 1 bit量化的信號(hào)最小輸入能量是-47.92 dBm[5]。GNSS天線的增益為50 dB,兩級(jí)LNA增益共約35 dB, PA增益20 dB,前端總插入損耗約為20 dB, AGC環(huán)路增益動(dòng)態(tài)范圍為-35 dB~+22 dB,使用前端的增益足夠?qū)π盘?hào)進(jìn)行4 bit采樣。

           對(duì)于GNSS信號(hào),超過2 bit采樣對(duì)信噪比的改善作用不是很明顯,而太高量化位數(shù)會(huì)增加數(shù)據(jù)處理的困難。本設(shè)計(jì)選擇存儲(chǔ)了1 bit和2 bit的采樣數(shù)據(jù),但是在ADC采樣時(shí)仍然進(jìn)行了8 bit采樣,以便于FPGA進(jìn)行FIR濾波。經(jīng)過FIR濾波以后的數(shù)據(jù)可以進(jìn)行截位處理,即截取1 bit或者2 bit進(jìn)行保存。

           前端設(shè)計(jì)的主要難點(diǎn)在于以下三個(gè)方面:射頻寬頻帶放大器容易飽和;分路放大再合路會(huì)給信號(hào)帶來很大損耗;射頻AGC電路需要進(jìn)行特殊屏蔽處理。

          1.2 采樣率的選擇

          衛(wèi)星導(dǎo)航系統(tǒng)使用擴(kuò)頻通信技術(shù),ADC采集的是噪聲信號(hào),信號(hào)頻帶上的混疊相當(dāng)于將其他頻帶信號(hào)作為噪聲混疊到目標(biāo)頻帶中。因此可以容忍一定程度信號(hào)頻譜的混疊。對(duì)于GPS的3個(gè)頻帶,根據(jù)帶通采樣原理可以計(jì)算需要的采樣頻率。計(jì)算時(shí)不僅要求信號(hào)采樣后頻譜自身不混疊,同時(shí)不同頻帶的頻譜兩兩之間也不混疊。

          對(duì)于GPS的L1、L2、L5信號(hào)(實(shí)際也包括了伽利略的E1、E5a),采樣后頻譜不混疊可選用的最低采樣頻率是158 MHz。若考慮伽利略的E5b,直采系統(tǒng)的最低采樣率為227 MHz [1]。為了滿足不同采樣頻率的要求,本設(shè)計(jì)采樣頻率合成器生成多種采樣時(shí)鐘,使用FPGA的SPI對(duì)頻率合成器進(jìn)行配置,本文1.3節(jié)中將會(huì)介紹多種采樣時(shí)鐘的生成方法。

          1.3 ADC模塊的設(shè)計(jì)

          ADC08D500是美國國家半導(dǎo)體公司生產(chǎn)的高速模數(shù)轉(zhuǎn)換芯片,其取樣率可高達(dá)500 MS/s,使用差分輸入,有效位數(shù)為8 bit,可以進(jìn)行雙通道采樣, 而功耗僅有1.4 W[5]。

           ADC08D500除了單通道能實(shí)現(xiàn)最高采樣達(dá)500 MS/s的速率外,還能夠進(jìn)行雙邊沿采樣(DES),只對(duì)某一路通道的信號(hào)在時(shí)鐘信號(hào)的一個(gè)周期的上下兩個(gè)邊沿進(jìn)行采樣,利用芯片內(nèi)置的兩個(gè)轉(zhuǎn)換器進(jìn)行交錯(cuò)操作,最終達(dá)到1 GS/s的采樣率。

           ADC采樣的時(shí)鐘來自于頻率合成器輸出的時(shí)鐘。為了滿足ADC采樣對(duì)于采樣時(shí)鐘的相位噪聲的要求,本設(shè)計(jì)使用了10 MHz的原子鐘作為頻率合成器輸入,通過FPGA的SPI將頻率合成器輸出配置成需要的頻率,如230 MHz。此外本文還使用了TCXO作輸入,對(duì)頻率合成器輸出信號(hào)的相位噪聲情況進(jìn)行衡量。通過相位噪聲和時(shí)鐘抖動(dòng)的情況計(jì)算出頻率合成器輸出時(shí)鐘總的抖動(dòng)為1.24 ps,這個(gè)抖動(dòng)情況能夠滿足ADC08D500對(duì)GNSS信號(hào)的采集需要。
           ADC08D500的輸出有兩個(gè)通道四組8 bit差分總線,分別是I[7:0]、Id[7:0]、Q[7:0]、Qd[7:0],另外還有兩組輸出的差分時(shí)鐘做FPGA的數(shù)據(jù)采集時(shí)鐘。

          1.4 高速數(shù)據(jù)傳輸設(shè)計(jì)

          將衛(wèi)星導(dǎo)航信號(hào)進(jìn)行數(shù)字化時(shí),通常將量化位數(shù)選取為1 bit或者是2 bit。當(dāng)采樣率為230 MHz時(shí),2 bit采樣數(shù)據(jù)傳輸需要約60 MB/s的接口傳輸速度和硬盤寫入速度。千兆位以太網(wǎng)的理論速度達(dá)1 000 Mb/s,能夠滿足數(shù)據(jù)傳輸?shù)男枰襂SE工具自帶了Ethernet MAC IP核。因此,本文中采用以太網(wǎng)進(jìn)行數(shù)據(jù)的傳輸。

          使用以太網(wǎng)傳輸數(shù)據(jù),可以在FPGA實(shí)現(xiàn)TCP/IP協(xié)議功能,也可以直接通過以太網(wǎng)的物理層進(jìn)行數(shù)據(jù)傳輸。Virtex5 FPGA內(nèi)部擁有嵌入式軟核處理器MicroBlaze,能夠進(jìn)行FPGA內(nèi)部的嵌入式開發(fā)。開發(fā)以太網(wǎng)時(shí)通常在嵌入式系統(tǒng)中添加TCP/IP協(xié)議棧,常用的TCP/IP協(xié)議棧是Lwip或者是Treck協(xié)議棧[6]。但是使用TCP/IP協(xié)議,協(xié)議的每一層都會(huì)在數(shù)據(jù)幀前添加各自的幀頭,再加上協(xié)議的一些檢錯(cuò)重發(fā)等功能,真正待傳輸?shù)臄?shù)據(jù)的吞吐率是很低的,千兆以太網(wǎng)的速度通常只有200 Mb/s~300 Mb/s,不能滿足本系統(tǒng)對(duì)于數(shù)據(jù)傳輸率的要求。

            在物理層直接傳輸數(shù)據(jù),數(shù)據(jù)傳輸速率幾乎可以達(dá)到以太網(wǎng)的理論傳輸極限(實(shí)測(cè)能超過900 Mb,根據(jù)數(shù)據(jù)幀封裝不同有所差異)。雖然沒有TCP/IP協(xié)議中對(duì)丟包錯(cuò)包等數(shù)據(jù)完整性問題的修正功能,但可以通過上層的校驗(yàn)和序號(hào)發(fā)現(xiàn)數(shù)據(jù)幀錯(cuò)誤和亂序。下文將討論在主機(jī)端如何在網(wǎng)卡上直接捕獲并存儲(chǔ)高速數(shù)據(jù)。

           整個(gè)數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)如圖3所示,除了ADC電路的設(shè)計(jì),主要工作在FPGA下完成。


          1.4.1 FPGA數(shù)據(jù)預(yù)處理

          本文使用Xilinx公司的Virtex5系列FPGA開發(fā)板ML506進(jìn)行數(shù)字信號(hào)處理,開發(fā)環(huán)境基于ISE Design suite 11進(jìn)行。
          從ADC傳送出的數(shù)字信號(hào)為8對(duì)或者16對(duì)差分?jǐn)?shù)據(jù)以及1路差分時(shí)鐘。對(duì)于采樣數(shù)據(jù)的截位處理可以分為直接截位和濾波后截位兩種處理方式。直接截位是只選擇其中的高位數(shù)據(jù)進(jìn)行傳輸,濾波后截位是接收全部的8 bit數(shù)據(jù),將數(shù)據(jù)送給數(shù)字濾波器處理后再進(jìn)行截位,本文采用先濾波后截位的方法,可以選擇保存1 bit或者2 bit數(shù)據(jù)。
          ADC08D500器件以230 MHz的高采樣率進(jìn)行8 bit量化時(shí),輸出數(shù)據(jù)率將非常大。單獨(dú)對(duì)其中任一導(dǎo)航信號(hào)頻帶來說,高達(dá)230 MHz的采樣率都是不必要的。對(duì)此,在FPGA中添加入FIR(有限沖激響應(yīng)數(shù)字濾波器),分別濾出采樣后導(dǎo)航信號(hào)各頻帶,在使用截位輸出來降低量化位數(shù)的同時(shí),使用抽取來降低采樣率。以GPS系統(tǒng)為例,當(dāng)采樣率為230 MHz時(shí),L1、L2和L5的中頻分別為195.42 MHz、77.6 MHz和26.45 MHz。因此,在FPGA中生成3個(gè)FIR(帶通FIR)就可以濾除帶外信號(hào),消除信號(hào)互相之間的干擾。具體實(shí)現(xiàn)方法是在MATLAB通過“ftdtools”濾波器設(shè)計(jì)工具,計(jì)算濾波器參數(shù)以生成COE形式的濾波器文件。

          將設(shè)計(jì)出的3個(gè)濾波器文件(.COE文件)導(dǎo)入FPGA的FIR IPcore中,就可以生成相應(yīng)的濾波器Verilog代碼,即可獲得對(duì)應(yīng)的頻率幅度響應(yīng)圖,其效果如圖4所示。

           FIR輸出數(shù)據(jù)可以根據(jù)數(shù)據(jù)傳輸能力和需要進(jìn)行截位,一般只截取最高的符號(hào)位或者選取其中2位。數(shù)據(jù)分三路進(jìn)行FIR濾波之后,即可對(duì)每一路數(shù)據(jù)進(jìn)行降采樣處理。直接進(jìn)行抽取就可以降低數(shù)據(jù)量和采樣率,這將降低后續(xù)數(shù)據(jù)處理復(fù)雜度。

          在對(duì)三路濾波后信號(hào)進(jìn)行傳輸過程中,通過以太網(wǎng)封裝幀給不同頻點(diǎn)信號(hào)賦予不同的MAC地址。主機(jī)捕獲時(shí)可以通過識(shí)別MAC地址的方法,將三路數(shù)據(jù)進(jìn)行分類存儲(chǔ)。

          1.4.2 以太網(wǎng)數(shù)據(jù)傳輸

          V5系列FPGA開發(fā)板上有以太網(wǎng)物理芯片88E1111實(shí)現(xiàn)開發(fā)板與電腦網(wǎng)卡的以太網(wǎng)物理層連接,ISE 11套裝中的core generator可以生成Ethernet MAC IP核,直接例化它就可以進(jìn)行以太網(wǎng)數(shù)據(jù)傳輸?shù)拈_發(fā)[7]。其結(jié)構(gòu)如圖5所示。

          直接接收ADC的輸出數(shù)據(jù)或者是FIR截位之后的數(shù)據(jù)作為圖6模塊中的用戶輸入數(shù)據(jù)。因?yàn)樵O(shè)置的MAC核按照字節(jié)來傳輸數(shù)據(jù),所以在MAC核前面需要添加一個(gè)FIFO進(jìn)行緩沖和串并轉(zhuǎn)換,進(jìn)入FIFO的數(shù)據(jù)是1 bit或2 bit,按照整字節(jié)輸出數(shù)據(jù)。

          直接發(fā)送的數(shù)據(jù)幀是以太網(wǎng)物理層的數(shù)據(jù)幀,高層協(xié)議(TCP/IP協(xié)議)并沒有使用到。

          以太網(wǎng)數(shù)據(jù)幀的包頭首先是8 B的前導(dǎo)碼(7 B原語和1 B幀起始)[7],然后是6 B的目的MAC地址和6 B的源MAC地址,之后是2 bit的協(xié)議類型或數(shù)據(jù)包長度,中間是46~1 500 B的數(shù)據(jù)內(nèi)容,以及4 bit的校驗(yàn)位,如圖6所示?;贓MAC核實(shí)現(xiàn)以太網(wǎng)絡(luò)協(xié)議數(shù)據(jù)報(bào)文的發(fā)送具體包括以下幾個(gè)步驟:數(shù)據(jù)輸出緩沖、MAC地址添加、數(shù)據(jù)FCS校驗(yàn)和原語添加。最終經(jīng)過MAC封裝以后,整個(gè)數(shù)據(jù)報(bào)文的長度為64~1 518 B。校驗(yàn)位和前導(dǎo)碼是可以選擇自動(dòng)添加的,所以在輸入數(shù)據(jù)時(shí),通過編寫狀態(tài)機(jī)代碼添加正確的MAC地址,設(shè)置固定字節(jié)的數(shù)據(jù)包大小就可以讓數(shù)據(jù)正確地傳輸了。設(shè)計(jì)時(shí)設(shè)置每個(gè)數(shù)據(jù)幀除了幀頭信息以外有1 024 B的數(shù)據(jù),正好是1 KB,即可方便地觀察數(shù)據(jù)包是否出錯(cuò)和衡量整體數(shù)據(jù)傳輸完整性。

          千兆位以太網(wǎng)使用的時(shí)鐘是ML506板載的晶振分頻出的125 MHz時(shí)鐘,通過FPGA內(nèi)部的PLL合成。

          1.4.3 上位機(jī)數(shù)據(jù)捕獲

          因?yàn)镕PGA發(fā)送數(shù)據(jù)時(shí)僅使用了以太網(wǎng)的物理層,所以在主機(jī)抓包的時(shí)候僅需要關(guān)注數(shù)據(jù)包的MAC地址信息即可,不需要再對(duì)TCP/IP協(xié)議進(jìn)行分析和處理。

          因此本文采用winpcap(windows packet capture)開放代碼來實(shí)現(xiàn)MAC數(shù)據(jù)報(bào)文的采集功能。winpcap能夠?yàn)閣in32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力,因此獨(dú)立于TCP/IP協(xié)議的以太網(wǎng)數(shù)據(jù)包能夠被上層應(yīng)用程序捕獲和保存。

          由于一般的SATA硬盤的寫入速度在40 MB/s~80 MB/s,為了保證數(shù)據(jù)能夠完整寫入硬盤,應(yīng)盡可能使用高速硬盤。同時(shí),在編寫捕捉和存儲(chǔ)數(shù)據(jù)的軟件時(shí),應(yīng)該設(shè)立一定的緩沖區(qū)域。將網(wǎng)絡(luò)采集到的數(shù)據(jù)首先寫入內(nèi)存之中,待累積了一段數(shù)據(jù)之后將其一次性寫入硬盤,以減少CPU時(shí)間分配對(duì)寫入數(shù)據(jù)完整性的影響。

          2 實(shí)驗(yàn)結(jié)果

          通過SPI配置的不同采樣率對(duì)實(shí)際衛(wèi)星信號(hào)進(jìn)行采集,存儲(chǔ)下來的數(shù)據(jù)文件采用實(shí)驗(yàn)室自研的捕獲算法可以成功地捕獲出GPS L1、L2、L5信號(hào)。圖7是在采集的一段數(shù)據(jù)中L2、L5信號(hào)的捕獲結(jié)果。通過與下變頻前端采集的數(shù)據(jù)進(jìn)行對(duì)比分析可以發(fā)現(xiàn),兩個(gè)系統(tǒng)捕獲到的衛(wèi)星數(shù)量、編號(hào)、多普勒頻偏是一致的,但直接采樣數(shù)據(jù)的信噪比要略高。該實(shí)驗(yàn)結(jié)果如表2所示。這說明該系統(tǒng)采集的數(shù)據(jù)是正確有效的。

          本文介紹了使用射頻直接采樣技術(shù)的多頻GNSS數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)方法。本文首先提供了主要的硬件平臺(tái)結(jié)構(gòu)設(shè)計(jì)方案,并對(duì)于射頻前端的電路設(shè)計(jì)和高速數(shù)據(jù)采集這兩個(gè)關(guān)鍵技術(shù)進(jìn)行了詳細(xì)闡述。在此基礎(chǔ)上,本系統(tǒng)實(shí)現(xiàn)了多頻多系統(tǒng)衛(wèi)星導(dǎo)航信號(hào)的采集功能,并且與下變頻方法采集的數(shù)據(jù)進(jìn)行了對(duì)比。實(shí)驗(yàn)表明,該系統(tǒng)在性能和可擴(kuò)展性方面都要優(yōu)于傳統(tǒng)的下變頻采集系統(tǒng),具備很好的通用性。隨著技術(shù)的發(fā)展,更多更高性能的射頻放大濾波器件的價(jià)格不再昂貴,運(yùn)用直接采樣技術(shù)的多頻衛(wèi)星導(dǎo)航接收機(jī)將具備很大的發(fā)展空間。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();