《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 微波|射頻 > 設(shè)計(jì)應(yīng)用 > GPS中頻信號采集及分析系統(tǒng)設(shè)計(jì)
GPS中頻信號采集及分析系統(tǒng)設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第9期
陶 夢,李金城
北京交通大學(xué) 電子信息工程學(xué)院,北京100044
摘要: 設(shè)計(jì)了一種GPS中頻信號采集及分析系統(tǒng),系統(tǒng)利用FPGA將NJ1006射頻前端輸出的數(shù)字化GPS中頻信號進(jìn)行字節(jié)拼接,然后通過USB上傳到上位機(jī),實(shí)現(xiàn)了射頻前端與PC之間實(shí)時(shí)高速數(shù)據(jù)傳輸;研發(fā)的VC++數(shù)據(jù)處理程序?qū)⒉杉降腉PS信號進(jìn)行文本轉(zhuǎn)換和數(shù)據(jù)分析。實(shí)驗(yàn)證明該GPS中頻信號軟硬件采集系統(tǒng)不僅能采集GPS中頻信號,而且能數(shù)據(jù)分析,為GPS基帶處理算法的研究提供了可靠的原始數(shù)據(jù)。
中圖分類號: TN967.1
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.170792
中文引用格式: 陶夢,李金城. GPS中頻信號采集及分析系統(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)用,國內(nèi)外越來越多的企業(yè)和研究機(jī)構(gòu)深入研究導(dǎo)航、授時(shí)芯片,而要實(shí)現(xiàn)這些功能,都離不開對GPS衛(wèi)星信號的分析。因此,自主研發(fā)小型化、便攜式GPS中頻信號數(shù)據(jù)采集設(shè)備對導(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)星信號,通過位拼接可將實(shí)時(shí)采樣率下降至4 MHz左右。USB2.0的傳輸速度完全可以滿足,而從成本和普及率方面綜合考慮,使用USB2.0是一個(gè)較好的選擇。

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

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

    本論文的GPS中頻信號采集及分析系統(tǒng)的軟硬件總體架構(gòu)如圖1所示,由硬件和軟件兩部分組成。其中硬件部分包括GPS射頻接收芯片NJ1006、FPGA(cyclone EP1C12Q240C8N,具有20 060個(gè)邏輯單元和52個(gè)M4K存儲器)和 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信號,通過2 bit A/D轉(zhuǎn)換器采樣后,輸出采樣率為16.368 MHz,中頻頻率為4.092 MHz的2 bits數(shù)字信號(符號位SGN和大小位MAG)到FPGA。

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

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

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

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

    GPS衛(wèi)星信號是在16.368 MHz時(shí)鐘下利用射頻前端NJ1006接收得到的,由于該信號的位寬為2 bits,而FPGA與USB之間的數(shù)據(jù)總線位寬為8 bits,因此需通過“串并轉(zhuǎn)換”,將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。此時(shí),寫入數(shù)據(jù)速度降低到原來的四分之一(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í)會分出多個(gè)時(shí)間片給各應(yīng)用程序,即使只運(yùn)行本設(shè)計(jì)中的軟件程序,也無法保證穩(wěn)定的傳輸速度,將影響數(shù)據(jù)的實(shí)時(shí)傳輸性。為解決該問題,可通過增加存儲器以緩存數(shù)據(jù)。但由于外部增加RAM的成本較大,且前文中提到的數(shù)據(jù)流采集速率約為穩(wěn)定不變的4 MHz,而Windows平均的傳輸數(shù)據(jù)速率高于此采集速率,為了保證數(shù)據(jù)流的連續(xù)性,可利用FPGA 內(nèi)部52個(gè)M4K存儲器資源生成26 KB RAM作為緩沖器,把從位拼接得到的數(shù)據(jù)暫存在此RAM中,再通過USB2.0傳輸?shù)缴衔粰C(jī)PC中進(jìn)行存儲和分析。

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

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

wdz3-t2.gif

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

    數(shù)據(jù)傳送即通過FX2 的Slave FIFO模式,將從RAM中讀出的數(shù)據(jù)上傳至上位機(jī)PC并保存,其高速數(shù)據(jù)傳送通道接口圖如圖3所示[5]。在開始傳送數(shù)據(jù)前,需通過Slave FIFO的切換地址fifoaddr配置Slave FIFO為2′b10,使其能夠向FX2的Slave FIFO寫入數(shù)據(jù)。接收到數(shù)據(jù)傳送指令后,主程序?qū)崟r(shí)監(jiān)控Slave FIFO的空滿標(biāo)志empty、full。當(dāng)發(fā)現(xiàn)Slave FIFO未滿時(shí),通過控制Slave FIFO的寫時(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)對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ù)寫入I2C的存儲器,并分析第一字節(jié)數(shù)據(jù)[6]。當(dāng)?shù)谝蛔止?jié)為8′h0a時(shí),狀態(tài)機(jī)進(jìn)入CMD_PRO狀態(tài),進(jìn)行指令處理,向RAM發(fā)出寫指令開始數(shù)據(jù)緩存,然后進(jìn)入READ_RAM狀態(tài),在識別FX2中Slave FIFO的空滿標(biāo)志等信號后,讀出RAM緩存數(shù)據(jù)。關(guān)于RAM讀寫調(diào)用在上文中有詳細(xì)介紹,這里不再贅述。當(dāng)采集結(jié)束后,狀態(tài)機(jī)重新回到WAIT_CMD狀態(tài),等待下一次采集。

wdz3-t4.gif

    本設(shè)計(jì)中的采集結(jié)束機(jī)制分為兩種情況,一種是當(dāng)要向單個(gè)RAM寫入數(shù)據(jù)時(shí)系統(tǒng)正在讀出該RAM中的數(shù)據(jù),無法繼續(xù)進(jìn)行寫操作,導(dǎo)致實(shí)時(shí)傳輸數(shù)據(jù)中斷。此時(shí)上位機(jī)長時(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ī)定時(shí)間的等待還不能繼續(xù)上傳數(shù)據(jù),狀態(tài)機(jī)回到WAIT_CMD狀態(tài),此次采集結(jié)束,等待下一次采集。

3 軟件操作

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

wdz3-t5.gif

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

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

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

wdz3-t6.gif

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

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

wdz3-t7.gifwdz3-t8.gif

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

wdz3-t9.gif

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

wdz3-t10.gifwdz3-t11.gif

5 結(jié)論

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

參考文獻(xiàn)

[1] 曾慶喜,王慶,楊英杰,等.USB接口GPS中頻信號采樣器研究與實(shí)現(xiàn)[J].電子測量與儀器學(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中頻信號采集平臺設(shè)計(jì)[J].艦船電子工程,2009,9:63-66.

[6] 儲甜,顏錦奎.基于單片機(jī)的USB文件讀寫[J].電子測量技術(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ī)測試信號源的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京航空航天大學(xué),2012.

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



作者信息:

陶  夢,李金城

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

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