《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 微波|射頻 > 設(shè)計(jì)應(yīng)用 > GPS中頻信號(hào)采集及分析系統(tǒng)設(shè)計(jì)
GPS中頻信號(hào)采集及分析系統(tǒng)設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第9期
陶 夢(mèng),李金城
北京交通大學(xué) 電子信息工程學(xué)院,北京100044
摘要: 設(shè)計(jì)了一種GPS中頻信號(hào)采集及分析系統(tǒng),系統(tǒng)利用FPGA將NJ1006射頻前端輸出的數(shù)字化GPS中頻信號(hào)進(jìn)行字節(jié)拼接,然后通過(guò)USB上傳到上位機(jī),實(shí)現(xiàn)了射頻前端與PC之間實(shí)時(shí)高速數(shù)據(jù)傳輸;研發(fā)的VC++數(shù)據(jù)處理程序?qū)⒉杉降腉PS信號(hào)進(jìn)行文本轉(zhuǎn)換和數(shù)據(jù)分析。實(shí)驗(yàn)證明該GPS中頻信號(hào)軟硬件采集系統(tǒng)不僅能采集GPS中頻信號(hào),而且能數(shù)據(jù)分析,為GPS基帶處理算法的研究提供了可靠的原始數(shù)據(jù)。
中圖分類號(hào): TN967.1
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.170792
中文引用格式: 陶夢(mèng),李金城. GPS中頻信號(hào)采集及分析系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,43(9):34-38.
英文引用格式: Tao Meng,Li Jincheng. Design of a system for sampling and analysis of GPS IF signal[J].Application of Electronic Technique,2017,43(9):34-38.
Design of a system for sampling and analysis of GPS IF signal
Tao Meng,Li Jincheng
School of Electronic Information Engineering,Beijing Jiaotong University,Beijing 100044,China
Abstract: This paper designed a system for sampling and analysis of Global Position System Intermediate Frequency signal(GPS IF signal), which reconstructs the digitalized GPS IF signal by Field Programmable Gate Array(FPGA) and uploads these signal bytes to Personal Computer(PC) through USB to achieve real-time and high-speed data transmission. The VC++ data processing program firstly converts the received bytes to text data and then analyses them. Experimental results prove that proposed hardware and software co-design system can not only sample GPS IF signal, but also analyze the sampled data, and can be used to offer reliable data for research of GPS baseband processing algorithms.
Key words : GPS IF signal;USB;signal sample;data analysis

0 引言

    隨著GPS全球衛(wèi)星定位系統(tǒng)在提供定位信息和高精度時(shí)間信息上的廣泛應(yīng)用,國(guó)內(nèi)外越來(lái)越多的企業(yè)和研究機(jī)構(gòu)深入研究導(dǎo)航、授時(shí)芯片,而要實(shí)現(xiàn)這些功能,都離不開(kāi)對(duì)GPS衛(wèi)星信號(hào)的分析。因此,自主研發(fā)小型化、便攜式GPS中頻信號(hào)數(shù)據(jù)采集設(shè)備對(duì)導(dǎo)航算法研究及芯片設(shè)計(jì)非常重要[1]。

    USB接口數(shù)據(jù)傳輸速率高、傳輸模式靈活,支持低速(1.5 Mb/s)、全速(12 Mb/s)和高速(480 Mb/s)3種傳輸速度以及中斷傳輸、控制傳輸、同步傳輸和塊傳輸4種傳輸模式,目前在PC領(lǐng)域中USB接口已廣泛應(yīng)用[2]。高集成度的GPS接收機(jī)射頻前端芯片NJ1006可采集2 bit格式的GPS衛(wèi)星信號(hào),通過(guò)位拼接可將實(shí)時(shí)采樣率下降至4 MHz左右。USB2.0的傳輸速度完全可以滿足,而從成本和普及率方面綜合考慮,使用USB2.0是一個(gè)較好的選擇。

    基于上述分析,本論文設(shè)計(jì)了一種GPS中頻信號(hào)采集及分析系統(tǒng)。系統(tǒng)使用FPGA對(duì)NJ1006的數(shù)字中頻信號(hào)進(jìn)行字節(jié)拼接及緩存,通過(guò)USB接口芯片(FX2 68013)上傳到PC。在PC端設(shè)計(jì)了專用的VC++程序,用于PC端的數(shù)據(jù)接收、格式轉(zhuǎn)換及分析。

1 系統(tǒng)軟硬件總體架構(gòu)

    本論文的GPS中頻信號(hào)采集及分析系統(tǒng)的軟硬件總體架構(gòu)如圖1所示,由硬件和軟件兩部分組成。其中硬件部分包括GPS射頻接收芯片NJ1006、FPGA(cyclone EP1C12Q240C8N,具有20 060個(gè)邏輯單元和52個(gè)M4K存儲(chǔ)器)和 USB2.0接口芯片(FX2-68013);軟件部分包括數(shù)據(jù)接收程序、格式轉(zhuǎn)換程序、數(shù)據(jù)分析程序和主控程序組成。

wdz3-t1.gif

    NJ1006是一個(gè)高集成度的GPS接收機(jī)射頻前端IC,其集成了LNA和本機(jī)振蕩器的諧振回路,減少了外部元器件數(shù)量和PCB的面積。NJ1006下變頻1 575.42 MHz GPS L1信號(hào),通過(guò)2 bit A/D轉(zhuǎn)換器采樣后,輸出采樣率為16.368 MHz,中頻頻率為4.092 MHz的2 bits數(shù)字信號(hào)(符號(hào)位SGN和大小位MAG)到FPGA。

    FX2-68013是由Cypress半導(dǎo)體公司所推出的USB2.0芯片,芯片將USB外圍接口所需要的各種功能包裝成一精簡(jiǎn)的集成電路,其內(nèi)部的8051微處理器方便對(duì)芯片的控制與配置[3]。通過(guò)對(duì)芯片內(nèi)部8051編程,使USB2.0芯片配置在Slave FIFO模式下工作,異步方式傳輸數(shù)據(jù),以支持圖1中的高速數(shù)據(jù)通道;由于該USB2.0芯片具有I2C接口,支持對(duì)外部I2C存儲(chǔ)器的讀寫(xiě),為了不影響高速數(shù)據(jù)傳輸,本論文用FPGA模擬了一個(gè)I2C存儲(chǔ)器,上位機(jī)通過(guò)對(duì)I2C存儲(chǔ)器的讀寫(xiě)實(shí)現(xiàn)了對(duì)FPGA工作狀態(tài)的控制[4]。

    FPGA接收NJ1006的數(shù)字中頻信號(hào),進(jìn)行位拼接和緩存,向USB2.0芯片發(fā)送數(shù)據(jù),并通過(guò)USB2.0接口將采集的數(shù)據(jù)上傳到PC。在PC端接收數(shù)據(jù),并進(jìn)行格式轉(zhuǎn)換和數(shù)據(jù)分析。分析的主要任務(wù)是對(duì)GPS中頻信號(hào)進(jìn)行C/A碼相位和多普勒頻率的二維相關(guān)值計(jì)算,并由Matlab進(jìn)行三維立體顯示。

2 FPGA邏輯設(shè)計(jì)

2.1 數(shù)據(jù)拼接

    GPS衛(wèi)星信號(hào)是在16.368 MHz時(shí)鐘下利用射頻前端NJ1006接收得到的,由于該信號(hào)的位寬為2 bits,而FPGA與USB之間的數(shù)據(jù)總線位寬為8 bits,因此需通過(guò)“串并轉(zhuǎn)換”,將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。此時(shí),寫(xiě)入數(shù)據(jù)速度降低到原來(lái)的四分之一(4.092 MHz),將大大降低數(shù)據(jù)上傳所需的時(shí)序要求。

2.2 數(shù)據(jù)緩存

    USB2.0協(xié)議擁有較快的數(shù)據(jù)傳輸速率,但本設(shè)計(jì)使用Windows系統(tǒng)PC作為上位機(jī),屬于多任務(wù)系統(tǒng),運(yùn)行時(shí)會(huì)分出多個(gè)時(shí)間片給各應(yīng)用程序,即使只運(yùn)行本設(shè)計(jì)中的軟件程序,也無(wú)法保證穩(wěn)定的傳輸速度,將影響數(shù)據(jù)的實(shí)時(shí)傳輸性。為解決該問(wèn)題,可通過(guò)增加存儲(chǔ)器以緩存數(shù)據(jù)。但由于外部增加RAM的成本較大,且前文中提到的數(shù)據(jù)流采集速率約為穩(wěn)定不變的4 MHz,而Windows平均的傳輸數(shù)據(jù)速率高于此采集速率,為了保證數(shù)據(jù)流的連續(xù)性,可利用FPGA 內(nèi)部52個(gè)M4K存儲(chǔ)器資源生成26 KB RAM作為緩沖器,把從位拼接得到的數(shù)據(jù)暫存在此RAM中,再通過(guò)USB2.0傳輸?shù)缴衔粰C(jī)PC中進(jìn)行存儲(chǔ)和分析。

    本系統(tǒng)中把這26 KB緩存空間分成13個(gè)2 KB RAM,將從位拼接得到的數(shù)據(jù)依次寫(xiě)進(jìn)RAM中,同時(shí)將寫(xiě)滿2 KB RAM的緩存數(shù)據(jù)依次讀出傳送至FX2,之后FX2一次性將2 KB數(shù)據(jù)通過(guò)USB2.0傳輸至上位機(jī),由此對(duì)RAM0至RAM12這13個(gè)存儲(chǔ)器進(jìn)行循環(huán)操作,完成數(shù)據(jù)的讀寫(xiě)操作。該方法能夠最大限度地利用資源,保證了數(shù)據(jù)流的實(shí)時(shí)不間斷。

    緩存數(shù)據(jù)寫(xiě)入RAM的過(guò)程如圖2(a)所示。系統(tǒng)在接收到RAM的寫(xiě)指令后,首先向RAM0寫(xiě)入采集到的數(shù)據(jù)。當(dāng)RAM0寫(xiě)滿后,若RAM1處于忙狀態(tài)(即Rd_en[1]=1,系統(tǒng)從RAM1中讀出數(shù)據(jù)),則終止寫(xiě)入,系統(tǒng)回歸初始狀態(tài),等待寫(xiě)指令,否則無(wú)間斷地向RAM1中寫(xiě)入數(shù)據(jù)。由此依次對(duì)RAM0至RAM12這13個(gè)存儲(chǔ)器進(jìn)行循環(huán)操作,完成數(shù)據(jù)的寫(xiě)入。該RAM寫(xiě)操作機(jī)制能夠保證數(shù)據(jù)流的實(shí)時(shí)、不間斷,符合數(shù)據(jù)采集要求。而緩存數(shù)據(jù)的讀出過(guò)程如圖2(b)所示。系統(tǒng)在接收到RAM的讀指令后,首先從RAM0中讀出數(shù)據(jù),將其傳送至FX2的Slave FIFO。完成RAM0的讀操作后,若RAM1處于空閑狀態(tài)(即Wr_en [1]=0,系統(tǒng)未向RAM1寫(xiě)入數(shù)據(jù)),則無(wú)間斷地讀取RAM1中的緩存數(shù)據(jù),否則等待RAM1完成寫(xiě)操作之后再繼續(xù)進(jìn)行讀操作。對(duì)RAM0至RAM12這13個(gè)存儲(chǔ)器進(jìn)行循環(huán)讀操作,直到采集結(jié)束。

wdz3-t2.gif

2.3 數(shù)據(jù)傳送

    數(shù)據(jù)傳送即通過(guò)FX2 的Slave FIFO模式,將從RAM中讀出的數(shù)據(jù)上傳至上位機(jī)PC并保存,其高速數(shù)據(jù)傳送通道接口圖如圖3所示[5]。在開(kāi)始傳送數(shù)據(jù)前,需通過(guò)Slave FIFO的切換地址fifoaddr配置Slave FIFO為2′b10,使其能夠向FX2的Slave FIFO寫(xiě)入數(shù)據(jù)。接收到數(shù)據(jù)傳送指令后,主程序?qū)崟r(shí)監(jiān)控Slave FIFO的空滿標(biāo)志empty、full。當(dāng)發(fā)現(xiàn)Slave FIFO未滿時(shí),通過(guò)控制Slave FIFO的寫(xiě)時(shí)鐘slwr,將從RAM讀出的數(shù)據(jù)傳送至Slave FIFO的雙向數(shù)據(jù)端口fd,構(gòu)成了高速數(shù)據(jù)通道,完成數(shù)據(jù)上傳。

wdz3-t3.gif

2.4 FPGA狀態(tài)轉(zhuǎn)換

    FPGA主狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖如圖4所示,整個(gè)狀態(tài)機(jī)工作在72 MHz時(shí)鐘下,INIT狀態(tài)對(duì)FX2各接口數(shù)據(jù)進(jìn)行初始化,之后進(jìn)入WAIT_CMD狀態(tài),等待上位機(jī)發(fā)指令。當(dāng)上位機(jī)發(fā)出采集指令后,由USB向FX2內(nèi)部8051芯片下傳48 B數(shù)據(jù)發(fā)送指令,再由8051將此48 B數(shù)據(jù)寫(xiě)入I2C的存儲(chǔ)器,并分析第一字節(jié)數(shù)據(jù)[6]。當(dāng)?shù)谝蛔止?jié)為8′h0a時(shí),狀態(tài)機(jī)進(jìn)入CMD_PRO狀態(tài),進(jìn)行指令處理,向RAM發(fā)出寫(xiě)指令開(kāi)始數(shù)據(jù)緩存,然后進(jìn)入READ_RAM狀態(tài),在識(shí)別FX2中Slave FIFO的空滿標(biāo)志等信號(hào)后,讀出RAM緩存數(shù)據(jù)。關(guān)于RAM讀寫(xiě)調(diào)用在上文中有詳細(xì)介紹,這里不再贅述。當(dāng)采集結(jié)束后,狀態(tài)機(jī)重新回到WAIT_CMD狀態(tài),等待下一次采集。

wdz3-t4.gif

    本設(shè)計(jì)中的采集結(jié)束機(jī)制分為兩種情況,一種是當(dāng)要向單個(gè)RAM寫(xiě)入數(shù)據(jù)時(shí)系統(tǒng)正在讀出該RAM中的數(shù)據(jù),無(wú)法繼續(xù)進(jìn)行寫(xiě)操作,導(dǎo)致實(shí)時(shí)傳輸數(shù)據(jù)中斷。此時(shí)上位機(jī)長(zhǎng)時(shí)間接收不到數(shù)據(jù),將自動(dòng)終止接收數(shù)據(jù),這是由數(shù)據(jù)實(shí)時(shí)傳輸數(shù)據(jù)速率大于上位機(jī)接收數(shù)據(jù)速率導(dǎo)致的,此時(shí)軟件將通知用戶此次數(shù)據(jù)不可靠;另一種是上位機(jī)接收到的數(shù)據(jù)已經(jīng)滿足采集數(shù)據(jù)的大小要求,此時(shí)上位機(jī)主動(dòng)停止接收數(shù)據(jù),F(xiàn)X2 slave FIFO一直處于滿狀態(tài),F(xiàn)PGA超過(guò)規(guī)定時(shí)間的等待還不能繼續(xù)上傳數(shù)據(jù),狀態(tài)機(jī)回到WAIT_CMD狀態(tài),此次采集結(jié)束,等待下一次采集。

3 軟件操作

    上位機(jī)程序使用C語(yǔ)言的MFC編寫(xiě),操作界面如圖5所示。USB Connection鍵可對(duì)FX2中的8051芯片進(jìn)行配置,實(shí)現(xiàn)USB和FPGA數(shù)據(jù)通道連接。點(diǎn)擊圖中的Sample鍵,發(fā)出采集指令后,上位機(jī)開(kāi)始調(diào)用FX2專用的批量端點(diǎn)上傳函數(shù),反復(fù)循環(huán)128次來(lái)接收256 KB數(shù)據(jù),等待接收數(shù)據(jù),再通過(guò)USB傳輸指令,使FPGA與上位機(jī)協(xié)同工作,采集數(shù)據(jù)[7]。

wdz3-t5.gif

    數(shù)據(jù)采集結(jié)束后,可通過(guò)軟件操作界面的TXT Conversion窗口將數(shù)據(jù)格式轉(zhuǎn)換為ASCII碼或?qū)?yīng)的0-1二進(jìn)制序列,方便用戶使用。

    通過(guò)圖5中的SV-Searching Paramenters窗口可設(shè)置參數(shù),進(jìn)行數(shù)據(jù)分析。源文件為當(dāng)前數(shù)據(jù)采集轉(zhuǎn)換后的0-1二進(jìn)制序列文件,通過(guò)設(shè)置衛(wèi)星號(hào)SV num(1至32號(hào)衛(wèi)星)、毫秒積分ms num(1 ms至10 ms)、量化位LO bits(1 bits至10 bits)和多普勒頻率范圍LO Frequency、CA碼相位C/A Phase以及相對(duì)應(yīng)的頻率步長(zhǎng)LO Step、C/A步長(zhǎng)C/A Step等參數(shù),點(diǎn)擊Analysis鍵,對(duì)其進(jìn)行CA碼和多普勒頻率的二維搜索。通過(guò)時(shí)域串行捕獲算法計(jì)算得到三維數(shù)據(jù),并利用Matlab的surf函數(shù)仿真出三維立體圖,從而分析信號(hào)的可靠性[8]。

  時(shí)域串行捕獲算法如圖6所示,即本地載波生成器在預(yù)先設(shè)定的多普勒頻率范圍內(nèi)選擇一個(gè)載波頻率,產(chǎn)生兩路相位差 90°的本地載波cos和sin。將輸入信號(hào)與這兩路本地載波混頻,得到同相分量I和正交分量Q。然后將I和Q兩路分量分別與本地產(chǎn)生的C/A碼序列進(jìn)行相關(guān)運(yùn)算,并通過(guò)絕對(duì)值求和Absolute或平方求和square運(yùn)算得到相關(guān)值[9-10]。

wdz3-t6.gif

4 GPS中頻信號(hào)采集及分析結(jié)果

    本文通過(guò)圖形操作界面對(duì)衛(wèi)星信號(hào)進(jìn)行采集、轉(zhuǎn)換和分析,實(shí)現(xiàn)了自主研發(fā)小型化、便攜式GPS中頻信號(hào)數(shù)據(jù)采集設(shè)備。GPS衛(wèi)星信號(hào)數(shù)據(jù)于2017年1月13日下午1點(diǎn)20分在北京交通大學(xué)第九教學(xué)樓采集,此時(shí)的18號(hào)星1 ms平方和運(yùn)算對(duì)應(yīng)相關(guān)值如圖7所示。從圖中可明顯觀察到,該衛(wèi)星的頻率在4.094 5 MHz附近,碼相位在16 000點(diǎn)附近出現(xiàn)明顯的相關(guān)峰。圖8則是18號(hào)星進(jìn)行絕對(duì)值求和對(duì)應(yīng)的相關(guān)圖,對(duì)比圖7和圖8可以看出,在信號(hào)明顯的情況下兩種運(yùn)算都能找到相關(guān)峰,但絕對(duì)值求和得到的相關(guān)值基數(shù)更小,所需的硬件資源更少,相比之下,平方求和其相關(guān)峰則更加明顯。

wdz3-t7.gifwdz3-t8.gif

    在全搜索的基礎(chǔ)上,找到相關(guān)峰后還可對(duì)其進(jìn)行更精確的搜索。在圖7 18號(hào)星全搜索的基礎(chǔ)上,將頻率搜索范圍縮小到4.092~4.097 MHz,并縮小頻率步長(zhǎng)為250、CA碼步長(zhǎng)為2,對(duì)其相關(guān)峰進(jìn)行放大分析,其結(jié)果如圖9所示,該方法便于分析算法的可靠性以及信號(hào)正確性。

wdz3-t9.gif

    軟件還支持多毫秒疊加,設(shè)置多普勒搜索步長(zhǎng)、頻率和CA碼采樣點(diǎn)數(shù)等。由于當(dāng)前某顆衛(wèi)星的信號(hào)比較弱,1 ms相關(guān)值累加有可能不能準(zhǔn)確地找出相關(guān)峰,此時(shí)可通過(guò)多毫秒累積的方法得到相關(guān)峰。圖10為27號(hào)星1 ms的相關(guān)值,從圖中不能明顯地觀察到相關(guān)峰,但通過(guò)圖11中的2 ms運(yùn)算可以看到,在頻率為4.092 MHz、碼相位為8 000處有明顯的相關(guān)峰。

wdz3-t10.gifwdz3-t11.gif

5 結(jié)論

    本文針對(duì)GPS中頻信號(hào)的采樣、轉(zhuǎn)換、分析提出了相應(yīng)的解決方案。實(shí)驗(yàn)證明,基于USB2.0的數(shù)據(jù)傳輸方案達(dá)到了對(duì)GPS中頻信號(hào)高速準(zhǔn)確的采集目標(biāo)?;贕PS的捕獲算法,通過(guò)C語(yǔ)言實(shí)現(xiàn)時(shí)域串行捕獲算法檢測(cè),驗(yàn)證了數(shù)據(jù)的可靠性,為之后的GPS算法研究奠定了堅(jiān)實(shí)的基礎(chǔ)。

參考文獻(xiàn)

[1] 曾慶喜,王慶,楊英杰,等.USB接口GPS中頻信號(hào)采樣器研究與實(shí)現(xiàn)[J].電子測(cè)量與儀器學(xué)報(bào),2012(10):883-888.

[2] 唐磊.基于FPGA的USB、Flash控制器設(shè)計(jì)[D].北京:北京交通大學(xué),2010.

[3] 吳瑤.USB2.0總線控制芯片F(xiàn)X2結(jié)構(gòu)原理及應(yīng)用研究[D].北京:北京交通大學(xué),2010.

[4] 扈嘯,張玘,張連超.USB2.0控制器CY7C68013特點(diǎn)與應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(10).

[5] 胡濱,王慶,嚴(yán)偉.基于USB和FPGA的GPS中頻信號(hào)采集平臺(tái)設(shè)計(jì)[J].艦船電子工程,2009,9:63-66.

[6] 儲(chǔ)甜,顏錦奎.基于單片機(jī)的USB文件讀寫(xiě)[J].電子測(cè)量技術(shù).2015(8).

[7] 方可燕.Visual C++ 6.0實(shí)戰(zhàn)與精通[M].清華大學(xué)出版社,2000.

[8] 王惠南.GPS導(dǎo)航原理與應(yīng)用[M].北京:科學(xué)出版社,2003.

[9] 葉航.GPS接收機(jī)測(cè)試信號(hào)源的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京航空航天大學(xué),2012.

[10] 劉圣忠.基于GPS中頻數(shù)據(jù)的軟件接收機(jī)研究與實(shí)現(xiàn)[D].南京:南京航空航天大學(xué),2007.



作者信息:

陶  夢(mèng),李金城

(北京交通大學(xué) 電子信息工程學(xué)院,北京100044)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。