基于STM32的GPS授时系统设计

2016-10-14 23:51吴彦霖刘瑞敏王兴隆杨智勇
价值工程 2016年5期

吴彦霖  刘瑞敏 王兴隆 杨智勇

摘要: 本文设计了一种基于STM32高速单片机的GPS卫星授时时钟,它由四部分组成,分别是接收机、中央处理单元、LCD显示和输出接口。其中接收机用于接收标准时间信号,中央处理单元的作用是处理数据,可同步输出时间数据,保证高精度授时。这不仅能解决时间获取问题,而且能真正实现全球范围内的时间校准。该方法不仅具有实现手段简单、精度高、范围大等特点,还具有无需通道联系,不受地理和气候条件限制等优势,是理想的时钟同步方法。本文介绍了基于STM32的GPS授时时钟装置的硬件;根据装置要实现的功能,给出了主程序和中断程序的流程图和程序介绍。

Abstract: This paper designed a GPS satellite timing clock based on STM32 high speed microprocessor, which is composed of four parts: receiver, CPU, LCD display and output interface. The receiver is used to receive standard time signal, and the CPU is used for data processing, which can output time data synchronously, thus ensuring high precision timing. This can not only solve the problems of time acquisition, but can truly realize global time calibration. This method has features of simple implementation means, high precision and large scope and there is no need of channel contact. It is free from the restriction of geographical and climate conditions. So it is the optimal clock synchronization method. This paper introduces the hardware of the GPS timing clock device based on STM32 and the supposed function. The main program and interrupt program flow chart and program introduction are presented.

关键词: 授时系统;STM32;GPS;中央处理单元

Key words: timing system;STM32;GPS;central proceeding section

中图分类号:TP273 文献标识码:A 文章编号:1006-4311(2016)05-0117-03

0 引言

在计算机革命的影响下,于20世纪70年代诞生了一批新的时间用户,这些用户需要精确的计算机时间。然而,计算机时钟同腕表、家里的挂钟等时钟相比,其性能要较弱,不可否认,计算机时钟的守时能力并不强。

由于很多计算机应用需要精确的计算机时间,而计算机时钟不良的性能给其带来了很多负面问题。比如用于金融系统的计算机,出于安全方面的考虑,必须精确的记录每次转账、交易的时间。对于电视基站、无线电台等同步通信系统而言,必须保证能够在正确的时间建立链路连接,这离不开授时系统的支持,它是实现仪器或者计算机与国际标准时间精确同步的关键。而要想使两者精确同步,通常的做法是采用原子钟,但是原子钟价格昂贵。本文介绍一种简单、相对廉价的时间同步方法,其利用全球定位系统提供的时间信号和秒脉冲,可以使接受装置的时钟与UTC(Universal Time Coordinated 世界统一时间)达到精确同步。

1 STM32的GPS授时系统设计的意义[1]

随着社会的不断发展和进步,人们的时间意识越来越强,因此对时间的精确度要求越来越高。现在有很多行业对时间的同步性要求也越来也高,而原子钟的成本又太高,所以,基于STM32的GPS高精度授時时钟将完全能够胜任这些时间要求较高的行业。

2 系统设计思想与方案的选择

本系统用一片STM32F103VBT6作为中央处理单元,STM32F103VBT6有128K的存储空间,系统框图如图1所示,由中央处理单元对接受到的GPS报文进行处理,提取相关时间和日期信息,将其显示在LCD上面,并通过光口和电口将信息发送给其他接受装置,为了方便系统的调试,在此系统模块的基础上增加了一个RS485接口,除了以上外设之外,此系统模块上还有JTAG程序烧写口和ISP接口。RS485接口主要用来方便调试程序。系统还有串口和光口,串口用来接收GPS报文,光口通过B码[2]向接受装置发送时间数据,,此外本系统还增设了一个电口以便符合接受装置尤其是电力装置的接口需求。GPS模块的1PPS引脚接到STM32的中断管脚上,以提高授时的精度。STM32自带一个实时运行的时钟。接收到的GPS时间信息是要为本系统校时,而不是直接为系统提供时间。这样系统内就始终有一个时钟在运行。

3 系统组成原理及硬件设计

3.1 系统的组成和原理

本系统主要采用单片机STM32做处理器。整个系统由单片机中央控制和运算模块、电源模块、GPS模块、光口和电口、LCD1602液晶显示模块、RS485接口组成。

3.2 硬件电路的设计

3.2.1 STM32F103VBT6单片机系统设计

单片机中央控制与运算模块负责接收GPS报文[3],读写I2C时钟,将GPS报文中的时间信息提取出来,经过数据运算后,在1PPS中断到来的时刻,将时间数据写入I2C时钟芯片,同时将时间和信息整合后送到屏幕显示。

3.2.2 电源电路的设计

由于系统中需要两种电压,例如STM32、串行电平转换芯片为3.3V供电,而GPS模块、液晶屏幕以及RS485接口则用5V供电。为了保证系统模块简洁化,系统模块直接采用外部5V电源供电,而3.3V输出采用SA1117。在电源电路中并入多个不同容值的电容所构成的滤波电路来抑制各种高频信号。使系统能够得到稳定可靠且低干扰的电源,保证系统的可靠运行。

3.2.3 GPS模块电路设计

GPS模块通过天线接收多颗卫星传来的定位及时间数据,通过串口将数据送出,并产生1PPS秒脉冲。该GPS接收模块采用GARMIN公司的最新的GPS OEM板[4],型号为GPS15XL-W。GPS OEM接收板在任意时刻能同时接收其视野范围里4~11颗卫星的信号,其内部硬件电路和软件通过对接收到的信息进行解码和处理,能从中提取并输出二种时间信号:一是间隔为1s的同步脉冲信号1PPS(电平为3V),其脉冲前沿与UTC的同步误差不超过1μs:二是包括在串口输出信息中的UTC(Coordinate Universal Time协调世界时)绝对时间(年、月、日、时、分、秒),它是与1PPS脉冲相对应的,如图2所示。

3.2.4 光/电口数据传输模块

本系统的一大特点就是可使用光纤对相关数据进行传输,因此用到光/电及电/光的转换模块。该模块分别用的是HFBR-1414[5]和 HFBR-2412进行电/光和光/电的转换。单片机所接收到的信号就可通过电/光转换进行传输。

3.2.5 LCD显示模块

显示模块采用金鹏公司的OCMJ4×8C,该模块采用ST7920芯片[6]。经过单片机处理的日期数据可显示在LCD上。

3.2.6 RS-485接口[7]的设计

系统采用RS-485通信。RS-485接口采用差分方式传输信号。可方便的通过PC对系统进行调试。

4 系统软件设计

根据上文所说的,一个GPS授时系统应对GPS卫星信号进行接收并且解调;然后根据相应的卫星导航电文计算标准的UTc时间;再通过相应的计算确定钟差,最终存储并调整本机的时钟。本系统为了调试方便用了RS-485进行数据传输并可通过液晶屏显示相应的结果。系统软件主要包括GPS信息提取、RS485的通信及LCD屏的显示。

在GPS的信息提取部分主要要提取报文时间信息。本系统用GPS用NMEA-0183通信协议中的RMC数据格式。■RMC帧结构为:

■GPRMC,<1>.<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>

数据格式中各字段含义见表1。

程序需提取的是它的字段一。程序运行后检测是否接受到报文,若没有则继续检测,若接收到报文则接受报文的所有数据;再继续检测是否接收完全,若没有则继续接收,若收到则返回继续检测是否有报文。流程图如图3所示。

所提取到的时间信息就可对GPS的时间进行校准。并把时间显示到LCD1602上,完成GPS的授时。

5 调试结果

经过对软、硬件的设计及实现,最后所完成的基于单片机的GPS高精度授时时钟在运行过程中性能良好。系统可以实现准确接收GPS报文,并对时间信息进行运算处理,在整10秒时刻为系统内运行的I2C时钟授时。单片机将读出的时间数据与读出的城市数据整合,送LCM显示。具有菜单功能,菜单共四项。实现了显示任意城市时钟、设任意城市时钟为默认、在GPS未接收到准确数据时手动调整默认城市时钟、闹钟調整和显示本地经纬度等功能。

6 结束语

目前市面上GPS的运用很广泛,如何使GPS精确的授时是一个很大的问题。本技术应用ST32可很好地解决这个问题。①用1pps输出加RS-485数据输出进行授时;②有电/光口可用光纤对数据进行传输。③精确度很高,可精确到ns级。可满足天文、地震等的要求。GPS OEM板会得到更加广泛的应用。

参考文献:

[1]徐文辉,王大为.实时在线式 GPS 授时系统原理与设计[J]. 哈尔滨工业大学学报,1998,30(5):30-33.

[2]杨保平,郭文峰,卜格鸿,等.基于 FPGA 的 IRIG—B 码解码器设计[J].装备指挥技术学院学报,2006,16(6):79-82.

[3]王杰.基于 GPS 的时间服务系统的研究[D].大连海事大学,2011.

[4]张超,郑勇.利用 GPS OEM 板进行精确授时的研究[J].信息工程大学学报,2001,2(4):50-53.

[5]王利桓.波特率自适应的 RS-485 光电收发器模块设计[J]. 2008.

[6]洪家平.中文图形显示控制芯片 ST7920 的原理与应用[J]. 国外电子元器件,2005(1):38-40.

[7]潘群,向军,王琳.RS-485 串行通信接口电路的设计与应用[J].常州工学院学报,2009(3):38-42.