基于FPGA的GPS时钟解析技术
2018-02-23张明阳马鹏
张明阳 马鹏
摘要 概述了FPGA特点和GPS同步时钟装置基本功能后,本文提出了以FPGA为核心单元的GPS时钟解析系统,可高精度实时的解析GPS接收机发出的同步时间信息,并在GPS失步后实现秒脉冲累加计时,最后给出系统时序仿真结果。
【关键词】FPGA GPS 秒脉冲
1 引言
全球定位系统(GPS)作为新一代卫星导航与定位系统,以其全球性、全天候、高精度、自动化、高效益等显著特点,在我国大地测量、工程测量、水利电力、交通、资源勘探和航海等领域有着广泛的应用。可以说,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.