一种嵌入式gps终端的快速高精度授时方法

文档序号:1754768 发布日期:2019-11-29 浏览:37次 >En<

阅读说明:本技术 一种嵌入式gps终端的快速高精度授时方法 (A kind of quick high accuracy time service method of Embedded GPS terminal ) 是由 吴允平 王廷银 苏伟达 郎毅 李汪彪 张国栋 于 2018-05-22 设计创作,主要内容包括:本发明涉及一种嵌入式GPS终端的快速高精度授时方法,由GPS模块、微处理器、电源模块组成,电源模块分别和GPS模块、微处理器相连,微处理器和GPS模块相连。微处理器有一个定时器1,当进入定时器1中断时,对GPS数据进行解析处理,获得UTC时间及设置IsGPS_Time;还有一个定时器0中断计数器T&lt;Sub&gt;count0&lt;/Sub&gt;,当进入INT中断服务时,读取的定时器0计数值和T&lt;Sub&gt;count0&lt;/Sub&gt;用于计算时间长度T&lt;Sub&gt;pps&lt;/Sub&gt;。当满足设定条件时就将GPS UTC时间给RTC的相应单元,同时将RTC的毫秒、微秒清零。采用本发明的有益效果是:无需增加其他辅助设备,每秒实现授时操作,具有快速、高精度的应用效果。(The present invention relates to a kind of quick high accuracy time service methods of Embedded GPS terminal, are made of GPS module, microprocessor, power module, and power module is connected with GPS module, microprocessor respectively, and microprocessor is connected with GPS module.Microprocessor has a timer 1, when entering the interruption of timer 1, carries out dissection process to GPS data, obtains UTC time and setting IsGPS_Time;There are one 0 interrupt counter T of timer count0 , when entering INT interruption service, 0 count value of timer and T of reading count0 For calculating time span T pps .When meeting setting condition just by GPS UTC time to the corresponding units of RTC, while the millisecond of RTC, microsecond being reset.Using the beneficial effects of the present invention are: without increasing other ancillary equipments, realization time service operation per second has quick, high-precision application effect.)

一种嵌入式GPS终端的快速高精度授时方法

技术领域

本发明涉及一种卫星授时领域,特别是一种嵌入式GPS终端的快速高精度授时方法。

背景技术

时间,是物质存在和运动的基本特征之一,是国际单位制七个基本物理量其中之一,是目前测量精度最高的一个基本物理量;精确时间更是推动高新技术发展的铺路石,是人类各项活动顺利开展的重要保证。

在人类进入信息社会后,物联网的层次推进应用,越来越多的设备分布在各个重要节点,然后又在中心汇聚,为行业的大数据服务提供数据依据,原本看起来很难收集和使用的数据现在很容易地用来发挥巨大作用,这些来自分布式设备的大数据正逐步为人类创造更多的价值。在整个系统中,必须保障全局时间的严格同步,如果系统中的各分布式设备不具备统一的时钟基准,那么得到的测量结果由于时钟差异将无法反映出真实情况,由于各数据无法反应在哪个时刻获取,它们之间就没有确定的关联性,最终这些数据也就无法发挥出应有的效果。例如,精确的时间同步对于涉及国家经济社会安全的诸多关键基础设施至关重要,如通信系统、电力系统、金融系统等(移动通信需要精密的时间同步以确保基站的同步运行、电力网需要精密的时间同步以有效传输和分配电力、金融系统需要精密的时间同步以保障经济的正常运行),高精度的时间服务系统已经成为衡量一个国家科技水平的最核心技术指标。

GPS接收机通过解码卫星信号输出准确的同步时标PPS信号及NMEA-0813协议报文(报文中包含了UTC时间、位置等信息),随着GPS接收机集成度越来越高,价格越来越低,嵌入式终端解析GPS接收机输出的NMEA-0813协议报文获得UTC时间已是本领域常用的技术手段。通常,PPS信号精度可达到纳秒级,NMEA-0813协议报文是在产生高电平PPS信号并保持几十毫秒时长后输出的,在授时精度要求较高的应用场合,往往采用结合PPS信号或其他辅助手段等来实现精确授时。2002年12月曾祥君、尹项根、K.K.Li等在《中国电机工程学报》发表《GPS时钟在线监测与修正方法》,指出了GPS时钟误差的影响因素,分析了GPS时钟在重要工业领域中的应用需解决两个问题:GPS时钟的实时监测和误差补偿,文章还采用高精度晶振对GPS时钟进行监测与校正,实现了一种高精度时钟的产生方法;文献CN101202545B将GPS的秒脉冲信息和绝对时间信息传递给录取控制板并校正控制板的内部时钟,以满足精度要求不高于为1×10-4秒的应用场合,由此实现了一种高精度数据录取授时仪;文献CN101430372B提供了一种基于全球定位系统接收机的芯片级授时与同步方法及其设备,其一个实施例在使用普通温度补偿晶振(0.5PPM)的情况下,实现200ns级别的授时精度和50ns级别的同步精度;文献CN100565390C为保证授时的精度,采用PPS信号触发中断,把内部的当前时间信息全部存储起来,当把GPS发送的报文信息全部解码出来后再把解码得到的时间信息加上触发后到解码完成所用的时间即可保证MCU内部的时钟与GPS时钟保持比较高度的一致;文献CN105281859B发明的高精度授时方案,在不需增加其他辅助设备前提下,在每分钟零秒时刻实现RTC时钟和GPS UTC时钟同步,达到较精确的授时效果。

近年来,物联网和云计算(服务)的发展给各行业带来的变化有目共睹,作为支撑技术之一的时钟同步技术,已成为当前分布式应用系统研究的一大热点,研究者们越来越重视在前端分布式终端实现SOE(Sequence of Events,事件顺序记录)功能,精确记录和报告预先配置的传感器、状态变化的开关量信号等,为对象的事故分析提供明确、精准有效的线索和证据,因此,在现有嵌入式GPS终端构成基础上如何实现高精度的快速授时,仍然是一件很有价值的研究。

发明内容

本发明的目的是在现有嵌入式终端构成基础上,围绕GPS的PPS信号、解码NMEA-0813协议报文实现的一种授时方法,满足高精度授时的快速要求。

为达到上述目的,本发明的技术方案是:

一种嵌入式GPS终端,由微处理器、GPS模块、电源模块组成,电源模块分别和GPS模块、微处理器相连,微处理器和GPS模块相连,其中GPS模块的PPS信号引脚和微处理器具有中断功能的INT引脚相连,且设定INT引脚的中断优先级别为最高;GPS模块的UART引脚和微处理器的UART引脚相连,且微处理器由此通道以中断方式接收GPS模块输出的NMEA-0813协议报文,UART接收一个字节所需时间为TUART,单位为毫秒;微处理器,内部设置有一个RTC时钟功能单元,由年、月、日、时、分、秒、毫秒、微秒组成,本发明的技术方案特征是;

1)所述微处理器,设置有定时器0和定时器0中断计数器Tcount0,定时器0初始值为0,最小计数周期为Tf,通常和晶振频率密切相关,单位为微秒,定时器0的中断周期为216×Tf;定时器0中断计数器Tcount0,记录定时器0的中断次数;当定时器0中断发生时,定时器0中断计数器Tcount0进行累计加一。

所述微处理器,设置有一个定时器1,设定时器1中断周期的时间为T1毫秒,与UART串口接收一个字节所需时间相关,为:T1=n×TUART,n范围为:1.1~50,T1范围为1~50毫秒。

所述微处理器,有一个GPS数据接收缓存区,当微处理器的UART串口中断一次接收一个字节,接收的内容顺序保存GPS数据接收缓存区,每次接收中断都会重新设置定时器1的初始值、设置开启定时器1运行和设置中断使能。

所述微处理器,有一个GPS数据时间解析有效标志IsGPS_Time,当进入定时器1中断服务程序时,首先关闭定时器1中断使能,对GPS数据接收缓存区中的数据,按照NMEA-0813协议规范进行解析处理,获得报文中的UTC时间;如果获得了有效的GPS UTC时间,就设置IsGPS_Time为True,否则设置IsGPS_Time为False。

所述微处理器,当进入由GPS模块的PPS信号触发的INT中断服务程序时,首先关闭定时器0,读取定时器0的计数值临时保存到Timer0;然后计算上一次中断到本次中断的时间长度Tpps,单位为微秒,计算Tpps的公式为:(Tcount0×216+Timer0)×Tf;最后再进行授时同步判断与操作,即当满足999990<Tpps≤1000010且IsGPS_Time=True,就将GPS UTC的年、月、日、时、分、秒赋值给RTC的相应单元,同时将RTC的毫秒、微秒清零。

与现有技术相比,本发明的有益效果是:在现有嵌入式终端构成基础上,无需增加其他辅助设备,在微处理器的定时器1中断服务程序中判断GPS报文接收完成后进行解码的,在GPS的PPS信号触发微处理器的INT中断服务中依据GPS报文解码结果决定是否授时操作的,具有快速、高精度的应用效果。

本发明的目的、特征及优点将通过实施例并结合附图进行详细说明。

附图说明

图1是本发明的硬件平台结构图。

图2是本发明的定时器1中断服务流程图。

图3是本发明的PPS信号中断服务流程图。

图4是本发明的定时器0中断服务流程图。

图5是本发明的串口接收中断流程图。

具体实施方式

图1中,101是GPS模块,102是微处理器,103是电源模块,GPS模块(101)的PPS引脚、UART引脚分别与微处理器(102)的INT引脚、UART引脚连接,电源模块(103)分别与GPS模块(101)和微处理器(102)连接。

为了更详细的描述本发明,下面结合图2、图3、图4和图5作进一步说明。

步骤201:进入定时器1中断服务程序,执行步骤202;

步骤202:关闭定时器1中断,对GPS接收缓冲区解析,执行步骤203;

步骤203:判断检测缓存区中数据是否有0x0D、0x0A,如果是则执行步骤204,否则执行步骤209;

步骤204:判断校验是否正确,如果是则执行步骤205,否则执行步骤209;

步骤205:判断报文类型是否为GPRMC,如果是则执行步骤207,否则执行步骤206;

步骤206:判断报文类型否是为GPGGA,如果是则执行步骤207,否则执行步骤209;

步骤207:判断GPS是否有效且获取UTC时间,如果是则执行步骤208,否则执行步骤209;

步骤208:设置IsGPS_Time为True,执行步骤210;

步骤209:设置IsGPS_Time为False,执行步骤210;

步骤210:定时器1中断服务结束;

步骤301:进入PPS信号中断服务,执行步骤302;

步骤302:关闭定时器0,读取定时器0计数值并保存,设置定时器0初值为0,设置定时器0开启运行,执行步骤303;

步骤303:根据公式:Tpps=(Tcount0×216+Timer0)×Tf,计算两次PPS信号中断时长Tpps,执行步骤304;

步骤304:判断Tpps是否大于999990且小于等于1000010,如果是则执行步骤305,否则执行步骤307;

步骤305:判断IsGPS_Time变量是否为True,如果是则执行步骤306,否则执行步骤307;

步骤306:用GPS UTC时间赋值到RTC,将毫秒、微秒单元清零,执行步骤307;

步骤307:清除串口接收缓冲区:

步骤308:PPS信号中断服务结束;

步骤401:进入定时器0中断服务;

步骤402:Tcount0值加一;

步骤403:定时器0中断服务结束;

步骤501:进入串口接收中断服务程序,执行步骤502;

步骤502:读取一个字节,保存到GPS数据接收缓存区,接收缓冲区指针后移,重新设置定时器1初值,设置定时器1启动,设置定时器中断使能;

步骤503:串口接收中断服务结束。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应该理解,我们所描述的具体实施例只是说明性的,而不是用于对本发明范围的限定,任何受本发明技术路线启发所作的等效修饰以及变化,都应当涵盖在本发明权利要求所保护的范围内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种动态可配置的冗余IO模块的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!