《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM與FPGA的便攜式GNSS信號(hào)采集回放系統(tǒng)設(shè)計(jì)
基于ARM與FPGA的便攜式GNSS信號(hào)采集回放系統(tǒng)設(shè)計(jì)
2016年電子技術(shù)應(yīng)用第10期
張婉明1,,李 琦1,李金海2,,汪 峰2,,高 宇1,董 盟1
1.河北工業(yè)大學(xué) 電子信息工程學(xué)院,,天津300401,;2.中國(guó)科學(xué)院微電子研究所,北京100029
摘要: 設(shè)計(jì)了一種基于ARM與FPGA的便攜式GNSS導(dǎo)航信號(hào)采集回放系統(tǒng),。該系統(tǒng)可采集復(fù)雜情況下的導(dǎo)航衛(wèi)星信號(hào),,并且增益可控,為導(dǎo)航接收機(jī)測(cè)試提供了特定的信號(hào)源,。系統(tǒng)將導(dǎo)航衛(wèi)星信號(hào)經(jīng)射頻電路轉(zhuǎn)換為數(shù)字中頻信號(hào),,通過(guò)FPGA處理后保存至SATA硬盤(pán)。ARM處理器作為監(jiān)控端發(fā)送指令至FPGA,,控制FPGA進(jìn)行數(shù)據(jù)采集與回放,,同時(shí)接收監(jiān)控接收機(jī)串口發(fā)送的報(bào)文,提取載噪比信息,,并繪制載噪比柱狀圖,。該系統(tǒng)ARM端基于嵌入式Linux系統(tǒng)開(kāi)發(fā),采用Qt4設(shè)計(jì)用戶圖形界面,,可擴(kuò)展及可移植性強(qiáng),,為系統(tǒng)的后續(xù)開(kāi)發(fā)提供了保障,。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)信號(hào)質(zhì)量滿足要求,,ARM監(jiān)控端數(shù)據(jù)處理時(shí)間在200 ms~500 ms之間,,實(shí)時(shí)性良好。
關(guān)鍵詞: GNSS FPGA ARM 采集回放 嵌入式Linux
中圖分類號(hào): TN965.5
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.10.014
中文引用格式: 張婉明,,李琦,,李金海,等. 基于ARM與FPGA的便攜式GNSS信號(hào)采集回放系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2016,,42(10):58-61.
英文引用格式: Zhang Wanming,,Li Qi,,Li Jinhai,et al. Design of portable GNSS signal capture and playback system based on ARM and FPGA[J].Application of Electronic Technique,,2016,,42(10):58-61.
Design of portable GNSS signal capture and playback system based on ARM and FPGA
Zhang Wanming1,Li Qi1,,Li Jinhai2,,Wang Feng2,Gao Yu1,,Dong Meng1
1.School of Electronic And Information Engineering,,Hebei University of Technology,Tianjin 300401,,China,; 2.Institute of Microelectronics,Chinese Academy of Sciences,,Beijing 100029,,China
Abstract: A portable GNSS navigation signal capture and playback system based on ARM and FPGA is designed. This system can capture complex navigation satellite signals, control gain, and provide a specific signal source for navigation receiver testing. This system receives satellite signals via the RF circuit which is converted to a digital IF signal, and then the data is saved to the SATA hard disk after the processing by FPGA. The ARM processor works as a monitor which send commands to the FPGA, controls the FPGA to collect and playback navigation data, and receives the packets from monitoring receiver through serial port, as well as extracts the CNR and draw the histogram. This system is based on embedded Linux, using Qt4 to design graphical user interface. It has the advantage of scalabilityes and portability, and provides a guarantee for the subsequent development. Experimental results show that the quality of signal reach the requirements. The data processing time by ARM processor is between 200 ms and 500 ms which has good probability for real time application.
Key words : GNSS;FPGA,;ARM,;capture and playback;embedded Linux,;Qt4

0 引言

    目前,,GNSS衛(wèi)星導(dǎo)航定位系統(tǒng)的應(yīng)用越來(lái)越廣泛,包括中國(guó),、美國(guó),、歐盟、俄羅斯等世界主要強(qiáng)國(guó)都在積極布置自己的全球衛(wèi)星導(dǎo)航定位系統(tǒng)[1],。雖然中國(guó)在衛(wèi)星導(dǎo)航方面起步較晚,,但是技術(shù)發(fā)展迅猛,,隨著中國(guó)的北斗2號(hào)衛(wèi)星導(dǎo)航系統(tǒng)的逐步完善,使得中國(guó)成為繼美俄之后第三個(gè)擁有完整的導(dǎo)航系統(tǒng)的國(guó)家,。國(guó)內(nèi)市場(chǎng)對(duì)導(dǎo)航接收機(jī)的需求也越來(lái)越多,,設(shè)計(jì)高性能、多模式,、低價(jià)位的導(dǎo)航接收機(jī)已成為研究熱點(diǎn),。作為導(dǎo)航接收機(jī)研發(fā)過(guò)程中必不可少的設(shè)備,采集回放系統(tǒng)具有廣闊的應(yīng)用前景,。所以,,迫切需要設(shè)計(jì)一種價(jià)格低廉、便攜性好,、界面直觀,、可操作性強(qiáng)的GNSS導(dǎo)航信號(hào)采集回放系統(tǒng)。

    綜上,,該系統(tǒng)的監(jiān)控端采用了基于CortexA8系列的ARM處理器,,該處理器同時(shí)兼顧了成本與性能的要求,可設(shè)計(jì)美觀的圖形化操作界面,。該系統(tǒng)工作于BD2-B1和GPS-L1兩個(gè)頻點(diǎn),,便攜性好,界面直觀,,可通過(guò)按鍵或觸摸屏兩種方式操作,,同時(shí)可隨時(shí)采集戶外復(fù)雜環(huán)境下的導(dǎo)航衛(wèi)星信號(hào),極大地提高了導(dǎo)航接收機(jī)的開(kāi)發(fā)效率和質(zhì)量,。

1 系統(tǒng)結(jié)構(gòu)

    本系統(tǒng)整體分為射頻模塊與基帶模塊兩大部分,。其中,射頻模塊負(fù)責(zé)接收和發(fā)送射頻信號(hào),,并將射頻信號(hào)轉(zhuǎn)換為基帶信號(hào)后交由基帶模塊處理,;基帶模塊完成用戶交互、接口對(duì)接等功能,。此外還包括SSD硬盤(pán)(數(shù)據(jù)存儲(chǔ)的介質(zhì),,存放采集和回放的數(shù)據(jù))以及對(duì)外各種接口。系統(tǒng)的結(jié)構(gòu)組成如圖1所示,。

qrs2-t1.gif

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

2.1 射頻模塊

    射頻模塊可分為上變頻與下變頻兩大部分,,下變頻部分的核心器件采用MAX2769B芯片,該芯片是一款多模導(dǎo)航接收機(jī)芯片,,適用于GPS/北斗/格洛納斯/伽利略衛(wèi)星導(dǎo)航定位系統(tǒng),。上變頻部分的增益控制器件采用了HMC472LP4數(shù)控衰減芯片,該衰減芯片步進(jìn)0.5 dB,,最高衰減31.5 dB,,分別由V1~V6 6個(gè)引腳控制,,低電平有效。上下變頻部分均采用C8051F230單片機(jī)進(jìn)行配置,,下變頻部分采用GPIO口模擬SPI接口對(duì)MAX2769B芯片寫(xiě)配置字,,配置相關(guān)參數(shù);上變頻模塊通過(guò)控制12個(gè)GPIO口電平的高低配置增益,。同時(shí),,射頻模塊的上下變頻部分均采用杭州中科微電子的ATGM332D導(dǎo)航接收機(jī)作為監(jiān)控接收機(jī),上下變頻模塊分別將監(jiān)控接收機(jī)接收的報(bào)文信息通過(guò)串口送入FPGA模塊,,由FPGA選擇輸出至ARM端,。圖2為射頻模塊原理圖[2]

qrs2-t2.gif

2.2 基帶模塊

    基帶模塊可以分為FPGA模塊,、ARM模塊及基帶底板3個(gè)部分,。基帶底板是各模塊連接的橋梁,,并完成除ARM,、FPGA之外的所有功能,,各模塊均以接插件形式與底板連接,。這里創(chuàng)新性地采用了SSD硬盤(pán)進(jìn)行數(shù)據(jù)存儲(chǔ),滿足了設(shè)備長(zhǎng)時(shí)間采集數(shù)據(jù)對(duì)大容量空間的需求,。由于系統(tǒng)復(fù)雜性高,,本文對(duì)于基帶底板子模塊只介紹電源與時(shí)鐘電路的設(shè)計(jì)方案。

2.2.1 FPGA模塊

    FPGA采用了Xilinx 的XC7K325TFFG900-2型FPGA(下文簡(jiǎn)稱K7),。K7系列是Xilinx最新推出的面向中低端市場(chǎng)的低價(jià)位,、高性能FPGA[3]。K7核心板主要負(fù)責(zé)對(duì)接射頻數(shù)據(jù)接口和高速收發(fā)接口,,F(xiàn)PGA內(nèi)部邏輯結(jié)構(gòu)如圖3所示,,根據(jù)功能大致分為3個(gè)部分:控制單元、SATA控制器,、UART分線單元,。FPGA的控制單元主要負(fù)責(zé)系統(tǒng)的差錯(cuò)控制及與ARM端的通信。這里ARM與FPGA是通過(guò)SMC總線進(jìn)行通信的,,需要在Linux內(nèi)核中編寫(xiě)K7處理器的SMC總線驅(qū)動(dòng)[4],。

qrs2-t3.gif

2.2.2 ARM模塊

    ARM模塊采用Atmel SAMA5D31處理器,該處理器基于Cortex-A5架構(gòu),,主頻528 MHz,,內(nèi)部集成了浮點(diǎn)運(yùn)算單元,是一款高性能,、低功耗的嵌入式處理器,。ARM模塊集成了256 MB ROM,、256 MB RAM,保證性能的同時(shí)降低了開(kāi)發(fā)成本,。對(duì)于本系統(tǒng)而言,,選用該模塊是考慮了性能、功耗,、價(jià)位等多種綜合因素的結(jié)果[5],。ARM作為主控芯片控制整個(gè)系統(tǒng)流程,圖4所示為ARM與其他部件的連接關(guān)系圖,。

qrs2-t4.gif

2.2.3 基帶底板(電源與時(shí)鐘)

    本設(shè)計(jì)采用5 V~42 V寬壓電源輸入,,根據(jù)各個(gè)器件工作時(shí)所需電流的大小,采用12 V/5 A適配器作為輸入電源,,整體電源分配如圖5所示,。

qrs2-t5.gif

    整個(gè)系統(tǒng)的時(shí)鐘源有2個(gè),均為16.368 MHz的有源晶振,,分別位于基帶底板(主時(shí)鐘),、射頻板(備用時(shí)鐘)。正常情況下使用主時(shí)鐘,,在特殊應(yīng)用下使用備用時(shí)鐘,。除16.368 MHz時(shí)鐘外,ARM具有自身的無(wú)源晶振作為自己的時(shí)鐘源,。模塊通信時(shí)均采用異步通信方式,,以避免鐘差產(chǎn)生的錯(cuò)誤。圖6所示為系統(tǒng)的時(shí)鐘設(shè)計(jì)方案,。

qrs2-t6.gif

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

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

    本系統(tǒng)在采集數(shù)據(jù)時(shí),,F(xiàn)PGA接收來(lái)自下變頻模塊的8位AD數(shù)字信號(hào)(L1+B1),經(jīng)過(guò)處理后通過(guò)SATA接口存入到SSD硬盤(pán)中,,完成數(shù)據(jù)的采集與存儲(chǔ)[6],;回放時(shí),F(xiàn)PGA從SSD硬盤(pán)中讀取數(shù)據(jù),,經(jīng)過(guò)DA數(shù)模轉(zhuǎn)換后,,送入上變頻模塊完成信號(hào)的播發(fā)[7]。在衛(wèi)星信號(hào)采集回放時(shí),,F(xiàn)PGA要接收來(lái)自上下變頻模塊監(jiān)控接收機(jī)的UART信息,,確定采集和播發(fā)的信號(hào)是否正常。

    本設(shè)計(jì)采用VHDL語(yǔ)言[8]對(duì)需要實(shí)現(xiàn)的電路進(jìn)行描述,,Xilinx的K7系列FPGA內(nèi)部集成的高速收發(fā)器(GTX)數(shù)目高達(dá)16個(gè),,單個(gè)GTX的速率能達(dá)到12.5 Gb/s,GTX是實(shí)現(xiàn)SATA協(xié)議的核心器件,,用于實(shí)現(xiàn)SATA2.0控制器綽綽有余,。本文采用K7實(shí)現(xiàn)了SATA協(xié)議的物理層,、鏈路層和傳輸層,主要包括完成鏈路初始化,、幀的封裝,、幀的發(fā)送/暫停/結(jié)束控制、幀的解析與校驗(yàn),。SATA協(xié)議的傳輸層由萬(wàn)兆位級(jí)收發(fā)器GTX,、OBB控制模塊和接口傳輸率選擇模塊共同實(shí)現(xiàn)。GTX的主要功能包括16B/20B編碼/解碼,、串并/并串轉(zhuǎn)換,、逗點(diǎn)檢測(cè)、時(shí)鐘修正,、預(yù)測(cè)重和線性均衡等,。OBB控制模塊用于硬盤(pán)的上電過(guò)程或者硬件的復(fù)位過(guò)程,同時(shí)與SATA控制器建立通信鏈路,。

3.2 ARM程序設(shè)計(jì)

    ARM模塊作為本系統(tǒng)的核心控制模塊,,負(fù)責(zé)各個(gè)任務(wù)的調(diào)度,加之需要友好的用戶交互界面,,因此采用嵌入式Linux作為ARM模塊的操作系統(tǒng),。根據(jù)ARM任務(wù)可以大致分為:用戶交互操作、模塊指令配置,、數(shù)據(jù)文件管理,、模塊狀態(tài)監(jiān)控。

    首先需要在Linux內(nèi)核中實(shí)現(xiàn)相應(yīng)接口的驅(qū)動(dòng)程序,,除SMC總線驅(qū)動(dòng)外,Atmel官方提供的linux3.6.9版本的內(nèi)核中已經(jīng)提供了其他接口的驅(qū)動(dòng)程序[9],,只需在設(shè)備樹(shù)文件中引出相應(yīng)的設(shè)備節(jié)點(diǎn)即可,。Atmel官方同時(shí)提供了SPI、I2C,、GPIO接口的測(cè)試程序,,可以直接移植相應(yīng)的程序到Qt4中用于實(shí)現(xiàn)相應(yīng)的功能。這里需要特別強(qiáng)調(diào)的是UART接口,,在Qt4中沒(méi)有特定的用于串口通信的類,,本系統(tǒng)參考第三方的qextserialport類,自定義一個(gè)PortSettings類型的結(jié)構(gòu)體,,用于存儲(chǔ)串口參數(shù),。由于Linux系統(tǒng)不支持串口中斷方式,所以這里需要新建一個(gè)定時(shí)器QTimer,,定時(shí)1 s,,并在程序中實(shí)現(xiàn)串口發(fā)送與接收的同步,。接下來(lái)調(diào)用open()函數(shù)打開(kāi)串口,并調(diào)用bytesAvailable()函數(shù)判斷串口數(shù)據(jù)是否為零,,若串口緩沖中有數(shù)據(jù),,則調(diào)用readAll()函數(shù)將緩沖區(qū)中所有數(shù)據(jù)讀取到QByteArray類型變量中[10]

    要實(shí)現(xiàn)實(shí)時(shí)接收機(jī)監(jiān)控,,需要解析串口接收到的報(bào)文數(shù)據(jù),,并提取載噪比信息,繪制柱狀圖用于實(shí)時(shí)顯示信號(hào)質(zhì)量,。本系統(tǒng)針對(duì)Qt4用戶圖形界面,,提出了一種全新的報(bào)文解析方式,首先需要將QByteArray型變量轉(zhuǎn)換為QString型,,并調(diào)用replace()函數(shù)將報(bào)文中的星號(hào),、回車符全部替換為逗號(hào),并以逗號(hào)為分隔符,,調(diào)用split()函數(shù)對(duì)報(bào)文進(jìn)行分割,,用查詢的方式查找$GPGSV字段,將衛(wèi)星編號(hào)以及載噪比保存到數(shù)組中,。根據(jù)數(shù)組中的數(shù)據(jù),,采用第三方的QCustomPlot類繪制載噪比柱狀圖,首先調(diào)用setLabel函數(shù)設(shè)置橫縱坐標(biāo)名稱,,并使用QCustomPlot提供的QCPBars來(lái)表示柱狀圖,,調(diào)用setData()函數(shù)對(duì)每個(gè)柱子進(jìn)行賦值,然后調(diào)用addPlittable()函數(shù)將柱狀圖添加到Widget上,,橫坐標(biāo)賦值需要調(diào)用setTickVector()及setTickVectorLabels()函數(shù),,最后調(diào)用replot()重繪柱狀圖,保證柱狀圖實(shí)時(shí)更新,。

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

    由于Qt4在界面設(shè)計(jì)中的優(yōu)越性,,因此可以隨時(shí)按照自己的需求改變界面樣式[11]

    為了驗(yàn)證ARM端程序是否發(fā)生過(guò)串口阻塞現(xiàn)象及是否滿足實(shí)時(shí)性要求,,對(duì)每幀報(bào)文的處理時(shí)間進(jìn)行分析,。將程序移植到嵌入式開(kāi)發(fā)平臺(tái)上,使用labsat循環(huán)回放一段衛(wèi)星的中頻信號(hào),,該中頻信號(hào)包含GPS與BD2的報(bào)文信息,,經(jīng)過(guò)3.5 h的連續(xù)測(cè)試得到一組數(shù)據(jù),將該數(shù)據(jù)用MATLAB分析后,,得到圖7所示結(jié)果,。

qrs2-t7.gif

    從圖7中可以清楚地看到,報(bào)文解析及繪圖時(shí)間多在250 ms左右,偶爾突發(fā)時(shí)刻會(huì)達(dá)到550 ms的峰值,,處理時(shí)間在1 s之內(nèi),,完全滿足實(shí)時(shí)性要求。

5 結(jié)束語(yǔ)

    本文設(shè)計(jì)的便攜式GNSS導(dǎo)航信號(hào)采集回放系統(tǒng)實(shí)現(xiàn)了對(duì)衛(wèi)星中頻數(shù)據(jù)的保存與回放,,其監(jiān)控端采用ARM處理平臺(tái),,編寫(xiě)了針對(duì)K7型FPGA的SMC總線驅(qū)動(dòng),并設(shè)計(jì)了相應(yīng)的圖形化操作界面,,節(jié)約成本的同時(shí)保持了設(shè)備良好的可操作性,,同時(shí)采用SSD作為存儲(chǔ)介質(zhì),保障了設(shè)備長(zhǎng)時(shí)間采集的要求,。這里用MATLAB對(duì)中頻信號(hào)的頻譜和功率譜分析后得知,,其回放的信號(hào)質(zhì)量滿足導(dǎo)航接收機(jī)測(cè)試的需求,同時(shí)其保存的中頻數(shù)據(jù)為信號(hào)捕獲與跟蹤算法的研究提供了可靠的原始數(shù)據(jù),,為研制高性能,、低價(jià)位的導(dǎo)航接收機(jī)奠定了基礎(chǔ)。

參考文獻(xiàn)

[1] 楊亮,,郭佩,,秦紅磊.射頻直接采樣多頻GNSS信號(hào)采集系統(tǒng)的實(shí)現(xiàn)[J].電訊技術(shù),2011,,51(8):51-55.

[2] 戴維斯[美].射頻電路設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,,2015.

[3] 周波,張磊,,張寶燕.基于K7的高速FC物理層的設(shè)計(jì)和實(shí)現(xiàn)[J].光通信技術(shù),,2015,39(10):59-62.

[4] 張福洪,,徐春暉,,胡舜峰.基于Linux的ARM與FPGA數(shù)據(jù)通信設(shè)計(jì)與實(shí)現(xiàn)[J].杭州電子科技大學(xué)學(xué)報(bào),2015,,35(4):26-30.

[5] 李寧.ARM Cortex-A8處理器原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,,2012.

[6] 王夢(mèng)楠.基于FPGA的中頻數(shù)字信號(hào)處理[D].大連:大連海事大學(xué),2015.

[7] 何賓.FPGA數(shù)字信號(hào)處理實(shí)現(xiàn)原理及方法[M].北京:清華大學(xué)出版社,,2010.

[8] 曾繁泰,曾祥云.VHDL程序設(shè)計(jì)教程(第4版)[M].北京:清華大學(xué)出版社,,2001.

[9] 宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解:基于最新的Linux4.0內(nèi)核[M].北京:機(jī)械工業(yè)出版社,,2015.

[10] 吳斌,楊根興.基于OEM,、PXA250平臺(tái)的GPS接收機(jī)設(shè)計(jì)[J].計(jì)算機(jī)工程,,2005,31(24):212-213.

[11] 黃麗琴.Qt4圖形設(shè)計(jì)與嵌入式開(kāi)發(fā)[M].北京:人民郵電出版社,2009.

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