国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA和USB的GNSS中頻信號采集器設(shè)計(jì)?

2014-08-02 11:49:31丁繼成
遙測遙控 2014年2期
關(guān)鍵詞:固件采集器上位

趙 琳, 王 野, 丁繼成

(哈爾濱工程大學(xué)自動化學(xué)院 哈爾濱 150001)

基于FPGA和USB的GNSS中頻信號采集器設(shè)計(jì)?

趙 琳, 王 野, 丁繼成

(哈爾濱工程大學(xué)自動化學(xué)院 哈爾濱 150001)

以FPGA+DSP經(jīng)典高速數(shù)據(jù)采集平臺為核心,應(yīng)用MAX2769射頻芯片,實(shí)現(xiàn)了通用GNSS中頻數(shù)據(jù)采集器的設(shè)計(jì)。采集器可以接收各GNSS系統(tǒng)衛(wèi)星的中頻信號并轉(zhuǎn)換成數(shù)字中頻數(shù)據(jù),通過編寫USB設(shè)備控制程序和上位機(jī)人機(jī)交互程序,實(shí)現(xiàn)中頻數(shù)據(jù)的高速采集、傳輸和保存,并應(yīng)用接收到的數(shù)據(jù)完成頻譜分析和信號捕獲。實(shí)驗(yàn)結(jié)果表明,研制的GNSS中頻數(shù)據(jù)采集器能夠正確、完整地保存數(shù)據(jù),并且數(shù)據(jù)滿足定位要求。

GNSS; 中頻數(shù)據(jù); FPGA; USB

引言

隨著各種全球?qū)Ш叫l(wèi)星系統(tǒng)GNSS(Global Navigation Satellite System)的建成與完善,衛(wèi)星導(dǎo)航定位接收機(jī)的研究與應(yīng)用日漸廣泛。當(dāng)前GNSS接收機(jī)已經(jīng)融合了軟件無線電的概念,逐漸由架構(gòu)固定的硬件接收機(jī)過渡到了軟件GNSS接收機(jī)研究階段,它以多系統(tǒng)組合導(dǎo)航為目標(biāo),是目前研究最多、最有可能先與其他系統(tǒng)集成實(shí)現(xiàn)GNSS組合導(dǎo)航的接收機(jī)平臺[1]。

GNSS中頻信號采集器接收GNSS高頻信號并將其轉(zhuǎn)換為中頻數(shù)據(jù),它是GNSS軟件接收機(jī)研制過程中的關(guān)鍵環(huán)節(jié)[1]。目前,市場上有Accord公司的GPS(Global Positioning System)L1和L2信號的中頻信號采樣器,北京東方聯(lián)星科技有限公司的GPS L1信號的中頻信號采樣器。這些產(chǎn)品價(jià)格昂貴,且內(nèi)部結(jié)構(gòu)不公開,使得軟件接收機(jī)的開發(fā)受到了很大的限制?;谠摤F(xiàn)狀,本文以FPGA+DSP經(jīng)典高速數(shù)據(jù)采集平臺為核心,應(yīng)用MAX2769射頻芯片,設(shè)計(jì)了一種多系統(tǒng)通用GNSS中頻信號采集器[2]。

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

GNSS中頻信號采集器的硬件分為三個部分:GNSS射頻前端,F(xiàn)PGA控制與數(shù)據(jù)轉(zhuǎn)存模塊,USB (Universal Serial Bus)數(shù)據(jù)傳輸模塊。其系統(tǒng)的硬件架構(gòu)如圖1所示。

1.1 GNSS射頻前端

射頻前端采用美信半導(dǎo)體公司生產(chǎn)的MAX2769芯片,此芯片適用于GPS/GLONASS/Galileo接收機(jī),同時(shí)也可以通過配置寄存器實(shí)現(xiàn)北斗導(dǎo)航衛(wèi)星信號的接收,該芯片不僅可以實(shí)現(xiàn)單頻衛(wèi)星導(dǎo)航接收機(jī)功能,也可實(shí)現(xiàn)多體制衛(wèi)星導(dǎo)航系統(tǒng)的組合。

圖1 系統(tǒng)硬件架構(gòu)圖

芯片內(nèi)部集成設(shè)計(jì)了包括雙輸入低噪聲放大器、混頻器、抑制鏡像濾波器、可N分頻的頻率合成器、增益控制放大器、壓控振蕩器、晶體振蕩器以及多位ADC的完整接收機(jī)功能單元,總噪聲系數(shù)低達(dá)1.4dB。片內(nèi)集成的Σ-ΔN分頻合成器方便中頻編程實(shí)現(xiàn),精度可達(dá)±40Hz,有利于與系統(tǒng)全局時(shí)鐘頻率進(jìn)行有效的配合工作。芯片內(nèi)部獨(dú)特設(shè)計(jì)的ADC輸出既可以為I、Q支路輸出一個或兩個量化位,又能為I支路輸出三個量化位。它支持CMOS和有限差分邏輯電平兩種輸出數(shù)據(jù)格式。

1.2 FPGA控制與數(shù)據(jù)轉(zhuǎn)存模塊

FPGA選擇Altera公司主打的Cyclone II市場化產(chǎn)品EP2C70F672C6 FPGA芯片,實(shí)現(xiàn)MAX2769射頻前端的控制與中頻數(shù)據(jù)信號的接收,并控制CY7C68013A USB芯片,構(gòu)成主從FIFO結(jié)構(gòu),實(shí)現(xiàn)數(shù)據(jù)的高速傳輸。芯片內(nèi)部集成了68416個邏輯資源,能夠設(shè)計(jì)實(shí)現(xiàn)大量功能單元,主要有內(nèi)嵌式18bit×18bit乘法器、可擴(kuò)展專用存儲器外部接口電路、4Kbit內(nèi)置存儲模塊、鎖相環(huán)模塊和高速差分I/O線,資源相當(dāng)豐富。FPGA部分整體的設(shè)計(jì)方案如圖2所示[3]。

圖2中與射頻相連部分,PGM為工作狀態(tài)選擇:高電平時(shí)為高低電平配置工作狀態(tài),低電平時(shí)為串行配置工作狀態(tài)。SCLK(串行時(shí)鐘)、CS(芯片選擇)和SDATA(串行數(shù)據(jù))為射頻工作模式配置接口,既可以通過電平實(shí)現(xiàn)8種預(yù)配置工作,也可以經(jīng)SPI協(xié)議實(shí)現(xiàn)射頻內(nèi)寄存器的串行配置。

圖2中與USB相連部分,IFCLK為48MHz接口時(shí)鐘,由芯片內(nèi)部產(chǎn)生;CT2FLAG(A-C)為FIFO標(biāo)志位,反映FIFO當(dāng)前的空滿狀態(tài);CS為從屬FIFO片選信號;FD[15:0]為16位數(shù)據(jù)總線;FIFOADR[1:0]用于選擇內(nèi)部4個緩沖區(qū)之一(EP2,EP4,EP6,EP8);SLOE是數(shù)據(jù)總線FD的輸出使能信號;PKTEND用于末尾數(shù)據(jù)處理,被激活時(shí),表示向USB提交IN包,不考慮包的長度。

圖2 FPGA硬件連接圖

1.3 USB部分

本文選用Cypress公司EZ-USB FX2LP系列芯片中的CY7C68013A,它完全支持USB2.0標(biāo)準(zhǔn),集成度高,且其具有以下結(jié)構(gòu)特點(diǎn):①具有1個智能串行接口引擎和1個8051處理器,在執(zhí)行所有基本的USB功能的同時(shí),保證了持續(xù)高速有效的數(shù)據(jù)傳輸;②4KB大容量FIFO數(shù)據(jù)緩沖區(qū),有效支持USB接口的從屬FIFO和GPIF(General Programmable Interface)兩種工作模式;③固件軟配置功能,可將固件程序由主機(jī)控制,方便在不修改硬件的情況下修改固件[4]。USB接口電路設(shè)計(jì)見圖2。

2 系統(tǒng)軟件設(shè)計(jì)

采集器系統(tǒng)的軟件包括FPGA控制射頻前端和USB、數(shù)據(jù)串并轉(zhuǎn)換的Verilog程序、USB內(nèi)部固件程序和上位機(jī)程序三個部分,系統(tǒng)的整體軟件結(jié)構(gòu)如圖3所示。

圖3 衛(wèi)星信號接收系統(tǒng)數(shù)據(jù)接收方案

2.1 FPGA程序設(shè)計(jì)

首先,F(xiàn)PGA對射頻前端進(jìn)行配置。然后,F(xiàn)PGA將從射頻前端接收的中頻信號由2位串行數(shù)據(jù)轉(zhuǎn)換成8位并行數(shù)據(jù)并送入緩沖,同時(shí)控制USB接口芯片工作,將該并行數(shù)據(jù)傳送到USB接口芯片的端點(diǎn)FIFO中,供上位機(jī)完成端點(diǎn)FIFO中數(shù)據(jù)的接收、存儲和處理。

FPGA程序開發(fā)環(huán)境為QUARTUSII,按照自頂向下的設(shè)計(jì)方式,先根據(jù)整體設(shè)計(jì)方案定義頂層功能塊,分析構(gòu)成頂層模塊的必要的子模塊,即將系統(tǒng)分為MAX2769射頻模塊、數(shù)據(jù)轉(zhuǎn)存模塊和USB數(shù)據(jù)傳輸控制模塊三個子模塊;然后進(jìn)一步對各子模塊進(jìn)行分解,得到無法進(jìn)一步分解的數(shù)據(jù)發(fā)生模塊、串行外設(shè)接口SPI(Serial Peripheral Interface)模塊、數(shù)據(jù)轉(zhuǎn)存模塊、PLL模塊和USB控制模塊五個底層功能塊,分塊之后的結(jié)構(gòu)如圖4所示。分塊完成后采用Verilog HDL語言編寫底層功能塊,將底層功能塊生成原理圖,最后整個程序采用原理圖方法進(jìn)行綜合設(shè)計(jì)。

圖4 自頂向下分塊結(jié)構(gòu)圖

FPGA的軟件工作:①首先通過SCLK、CS和SDATA三個接口對射頻前端進(jìn)行配置,可以應(yīng)用電平配置實(shí)現(xiàn)GPS/GLONASS/Galileo衛(wèi)星信號的接收或經(jīng)過SPI協(xié)議串行配置接收北斗衛(wèi)星信號,完成多種GNSS系統(tǒng)的中頻數(shù)據(jù)接收。MAX2769的串行配置時(shí)序如圖5所示。②將接收到的2位串行數(shù)據(jù)經(jīng)緩存轉(zhuǎn)換成16位并行數(shù)據(jù)傳輸?shù)経SB的16位并行數(shù)據(jù)總線,實(shí)現(xiàn)輸入輸出數(shù)據(jù)速度的匹配。③USB的控制同樣由FPGA完成,采用Slave FIFO從機(jī)方式實(shí)現(xiàn)FPGA對USB芯片的控制。異步Slave FIFO寫FPGA控制進(jìn)程如下:

IDLE:當(dāng)寫事件發(fā)生時(shí)轉(zhuǎn)到狀態(tài)1。

狀態(tài)1:指向端點(diǎn)2,激活FIFO ADR[1:O],轉(zhuǎn)向狀態(tài)2。

狀態(tài)2:如果FIFO滿標(biāo)志為“假”(FIFO不滿),則轉(zhuǎn)向狀態(tài)3,否則停留在狀態(tài)2。

狀態(tài)3:傳送總線驅(qū)動數(shù)據(jù)。為一個IFCLK激活SLWR,轉(zhuǎn)向狀態(tài)4。

狀態(tài)4:如果有更多的數(shù)據(jù)要寫,則轉(zhuǎn)向狀態(tài)2,否則轉(zhuǎn)向IDLE。

USB的異步寫狀態(tài)機(jī)如圖6所示。

2.2 USB固件程序

圖5 MAX2769串行配置的時(shí)序圖

圖6 狀態(tài)機(jī)設(shè)計(jì):異步FIFO寫

固件程序主要是指配置接收機(jī)數(shù)據(jù)傳輸系統(tǒng)的微控制器的程序。對于開發(fā)的不同固件程序,接收機(jī)數(shù)據(jù)傳輸系統(tǒng)的傳輸方式、傳輸帶寬甚至對應(yīng)的上位機(jī)應(yīng)用程序都可以不同。固件程序本身只負(fù)責(zé)配置硬件的工作方式,例如設(shè)備描述符信息、設(shè)備類別、接口配置、對于特定終端的響應(yīng)函數(shù)等等。上位機(jī)在設(shè)備枚舉時(shí)獲取設(shè)備描述符,進(jìn)而獲得設(shè)備的配置信息和相關(guān)的驅(qū)動信息。用戶可以通過修改固件描述符來改變設(shè)備特性[5]。

Cypress公司為FX2系列產(chǎn)品提供了固件框架和固件庫,它們是由Keil C51 C編寫的。固件框架和固件庫提供了能夠完成USB設(shè)備基本功能需求的參數(shù)和函數(shù),如宏、框架函數(shù)、常量、USB數(shù)據(jù)結(jié)構(gòu)等等,主要包含設(shè)備初始化、處理標(biāo)準(zhǔn)的USB設(shè)備請求以及USB掛起時(shí)的電源管理等基本功能,用戶利用該框架提供的結(jié)構(gòu)函數(shù),可以完善各函數(shù)的功能,開發(fā)出適合于設(shè)計(jì)需求專用的USB設(shè)備。

本設(shè)計(jì)中,采用FPGA作為外部主控制器與USB芯片進(jìn)行通信,并工作于從屬FIFO模式。選用高速傳輸端點(diǎn)EP6,USB芯片在復(fù)位后,它的I/O引腳配置在“端口”模式下,而不是Slave FIFO模式。為將引腳配置為Slave FIFO模式,IFCONFIG寄存器的IFCFG[1:0]必須設(shè)置為11,因?yàn)閁SB芯片的FIFO工作在異步方式下,ASYNC位必須設(shè)置為1。選擇EP6與FD總線連接,在對該端點(diǎn)的設(shè)置上選擇塊傳輸,4倍緩存,端點(diǎn)緩沖區(qū)大小為512字節(jié),所以EP6CFG設(shè)置為0xe0,端點(diǎn)FIFO每512字節(jié)會自動打包上傳,那么EP6FIFOCFG設(shè)置為0x0d。為了對數(shù)據(jù)傳輸進(jìn)行控制,需要對該端點(diǎn)的標(biāo)志位進(jìn)行設(shè)置,通過FPGA向EP6的端點(diǎn)FIFO寫數(shù)據(jù),F(xiàn)LAGB變低電平就表示FIFO為滿,此時(shí)不能再往里面寫數(shù)據(jù)了[6]。

數(shù)據(jù)包的大小為512字節(jié),需要設(shè)置EP6AUTOINLENH=0x02,EP6AUTOINLENL=0x00。通過上位機(jī)軟件可以讀取USB端點(diǎn)FIFO數(shù)據(jù),然后保存到硬盤文件中,供后續(xù)處理。

2.3 上位機(jī)程序

應(yīng)用程序不僅要能實(shí)現(xiàn)系統(tǒng)的既定功能,還要簡潔和美觀。本論文中的上位機(jī)應(yīng)用程序采用VC6.0軟件,基于MFC界面設(shè)計(jì),調(diào)用Cypress公司的CyAPI.lib封裝庫編寫的基于對話框的單線程程序。上位機(jī)主要是完成數(shù)據(jù)的傳輸以及校驗(yàn),確保數(shù)據(jù)傳輸過程正確無誤,同時(shí)還要實(shí)現(xiàn)傳輸?shù)募磿r(shí)性、靈活性以及簡單明了的界面信息顯示。目前上位機(jī)可以即時(shí)傳輸數(shù)據(jù),通過設(shè)置實(shí)現(xiàn)任意時(shí)間長度的數(shù)據(jù)傳輸。它還具有校驗(yàn)功能,如果數(shù)據(jù)傳輸過程出現(xiàn)了錯誤,則停止傳輸并發(fā)出警告。同時(shí),它還可以實(shí)現(xiàn)USB設(shè)備的設(shè)備描述信息以及傳輸模式、傳輸大小、傳輸方式等具體信息的捕獲顯示。

上位機(jī)程序通過I/O控制調(diào)用來訪問EZUSB通用驅(qū)動程序。上位機(jī)程序首先通過調(diào)用Win32函數(shù)CreateFile()來獲得設(shè)備驅(qū)動程序的句柄,然后使用Win32函數(shù)DeviceIoCont rol(),通過CreateFile()函數(shù)返回的句柄,將I/O控制代碼和相關(guān)的輸入輸出緩沖區(qū)提交到驅(qū)動程序。圖7為整個數(shù)據(jù)采集和處理過程的流程圖。

圖7 數(shù)據(jù)采集和處理過程流程圖

3 實(shí)驗(yàn)與驗(yàn)證

為了驗(yàn)證本文系統(tǒng)的功能,在哈爾濱工程大學(xué)三乙實(shí)驗(yàn)樓接收了GPS信號,并對其做了初步處理,應(yīng)用MATLAB對中頻信號的頻譜和功率譜做了分析,同時(shí)進(jìn)行了捕獲驗(yàn)證,捕獲方法為串行捕獲[7,8]。得到的結(jié)果如圖8所示。圖9為NovAtel SS3-1CPT OEM(Original Equipment Manufacturer)版接收機(jī)在同一時(shí)間同一地點(diǎn)檢測到的結(jié)果。經(jīng)過對比,本文系統(tǒng)檢測到的GPS衛(wèi)星數(shù)量及衛(wèi)星號與NovAtel SS3-1CPT的捕獲結(jié)果一致,分析頻譜和功率譜可以看出可捕獲信號強(qiáng)度足夠,說明該GNSS中頻信號采集器采集的數(shù)據(jù)能夠滿足后續(xù)信號處理要求。

圖8 實(shí)時(shí)GPS信號接收與后處理驗(yàn)證

圖9 NovAtel SS3-1CPT檢測結(jié)果圖

4 結(jié)束語

本文設(shè)計(jì)的GNSS中頻信號采集器實(shí)現(xiàn)了導(dǎo)航衛(wèi)星信號的中頻信號接收、傳輸和保存等功能,完整保存了GNSS中頻數(shù)據(jù),且數(shù)據(jù)質(zhì)量滿足后續(xù)信號處理的要求,為GNSS中頻信號捕獲和跟蹤算法的研究提供了可靠的原始數(shù)據(jù),為推動衛(wèi)星導(dǎo)航接收機(jī)技術(shù)的發(fā)展和多系統(tǒng)兼容接收機(jī)的實(shí)現(xiàn)奠定了基礎(chǔ)。

[1] 王 軻.單頻GPS軟件接收機(jī)通用硬件平臺的設(shè)計(jì)與驗(yàn)證[D].武漢理工大學(xué),2010,11~29.

[2] 胡 輝.基于USB2.0的GPS中頻數(shù)據(jù)采集器研制[J].河南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,(5):56~57.

[3] 賀 喆.USB2.0 GNSS軟件接收機(jī)設(shè)計(jì)與實(shí)現(xiàn)[D].上海交通大學(xué),2009.

[4] 嚴(yán) 偉.GPS中頻信號采集與捕獲技術(shù)研究[J].東南大學(xué)學(xué)報(bào),2009,(6):76~78.

[5] 趙 琳,丁繼成,馬雪飛.衛(wèi)星導(dǎo)航原理及應(yīng)用[M].西安:西北工業(yè)大學(xué)出版社,2011.

[6] 謝 鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.

[7] Tsui,J ames Bao-Yen.Fundamentals of Global Positioning System Receivers:a Software Approach[M].John Wiley&Sons,Inc.,2000,573~576.

[8] Soon Lim,Deok Won Lim,Meilin Liu,Seung Wook Moon,Chansik Park,Sang Jeong Lee.Design of a Software-based Multi-channel GNSS IF Signal Generator[J].Control,Automation and Systems,ICCAS,2008,754~758.

Design of GNSS IF Signal Collection Platform Based on FPGA and USB

Zhao Lin, Wang Ye, Ding Jicheng

The general GNSS IF data collection is designed with MAX2769 RF chip and classic high-speed data acquisition platform of FPGA+DSP as the core.The IF signal of GNSS satellites can be received and converted into digital IF data.By writing the control programs of USB device and man-machine interface programs in PC,the high-speed data acquisition,transmission and saving of IF data are achieved.The frequency spectrum is analyzed and the signal is captured with the received data.The experimental results show that the GNSS IF data can be saved correctly and completely by using the IF data collection developed in this paper.And the data can satisfy the positioning requirement.

GNSS; IF data; FPGA; USB

V249.32

A

CN11-1780(2014)02-0019-06

趙 琳 1968年生,工學(xué)博士,教授,博士生導(dǎo)師,研究方向?yàn)閼T性導(dǎo)航技術(shù)、衛(wèi)星導(dǎo)航技術(shù)、組合導(dǎo)航技術(shù)、信息處理與計(jì)算機(jī)仿真。

國家自然科學(xué)基金資助(編號:61273081,61304234)

2013-12-03

王 野 1988年生,在讀工學(xué)學(xué)士,碩士研究生,研究方向?yàn)樾l(wèi)星無線電導(dǎo)航技術(shù),組合導(dǎo)航技術(shù)。

猜你喜歡
固件采集器上位
COVID-19大便標(biāo)本采集器的設(shè)計(jì)及應(yīng)用
特斯拉 風(fēng)云之老阿姨上位
車迷(2018年12期)2018-07-26 00:42:22
基于ZigBee的大型公共建筑能耗采集器設(shè)計(jì)
基于LabVIEW的多數(shù)據(jù)采集器自動監(jiān)控軟件設(shè)計(jì)與開發(fā)
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
基于固件的遠(yuǎn)程身份認(rèn)證
以新思路促推現(xiàn)代農(nóng)業(yè)上位
提取ROM固件中的APP
電腦愛好者(2015年7期)2015-04-09 08:54:02
一種通過USB接口的可靠固件升級技術(shù)
乐清市| 伊春市| 那曲县| 井陉县| 西盟| 元朗区| 改则县| 新田县| 玉树县| 栾川县| 江北区| 珲春市| 香格里拉县| 上栗县| 淅川县| 盐亭县| 阿图什市| 海晏县| 故城县| 中卫市| 兴业县| 邻水| 本溪市| 仲巴县| 通江县| 莱阳市| 天祝| 陆丰市| 英超| 富宁县| 石狮市| 亚东县| 太湖县| 得荣县| 大田县| 呈贡县| 南木林县| 昌宁县| 和平县| 临海市| 伊通|