一种基于GPS模块、嵌入式系统的计算机精确授时方法及其实现系统与流程

文档序号:11176320阅读:1244来源:国知局
一种基于GPS模块、嵌入式系统的计算机精确授时方法及其实现系统与流程

本发明涉及一种基于gps模块、嵌入式系统的计算机精确授时方法及其实现系统,属于计算机授时技术领域。



背景技术:

当今很多的应用场景需要依赖计算机精确的同步时间来完成,尤其在需要多机互联完成的任务中。例如,金融系统中需要进行国际跨行转账时,对于钱款的到账时间必须记录精确并且一致。计算机的计时通过晶体振荡器实现。晶体振荡器是从一块石英晶体上按一定方位角切下的薄片,当施加一定的电压后会以相对固定的频率发出电脉冲信号。计算机通过对脉冲信号计数实现了时间的计算。

由于加工工艺的限制和晶体震荡电路中阻容器件的精度等因素,晶振所产生的脉冲频率与理论值之间会存在一定的误差,随着时间的增加误差会被慢慢地积累放大,这也是计算机需要每隔一定时间进行时钟调节的原因。计算机在联网的时候可以通过ntp实现与国际时间的同步。

但是如果计算机工作环境中不允许连接互联网时就需要另外一种对时间进行调节的方法。gps卫星装载了高精度的铯原子钟可在全球范围内提供精确的utc时间码和秒定时脉冲。大部分对时间精度要求很高或是运行时无法连接互联网的场合都依赖gps系统实现时间的调节,可是由于计算机系统的非实时特性,即使gps可以提供很精确的时间信号,可是仍然无法保证计算机操作系统可以及时的进行时间调节,很难得到毫秒级时间调节的精确度。

中国专利文献cn104363069a公开了一种基于北斗卫星定位的网络授时系统及方法,通过基于gps/bd模块提供的精确时间信息,并结合内部rtc时钟,计算并修正出时间信息(年月日时分秒),通过tcp/ip网络传输模块,实时与网络上发起授时请求的客户端建立授时传输链路;根据客户端向服务器发出的请求,通过ntp协议与发送请求信号的网络客户端进行授时同步。但是,该专利存在授时客户端依赖网络的缺陷,通过网络连接服务器端才能完成授时,在很多户外作业的场景中,并没有网络连接的支持。

中国专利文献cn202995290u公开了一种基于卫星的时钟同步实现装置,特别涉及一种利用脉冲与串口相结合的基于卫星的时钟同步实现装置。卫星定位模块通过脉冲输出接口连接可编程电路或asic电路或处理器;卫星定位模块通过脉冲输出接口为中断信号,每个脉冲到来时,产生一次中断;可编程电路或asic电路或处理器通过串口输出接口得到卫星定位模块的时间信号;在中断中通过串口输出接口得到的更新的串口数据就是最新的同步时间,这样就能得到准确的时间。但是,该专利得到精准的时间后并没有讨论如何实现对授时设备进行精确授时的使用方式,在与授时设备的通讯过程中,会存在不可避免的时间延迟,导致授时设备授时的精确度降低。



技术实现要素:

针对利用gps进行系统时间调节时操作系统的非实时性造成的调节误差,本发明专利提出一种利用嵌入式系统辅助的方法提供计算机毫秒级误差精度的时间调节方法。

本发明还提供了上述计算机精确授时方法的实现系统。

本发明可以对无法利用互联网进行调时的计算机进行精确授时,授时精度可以达到毫秒级,满足计算机对精确时间同步工作的时间要求。

术语解释:

pps(pulsepersecond),就是每秒脉冲数,在gps模块中,gps秒脉冲信号pps每一秒钟发出一次,用来指示整秒的时刻,而该时刻通常是用gps秒脉冲的上升沿来标示。gps能给出utc时间,用户收到时是会有延迟,为了精确授时,引入pps信号上升沿来标示utc的整秒时刻,精度可以达到纳秒级,并且没有累积误差。

本发明的技术方案为:

一种基于gps模块、嵌入式系统的计算机精确授时方法,包括步骤如下:

gps模块实时产生utc时间码和pps信号,嵌入式系统的外部中断获取gps模块发出的pps信号,嵌入式系统与计算机系统进行通信,利用嵌入式系统计算通信过程延迟和计算机操作系统延迟获取精确时间。

本发明引入嵌入式系统,主要是由于嵌入式系统的实时性高、携带方便且成本低。嵌入式系统实时性高,利用嵌入式系统可以精准的记录由于计算机操作系统的非实时性所造成的时间延迟;嵌入式系统的成本低且方便携带,可以很方便地应用于野外等特殊的工作环境。本发明考虑通信过程延迟和计算机操作系统延迟的授时方式会更加精准。

根据本发明优选的,嵌入式系统与计算机系统进行通信,利用嵌入式系统计算通信过程延迟和计算机操作系统延迟获取精确时间,包括步骤如下:

gps模块每整秒发出一次pps信号,其精确度在ns级,通过配置gps模块使其每隔1秒发送一次utc时间码,利用嵌入式系统的外部中断获取gps模块发出的pps信号,设置定时器初始计数值为零,捕获到pps信号后立即开启定时器,记录并保存gps模块随后发出的utc时间码,嵌入式系统与计算机系统进行通信,通信包括第一次通信、第二次通信:

a、第一次通信:嵌入式系统将随后发出的utc时间码和空的延时数据发送给计算机系统,即发出授时请求,计算机系统在收到后,即计算机系统接收授时请求,识别到空的延时数据,不调节时间,立即反馈给嵌入式系统一个ack信号;嵌入式系统接收到ack信号后,记录定时器的当前计数值并关闭定时器,通过当前计数值计算出从嵌入式系统发出授时请求到计算机系统接收授时请求这段时间内通讯和软件时延总和,即得到时延时间,第一次通信结束;该过程的意义在于预估嵌入式系统与计算机通信过程的时延和计算机操作系统的非实时性造成的时延;

b、第二次通信:嵌入式系统得到时延时间后,立刻将时延时间加倍,然后存入通信数据帧utc时间码之后,再次发送给计算机系统,计算机系统收到该通信数据帧之后,分析出时延时间和utc时间,将时延时间加上utc整秒时间,进行系统授时,授时结束后反馈给嵌入式系统ack信号,完成授时。从而消除通讯过程和操作系统的非实时性对授时精确度所带来的影响。

由于操作系统的非实时性,授时程序受操作系统工作负载的波动较大,通过以上两次通讯过程,可以减少嵌入式系统与计算机操作系统之间由于通讯所造成的时延和操作系统调度对授时软件所造成的时延。

上述计算机精确授时方法的实现系统,包括gps模块、嵌入式系统、计算机,gps模块、嵌入式系统、计算机依次连接,所述嵌入式系统包括定时器;

所述gps模块产生utc时间码和pps信号;利用所述嵌入式系统的外部中断来捕获pps信号,捕获到pps信号后开启定时器,然后与计算机进行通信,通信过程由两次组成,第一次通信数据帧中延时时间为零,当计算机收到嵌入式系统发出的串口中断信号后立即返回嵌入式系统一条信息,该过程的意义在于预估嵌入式系统与计算机通信过程的时延和计算机操作系统的非实时性造成的时延;第二次通信将时延时间一同打包进入通信数据帧,所述计算机收到带有时延时间的数据后执行计算机的时间调节。

根据本发明优选的,所述gps模块、所述嵌入式系统、所述计算机通过串行通信接口依次连接。

根据本发明优选的,所述gps模块的型号为atk-neo-6mgps,所述嵌入式系统型号为stm32系统板,所述计算机系统为windowsxp系统。

本发明的有益效果为:

1、本发明可以实现精确计算机授时,精确度在ms级,是通过嵌入式设备和授时程序的配合实现的,通过特有的两次通讯手段,可以尽最大可能的降低通讯过程、软件执行所带来的延时影响,实现对计算机操作系统的精确授时。

2、本发明依赖的是嵌入式系统实现对计算机的授时,方便携带,环境适应性比较强,可以满足在野外没有网络连接的情况下对计算机的精准授时要求。

3、本发明嵌入式系统与计算机系统的通讯可以使用usb接口,很方便地应用于各种计算机硬件平台。

4、本发明授时程序做了接口封装,作为dll可以供其他应用程序调用,授时操作简单方便。

附图说明

图1为本发明计算机精确授时方法的实现系统的结构框图;

图2为基于gps模块、嵌入式系统的计算机精确授时方法中两次通信过程示意图。

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例1

一种基于gps模块、嵌入式系统的计算机精确授时方法,包括步骤如下:

(1)gps模块以1hz的频率每整秒发出一次pps信号,其精确度在ns级,通过配置gps模块使其每隔1秒发送一次utc时间码,gps模块与嵌入式系统通讯的串口属性设定为波特率9600bps、奇偶校验方式为none、数据位为8、停止位为1,并与嵌入式系统的串口1建立物理连接,pps信号中断连接嵌入式系统的外部中断引脚;

完成嵌入式系统中对高精度定时器的设定和外部中断的初始化操作,高精度定时器的定时频率为1mhz,外部中断设定为上升沿触发,并使能外部中断;

完成嵌入式系统中对第一次通信、第二次通信所使用的串口的初始化,串口1和串口2均设置为波特率9600bps、奇偶校验方式为none、数据位为8、停止位为1;设定串口1和串口2的缓存区,开启接收中断,准备数据接收;

(2)设置定时器初始计数值为零,捕获到pps信号后立即清空高精度定时器,并开启高精度定时器,接收随后gps通过串口1发送过来的utc时间码,与空的时延时间一起组成通讯帧,通过串口0发送到计算机的串口;

(3)计算机的授时程序会配置好相应的串口,一直等待嵌入式系统发送通讯帧,当收到的通讯帧中的时延时间为0时,立刻返回给嵌入式系统一个ack信号;

(4)嵌入式系统收到ack信号之后,会停止高精度定时器的计数,并停止定时器,读出计数值后计算出由于嵌入式系统与计算机通讯造成的时延和由于操作系统的非实时性造成的时延,将该时延时间加倍后与utc时间码一起再次通过串口0发送到计算机串口;两次通信过程如图2所示。

(5)计算机收到带有有效时延的通讯帧后,将utc时间码解析出来,加上时延时间后调整系统的时间。

本实施例通过实际的测量验证,对计算机系统的授时精度可以到达10ms以内。

实施例2

上述计算机精确授时方法的实现系统,如图1所示,包括gps模块、嵌入式系统、计算机,gps模块、嵌入式系统、计算机依次连接,嵌入式系统包括定时器;gps模块、嵌入式系统、计算机通过串行通信接口依次连接。gps模块的型号为atk-neo-6mgps,嵌入式系统型号为stm32系统板,计算机系统为windowsxp系统。

gps模块产生utc时间码和pps信号;利用嵌入式系统的外部中断来捕获pps信号,捕获到pps信号后开启定时器,然后与计算机进行通信,通信过程由两次组成,第一次通信数据帧中延时时间为零,当计算机收到嵌入式系统发出的串口中断信号后立即返回嵌入式系统一条信息,该过程的意义在于计算通信过程和操作系统的时延;第二次通信将延时时间一同打包进入通信数据帧,所述计算机收到带有延时时间的数据后执行计算机的时间调节。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1