張明陽 馬鵬


摘要 概述了FPGA特點和GPS同步時鐘裝置基本功能后,本文提出了以FPGA為核心單元的GPS時鐘解析系統,可高精度實時的解析GPS接收機發出的同步時間信息,并在GPS失步后實現秒脈沖累加計時,最后給出系統時序仿真結果。
【關鍵詞】FPGA GPS 秒脈沖
1 引言
全球定位系統(GPS)作為新一代衛星導航與定位系統,以其全球性、全天候、高精度、自動化、高效益等顯著特點,在我國大地測量、工程測量、水利電力、交通、資源勘探和航海等領域有著廣泛的應用??梢哉f,GPS技術現已融入了國民經濟建設、國防建設和社會發展的各個應用方面。
FPGA是一種可編程邏輯器件,片內有大量邏輯門和觸發器,具有集成度高,運算速度快,編程簡易的特點,內部程序并行運行,可同時處理不同任務。同時FPGA有大量軟核,可方便進行二次開發。
本文在結合了FPGA的特點和GPS同步時鐘裝置具有的基本功能后,提出了基于FPGA的GPS時鐘解析系統,設計中以FPGA為核心單元,提高了系統解析效率,實現高速度的實時GPS時鐘解析。
2 系統介紹
基于FPGA的GPS時鐘解析系統采用“自頂向下”的設計方法,使用Verilog HDL語言編寫,其內部設計邏輯框圖如圖1所示,由圖可知,系統主要由波特率產生器、UART接收器以及GPS模塊組成。
2.1 波特率產生器
波特率產生器模塊的作用是對FPGA的系統工作時鐘進行分頻,從而為UART接收器提供工作時序,本文波特率發生器模塊輸出的時鐘頻率設為串口數據速率的16倍,同時在數據位中間位置時刻進行采樣,有效避免了誤碼操作。
2.2 UART接收器
UART接收器的作用是接收GPS接收機發出的包含時間信息的串口數據,并將接收到的串口數據按照ASCII碼的形式發送給GPS模塊,每當接收完一個來自串口的字符(8位)數據時,就產生一個接收完成指示信號,GPS模塊根據接收完成指示信號將接收的字符數據存儲。UART接收模塊的好壞直接影響后續模塊能否正確解析數據。
2.3 GPS模塊
GPS模塊的主要任務是實時的校驗UART接收器發來的NMEA 0183 $GPRMC語句格式,并當語句格式符合標準時,實時解析出$GPRMC語句中時間信息。如圖所示,I/O控制模塊即負責語句格式的校驗,當符合語句標準先將$GPRMC語句語句存儲于輸入緩存,再進行GPS解析,并對解析出的時間結果進行時鐘調整,調整為北京時間,并在原時鐘基礎上加1秒,將時鐘調整結果存儲于輸出緩存器中進行緩存。
與此同時,GPS檢測模塊實時檢測GPS狀態,當GPS未失步時,I/O控制模塊直接將輸出緩存器中將緩存的時間信息以秒脈沖為節拍輸出;當檢測到GPS失步時,I/O控制模塊首先將輸出緩存器中緩存的時間信息累加1,再根據FPGA內部定義的時鐘節拍,將累加時鐘輸出,完成GPS時鐘解析工作。
3 時序仿真
圖2為本文設計的GPS時鐘解析系統時序仿真波形圖,仿真中采用標準$GPRMC語句模擬輸入,由于本文只用到GPS時間信息,故仿真只設計輸入“$GPRMC,121212,A”語句,表示仿真時刻為12時12分12秒,如圖所示data_rx[7:0]即表示UART接收器接收的來自串口的GPS信息的ASCII格式;rev_sig即表示接收完成指示信號,每當接收完一個字符,產生一個高脈沖。當秒脈沖gps_tp有效時,時鐘解析系統解析出的當前時間信息為gpstime[31:0]=72733=(20*3600) +(12*60)+12+1,即為20時12分13秒整。由此可知,本系統有效完成了GPS時鐘解析功能,可實時獲得時間信息。
4 結論
本文設計的基于FPGA的GPS時鐘解析系統,充分利用FPGA高速并行運算的優勢,能夠高精度實時的解析出GPS接收機發來的GPS同步時鐘信息,并且當GPS失步時也可利用GPS秒脈沖累加計時,保證同步時間信息精確有效,在分布式同步系統、同步采集系統中具有廣闊的應用前景。
參考文獻
[1]張惠,張健,劉超,全球定位系統(GPS)技術的發展現狀及未來發展趨勢[J],中國計量,2012 (01): 70-72.
[2]徐丈波,田耕.Xilinx FPGA開發實用教程[M].北京:清華大學出版社,2 01 2.
[3] Zdenek Slanina, Vladimir Kasik. GPSsynchronisation for FPGA devices [C].Brno (CS): Programmable Devices andEmbedded Systems, 2012.