摘 要: 設計了一種基于ARM與FPGA的便攜式GNSS導航信號采集回放系統。該系統可采集復雜情況下的導航衛星信號,并且增益可控,為導航接收機測試提供了特定的信號源。系統將導航衛星信號經射頻電路轉換為數字中頻信號,通過FPGA處理后保存至SATA硬盤。ARM處理器作為監控端發送指令至FPGA,控制FPGA進行數據采集與回放,同時接收監控接收機串口發送的報文,提取載噪比信息,并繪制載噪比柱狀圖。該系統ARM端基于嵌入式Linux系統開發,采用Qt4設計用戶圖形界面,可擴展及可移植性強,為系統的后續開發提供了保障。實驗結果表明,該系統信號質量滿足要求,ARM監控端數據處理時間在200 ms~500 ms之間,實時性良好。
0 引言
目前,GNSS衛星導航定位系統的應用越來越廣泛,包括中國、美國、歐盟、俄羅斯等世界主要強國都在積極布置自己的全球衛星導航定位系統[1]。雖然中國在衛星導航方面起步較晚,但是技術發展迅猛,隨著中國的北斗2號衛星導航系統的逐步完善,使得中國成為繼美俄之后第三個擁有完整的導航系統的國家。國內市場對導航接收機的需求也越來越多,設計高性能、多模式、低價位的導航接收機已成為研究熱點。作為導航接收機研發過程中必不可少的設備,采集回放系統具有廣闊的應用前景。所以,迫切需要設計一種價格低廉、便攜性好、界面直觀、可操作性強的GNSS導航信號采集回放系統。
綜上,該系統的監控端采用了基于CortexA8系列的ARM處理器,該處理器同時兼顧了成本與性能的要求,可設計美觀的圖形化操作界面。該系統工作于BD2-B1和GPS-L1兩個頻點,便攜性好,界面直觀,可通過按鍵或觸摸屏兩種方式操作,同時可隨時采集戶外復雜環境下的導航衛星信號,極大地提高了導航接收機的開發效率和質量。
1 系統結構
本系統整體分為射頻模塊與基帶模塊兩大部分。其中,射頻模塊負責接收和發送射頻信號,并將射頻信號轉換為基帶信號后交由基帶模塊處理;基帶模塊完成用戶交互、接口對接等功能。此外還包括SSD硬盤(數據存儲的介質,存放采集和回放的數據)以及對外各種接口。系統的結構組成如圖1所示。
2 系統硬件設計
2.1 射頻模塊
射頻模塊可分為上變頻與下變頻兩大部分,下變頻部分的核心器件采用MAX2769B芯片,該芯片是一款多模導航接收機芯片,適用于GPS/北斗/格洛納斯/伽利略衛星導航定位系統。上變頻部分的增益控制器件采用了HMC472LP4數控衰減芯片,該衰減芯片步進0.5 dB,最高衰減31.5 dB,分別由V1~V6 6個引腳控制,低電平有效。上下變頻部分均采用C8051F230單片機進行配置,下變頻部分采用GPIO口模擬SPI接口對MAX2769B芯片寫配置字,配置相關參數;上變頻模塊通過控制12個GPIO口電平的高低配置增益。同時,射頻模塊的上下變頻部分均采用杭州中科微電子的ATGM332D導航接收機作為監控接收機,上下變頻模塊分別將監控接收機接收的報文信息通過串口送入FPGA模塊,由FPGA選擇輸出至ARM端。圖2為射頻模塊原理圖[2]。
?
2.2 基帶模塊
基帶模塊可以分為FPGA模塊、ARM模塊及基帶底板3個部分?;鶐У装迨歉髂K連接的橋梁,并完成除ARM、FPGA之外的所有功能,各模塊均以接插件形式與底板連接。這里創新性地采用了SSD硬盤進行數據存儲,滿足了設備長時間采集數據對大容量空間的需求。由于系統復雜性高,本文對于基帶底板子模塊只介紹電源與時鐘電路的設計方案。
2.2.1 FPGA模塊
FPGA采用了Xilinx 的XC7K325TFFG900-2型FPGA(下文簡稱K7)。K7系列是Xilinx最新推出的面向中低端市場的低價位、高性能FPGA[3]。K7核心板主要負責對接射頻數據接口和高速收發接口,FPGA內部邏輯結構如圖3所示,根據功能大致分為3個部分:控制單元、SATA控制器、UART分線單元。FPGA的控制單元主要負責系統的差錯控制及與ARM端的通信。這里ARM與FPGA是通過SMC總線進行通信的,需要在Linux內核中編寫K7處理器的SMC總線驅動[4]。
?
2.2.2 ARM模塊
ARM模塊采用Atmel SAMA5D31處理器,該處理器基于Cortex-A5架構,主頻528 MHz,內部集成了浮點運算單元,是一款高性能、低功耗的嵌入式處理器。ARM模塊集成了256 MB ROM、256 MB RAM,保證性能的同時降低了開發成本。對于本系統而言,選用該模塊是考慮了性能、功耗、價位等多種綜合因素的結果[5]。ARM作為主控芯片控制整個系統流程,圖4所示為ARM與其他部件的連接關系圖。
?
2.2.3 基帶底板(電源與時鐘)
本設計采用5 V~42 V寬壓電源輸入,根據各個器件工作時所需電流的大小,采用12 V/5 A適配器作為輸入電源,整體電源分配如圖5所示。
?
整個系統的時鐘源有2個,均為16.368 MHz的有源晶振,分別位于基帶底板(主時鐘)、射頻板(備用時鐘)。正常情況下使用主時鐘,在特殊應用下使用備用時鐘。除16.368 MHz時鐘外,ARM具有自身的無源晶振作為自己的時鐘源。模塊通信時均采用異步通信方式,以避免鐘差產生的錯誤。圖6所示為系統的時鐘設計方案。
3 系統軟件設計
3.1 FPGA程序設計
本系統在采集數據時,FPGA接收來自下變頻模塊的8位AD數字信號(L1+B1),經過處理后通過SATA接口存入到SSD硬盤中,完成數據的采集與存儲[6];回放時,FPGA從SSD硬盤中讀取數據,經過DA數模轉換后,送入上變頻模塊完成信號的播發[7]。在衛星信號采集回放時,FPGA要接收來自上下變頻模塊監控接收機的UART信息,確定采集和播發的信號是否正常。
本設計采用VHDL語言[8]對需要實現的電路進行描述,Xilinx的K7系列FPGA內部集成的高速收發器(GTX)數目高達16個,單個GTX的速率能達到12.5 Gb/s,GTX是實現SATA協議的核心器件,用于實現SATA2.0控制器綽綽有余。本文采用K7實現了SATA協議的物理層、鏈路層和傳輸層,主要包括完成鏈路初始化、幀的封裝、幀的發送/暫停/結束控制、幀的解析與校驗。SATA協議的傳輸層由萬兆位級收發器GTX、OBB控制模塊和接口傳輸率選擇模塊共同實現。GTX的主要功能包括16B/20B編碼/解碼、串并/并串轉換、逗點檢測、時鐘修正、預測重和線性均衡等。OBB控制模塊用于硬盤的上電過程或者硬件的復位過程,同時與SATA控制器建立通信鏈路。
3.2 ARM程序設計
ARM模塊作為本系統的核心控制模塊,負責各個任務的調度,加之需要友好的用戶交互界面,因此采用嵌入式Linux作為ARM模塊的操作系統。根據ARM任務可以大致分為:用戶交互操作、模塊指令配置、數據文件管理、模塊狀態監控。
首先需要在Linux內核中實現相應接口的驅動程序,除SMC總線驅動外,Atmel官方提供的linux3.6.9版本的內核中已經提供了其他接口的驅動程序[9],只需在設備樹文件中引出相應的設備節點即可。Atmel官方同時提供了SPI、I2C、GPIO接口的測試程序,可以直接移植相應的程序到Qt4中用于實現相應的功能。這里需要特別強調的是UART接口,在Qt4中沒有特定的用于串口通信的類,本系統參考第三方的qextserialport類,自定義一個PortSettings類型的結構體,用于存儲串口參數。由于Linux系統不支持串口中斷方式,所以這里需要新建一個定時器QTimer,定時1 s,并在程序中實現串口發送與接收的同步。接下來調用open()函數打開串口,并調用bytesAvailable()函數判斷串口數據是否為零,若串口緩沖中有數據,則調用readAll()函數將緩沖區中所有數據讀取到QByteArray類型變量中[10]。
要實現實時接收機監控,需要解析串口接收到的報文數據,并提取載噪比信息,繪制柱狀圖用于實時顯示信號質量。本系統針對Qt4用戶圖形界面,提出了一種全新的報文解析方式,首先需要將QByteArray型變量轉換為QString型,并調用replace()函數將報文中的星號、回車符全部替換為逗號,并以逗號為分隔符,調用split()函數對報文進行分割,用查詢的方式查找$GPGSV字段,將衛星編號以及載噪比保存到數組中。根據數組中的數據,采用第三方的QCustomPlot類繪制載噪比柱狀圖,首先調用setLabel函數設置橫縱坐標名稱,并使用QCustomPlot提供的QCPBars來表示柱狀圖,調用setData()函數對每個柱子進行賦值,然后調用addPlittable()函數將柱狀圖添加到Widget上,橫坐標賦值需要調用setTickVector()及setTickVectorLabels()函數,最后調用replot()重繪柱狀圖,保證柱狀圖實時更新。
4 實驗與驗證
由于Qt4在界面設計中的優越性,因此可以隨時按照自己的需求改變界面樣式[11]。
為了驗證ARM端程序是否發生過串口阻塞現象及是否滿足實時性要求,對每幀報文的處理時間進行分析。將程序移植到嵌入式開發平臺上,使用labsat循環回放一段衛星的中頻信號,該中頻信號包含GPS與BD2的報文信息,經過3.5 h的連續測試得到一組數據,將該數據用MATLAB分析后,得到圖7所示結果。
從圖7中可以清楚地看到,報文解析及繪圖時間多在250 ms左右,偶爾突發時刻會達到550 ms的峰值,處理時間在1 s之內,完全滿足實時性要求。
5 結束語
本文設計的便攜式GNSS導航信號采集回放系統實現了對衛星中頻數據的保存與回放,其監控端采用ARM處理平臺,編寫了針對K7型FPGA的SMC總線驅動,并設計了相應的圖形化操作界面,節約成本的同時保持了設備良好的可操作性,同時采用SSD作為存儲介質,保障了設備長時間采集的要求。這里用MATLAB對中頻信號的頻譜和功率譜分析后得知,其回放的信號質量滿足導航接收機測試的需求,同時其保存的中頻數據為信號捕獲與跟蹤算法的研究提供了可靠的原始數據,為研制高性能、低價位的導航接收機奠定了基礎。
?
評論