一种高精度的GPS同步授时系统及方法与流程

文档序号:17921878发布日期:2019-06-15 00:10阅读:768来源:国知局
一种高精度的GPS同步授时系统及方法与流程

本发明涉及gps授时系统技术领域,具体涉及一种基于gps的高精度同步授时系统及方法,可用于多设备间的高精度同步控制,尤其是涉及检测系统中各单元装置高精度时间同步信息的精确实现,时钟精度可以达到微秒级。



背景技术:

gps授时系统是针对自动化系统中的计算机、控制装置等进行校时的高科技产品,授时系统从卫星上获取标准的三维位置,精确时间等导航信息,将这些信息通过各种接口传送给自动化系统中需要时间信息的计算机设备、保护装置、故障录波器、事件顺序记录装置、安全自动装置等,进而实现整个系统的时间同步。

随着计算机和网络通信技术的飞速发展,自动化系统数字化、网络化的时代已经到来。这一方面为各控制和信息系统之间的数据交换、分析和应用提供了更好的平台,另一方面对各种实时和历史数据时间标签的准确性也提出了更高的要求。

众所周知,计算机的时钟一般采用石英晶体振荡器。晶振体连续产生一定频率的时钟脉冲,计数器则对这些脉冲进行累计得到时间值。由于时钟振荡器的脉冲受环境温度、匀载电容、激励电平以及晶体老化等多种不稳定性因素的影响,时钟本身不可避免地存在误差。例如,某精度为±20ppm的时钟,其每小时的误差为:(1×60×60×1000ms)×(20/10.6)=72ms,一天的累计误差可达1.73s;若其工作的环境温度从额定25℃变为45℃,则还会增加±25ppm的额外误差。可见,分布式控制系统(distributedcontrolsystem,dcs)中的时钟若不经定期同步校准,自由运行一段时间后的误差可达到系统应用所无法忍受的程度。

全球定位系统(globalpositioningsystem,gps),作为一种具有全方位、全天候、全时段、高精度的卫星导航系统,搭载了高稳定高精准的原子钟,可以作为其他设备的时频标准。gps能够为全球用户提供低成本、高精度的三维位置、速度和精确定时等导航信息,实用性强。其中,gps接收机能接收到可用于授时的准确至纳秒级的时间信息。gps具有精准度高、性价比高、抗干扰能力强、使用方便等特点,是卫星通信技术在导航领域的应用典范,它极大地提高了地球社会的信息化水平,有力地推动了数字经济的发展。

随着晶振制造技术的发展,目前在要求高精度时钟的应用中,已有各种高稳定性晶振体可供选用,如tcxo(温度补偿晶振)、vcxo(压控晶振)、ocxo(恒温晶振)等。其中,压控晶体振荡器又叫做压控晶振(vcxo),主要由石英谐振器、变容二极管和振荡电路组成,其工作原理是通过控制电压来改变变容二极管的电容,从而“牵引”石英谐振器的频率,以达到频率调制的目的。压控晶振可用控制电压将频率进行小范围调整,控制电压范围一般为0v至2v或0v至3v。vcxo的调谐范围为±100ppm至±200ppm。此处,ppm的全称为partpermillion,意指百万分之一的频率跳动值。因vcxo具有传输性能好、抗干扰性强、节省功率等优点,大多用于锁相技术、频率负反馈系统及频率调制,已是通信机、移动电话、寻呼机、全球定位系统(gps)等众多电子应用系统中必不可少的关键部件。

由于受到跟踪的卫星数目、卫星钟差、传导距离、电磁干扰和接收机性能等因素影响,gps接收机输出的时间码存在一定的随机误差ε,ε服从正态分布ε~n(0,σ2),但是没有累积误差。而压控晶振时钟信号的随机误差较小,稳定性强,不过由于器件老化、短期扰动和外界环境等一些因素的影响,存在频率漂移现象,具有较大的累积误差。如果压控晶振长期不间断的运行,频率将无法满足工作所需的精度与稳定度,因此需要通过实时的自动调控压控端电压来进行频率校准。根据gps时钟信号和压控晶振时钟信号精度互补这一特性,通过对系统频率的模拟校正以及数字校正,得到高稳频率信息,并将本地时间同步到标准时间,以维持短期和长期的时间精度和稳定性。



技术实现要素:

本发明为了克服上述现有技术的不足,提出了一种高精度的gps同步授时系统及方法。

本发明的技术方案为:

一种高精度的gps同步授时系统,包括:

gps天线,用于接收卫星所发射的电磁波信号并转变成电压或电流信号发送给精密授时模块处理;

精密授时模块,一方面用于接收gps天线发送的电压或电流信号,再把原始观测数据传递给arm处理器;另一方面通过uart异步通信接收arm处理器发送的数据,并进行数据处理以及作出相应的信息反馈,同时根据自身的extint0和extint1引脚电平变化,向所述arm处理器发送其引脚电平变化时的gps时间码;

arm处理器,通过控制精密授时模块的引脚电平、解析所述精密授时模块发送的gps时间码与本地时间对时,以进行对系统主频的模拟校正以及数字校正,使得系统得到高稳频率信息,并将本地时钟同步到标准时间,以维持短期和长期的时间精度和稳定性;

外部有源的压控晶振器,用于提供系统的时钟源,并通过实时地调控其压控端的输入电压,使其输出频率随之改变,进行系统频率校准。

优选地,所述压控晶振器型号为tg5032can;所述精密授时模块型号为neo-lea-m8t。

优选地,所述arm处理器型号为stm32l4+单片机。

上述方案对于系统的同步授时,arm处理器通过控制neo-lea-m8t精密授时模块的引脚电平,解析neo-lea-m8t精密授时模块发来的gps时间码,与本地有源的压控晶振器tg5032can分频的arm处理器的定时器对时,根据对时误差调整压控晶振的输入电压,使其输出频率随之改变,对系统主频进行模拟校正;再者,系统根据对时误差调整定时器的分频因子,对系统主频进行数字校正。系统通过模拟校正以及数字校正,使得系统的频率达到目标频率,实现系统时间的精确同步,并将本地时间同步到标准时间,保证短期和长期的时间精度和稳定性,时间误差稳定在1us以内。

一种高精度的gps同步授时方法,包括步骤:

步骤1、初始化硬件设备:对硬件平台上电,初始化串口和子系统硬件平台;

步骤2、配置neo-lea-m8t精密授时模块:arm处理器通过uart异步通信向精密授时模块发送数据,设置精密授时模块的参数,使授时模块因extint1引脚电平变化而发送对应的引脚电平变化时的gps时间码,并保存配置;

步骤3、本地时间同步授时:arm处理器通过控制精密授时模块的extint1引脚电平,使得精密授时模块发送其引脚电平变化时的gps时间码,对所述gps时间码进行解析并与extint1引脚电平变化时的本地时间对时,调整本地时间,使其同步到标准的gps时间;

步骤4、计算本地时间:根据所述arm处理器的定时器tim2和lptim1各自计数值计算本地时间的微秒,其中,本地时间的秒由lptim1的1秒中断累加,小时、分钟根据累加的秒数计算,年、月、日从所述精密授时模块发送的gps时间码解析获取;

步骤5、系统主频的模拟校正:所述arm处理器通过控制精密授时模块的引脚电平,使精密授时模块发送其引脚电平变化时的gps时间码,对所述gps时间码进行解析并与extint1引脚电平变化时的本地时间对时,根据对时误差调整外部有源的压控晶振器的输入电压,使其输出频率随之改变,对系统主频进行模拟校正;

步骤6、系统主频的数字校正:arm处理器通过控制neo-lea-m8t精密授时模块的引脚电平,使得模块发送其引脚电平变化时的gps时间码,对所述gps时间码进行解析并与extint1引脚电平变化时的本地时间对时,根据对时误差调整arm处理器定时器的分频因子,对系统主频进行数字校正;

步骤7、重复步骤4到步骤6,使得系统的频率达到目标频率,实现系统时间的精确同步,将本地时间同步到标准时间。

优选地,所述的步骤3具体包括:

arm处理器通过控制授时模块的extint1引脚电平,检测精密授时模块发送的时间数据是否有效;待精密授时模块正常发送有效的时间数据后,在定时器lpitim1发生1秒中断时,所述arm处理器通过控制精密授时模块的extint1引脚电平,使得精密授时模块发送其引脚电平变化时的gps时间码,所述arm处理器解析gps时间码,并与精密授时模块引脚电平变化时的本地时间对时,根据时间误差调整本地时间,使其同步到标准的gps时间。

优选地,步骤4中,计算本地时间的微秒的公式如下:

us=lptim1_scale*lptim1_cnt+tim2_scale*tim2_cnt

其中,变量lptim1_scale是lptim1的最小计时刻度,为lptim1实际时钟频率的倒数,比如在我们的系统中,lptim1的实际时钟由lse旁路模式提供32khz,则该变量的实际值为31.25us;lptim1_cnt为lptim1计数器的实际计数值,比如在我们的系统中,lptim1最终输出频率为1hz,所以lptim1的最大计数值为32000,则该变量取值范围为0~(32000-1);变量tim2_scale代表tim2的最小计时刻度,为tim2实际时钟频率的倒数,比如在我们的系统中,tim2的实际时钟为32mhz,则该变量的实际值为0.03125us;tim2_cnt为tim2的实际计数值,比如,tim2需要输出32khz,其最大计数值为1000,所以实际计数值范围为0~(1000-1)。

优选地,所述步骤5具体包括:

所述arm处理器通过控制精密授时模块的extint1引脚电平,使得模块发送其引脚电平发生最新的上升沿以及最新的下降沿变化时的gps时间码,对所述gps时间码进行解析,并与该精密授时模块引脚电平发生最新的上升沿以及最新的下降沿变化时的本地时间对时,根据对时误差计算出压控晶振器此次时间段的ppm值与理论ppm值的差值δppm,再根据差值δppm调整压控晶振器的输入电压,使其输出频率随之改变,完成对系统主频的模拟校正,其中,所述ppm值由实际频率减去目标频率且将小数点往后移六位数得到,所述理论ppm值为0。

优选地,所述根据对时误差计算出外部有源的压控晶振器此次时间段的ppm值与理论ppm值的差值δppm,再根据差值δppm调整外部有源的压控晶振器的输入电压步骤中,本地时钟的对时误差包括频率误差以及时间累积误差,所述频率误差以及时间累积误差均可转换为压控晶振此次时间段的ppm值与理论ppm值的差δppm:

所述频率误差转换为δppm的公式如下:

上式合项计算得,

上式中,f0表示理论上压控晶振器的输出频率,即目标频率,δf1表示压控晶振器的实际频率与目标频率之间的频率差,n1表示(k-1)时刻到k时刻的计数周期个数,tg(k)表示k时刻的gps时间,tg(k-1)表示(k-1)时刻的gps时间,tl(k)表示k时刻的本地时间,tl(k-1)表示(k-1)时刻的本地时间,δppm1表示在频率误差方面,压控晶振器此次时间段的ppm值与理论ppm值的差;

所述时间累积误差折算到频率误差,其转换为δppm的公式如下:

则在k时刻之后通过n2个计数周期的计时来补偿时间累积误差;取n2=n1,表示用后续相同的时间把累积误差补偿完毕;

上式合项计算得,

上式中,f0表示理论上压控晶振器的输出频率,即目标频率,δf2表示累计一段时间后压空晶振器的实际输出频率与目标频率之间的频率差,n2表示在k时刻之后补偿时间累积误差的计数周期个数,δppm2表示在时间累积误差方面,压控晶振器此次时间段的ppm值与理论ppm值的差;

其中,压控晶振器输入电压控制频率的公式如下:

vdac(k)=vdac(k-1)+δvdac

上式中,δvdac为此次压控晶振器输入电压的变化量,单位为mv,vdac(k-1)为压控晶振器上一次的输入电压,单位为mv,vdac(k)为压控晶振器此次的输入电压,单位为mv,δppm表示压控晶振器此次时间段的ppm值与理论ppm值的差,s为压控晶振器的灵敏度系数;

综上所述,压控晶振器输入电压通过如下公式求得:

从而得到:

上式中,δvdac为此次压控晶振器输入电压的变化量,vdac(k-1)为压控晶振器上一次的输入电压,vdac(k)为压控晶振器此次的输入电压,δppm表示在对时误差方面,压控晶振器此次时间段的ppm值与理论ppm值的差。

优选地,所述步骤6具体包括:

arm处理器通过控制neo-lea-m8t精密授时模块的extint1引脚电平,使得模块发送其引脚电平发生最近的上升沿以及最近的下降沿变化时的gps时间码,对所述gps时间码进行解析,并与该精密授时模块引脚电平发生最新的上升沿以及最新的下降沿变化时的本地时间对时,根据对时误差计算出压控晶振器此次时间段的ppm值与理论ppm值的差δppm,再根据差值δppm调整所述arm处理器的定时器tim2的分频因子,使tim2的输出频率随之改变,完成对系统主频的数字校正,其中,所述ppm值由实际频率减去目标频率且将小数点往后移六位数得到,所述理论ppm值为0。

优选地,所述根据对时误差计算出压控晶振器此次时间段的ppm值与理论ppm值的差δppm,再根据差值δppm调整所述arm处理器的定时器tim2的分频因子的步骤中,所述定时器tim2的分频因子通过如下公式求得:

arr(k)=arr(k-1)+δarr

上式中,δarr为此次定时器tim2的分频因子的变化量,arr(k-1)为上一次定时器tim2调整的分频因子,arr(k)为此次定时器tim2调整的分频因子,δppm为压控晶振器此次时间段的ppm值与理论ppm值的差,t为定时器tim2的一个计数周期。

相比现有技术,本发明本发明提供的高精度的gps同步授时系统及方法可用于多设备间高精度时间的同步控制,尤其是涉及检测系统中各单元装置高精度时间信息的精确实现,时钟精度可以达到微秒级,时间误差稳定在1us以内。本发明具有低功耗、质量轻巧、研制周期短、环境适应性强等特点。

附图说明

图1为高精度的gps同步授时系统的结构框图。

图2为高精度的gps同步授时系统的工作流程图。

图3为arm处理器的定时器时钟配置图。

图4为本地时间同步授时的示意框图。

图5为neo-lea-m8t精密授时模块的gps时间码解析流程图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步的说明。

实施例

如图1所示,一种高精度的gps同步授时系统,包括:

gps天线,用于接收卫星所发射的电磁波信号并转变成电压或电流信号发送给精密授时模块处理;

精密授时模块,其型号为neo-lea-m8t,一方面用于接收gps天线发送的电压或电流信号,再把原始观测数据传递给arm处理器;另一方面通过uart异步通信接收arm处理器发送的数据,并进行数据处理以及作出相应的信息反馈,同时根据自身的extint0和extint1引脚电平变化,向所述arm处理器发送其引脚电平变化时的gps时间码;

arm处理器,采用stm32l4+单片机,通过控制精密授时模块的引脚电平、解析所述精密授时模块发送的gps时间码与本地时间对时,以进行对系统主频的模拟校正以及数字校正,使得系统得到高稳频率信息,并将本地时钟同步到标准时间,以维持短期和长期的时间精度和稳定性;

外部有源的压控晶振器,型号为tg5032can,用于提供系统的时钟源,并通过实时地调控其压控端的输入电压,使其输出频率随之改变,进行系统频率校准。

如图2所示,一种高精度的gps同步授时方法,包括步骤:

步骤1、初始化硬件设备:

对硬件平台上电,初始化串口和子系统硬件平台。硬件平台基于stm32l4+,首先配置系统时钟为96mhz,使用外部的压控晶振器tg5032can作为hse的旁路模式输入。配置定时器2的输出频率为32khz,并用定时器tim2的通道1作为lse的旁路模式输入。配置低功耗定时器1以lse作为时钟源,输出频率为1hz,并产生1秒中断。分别初始化串口1、2,串口1用来发送数据信息到neo-lea-m8t精密授时模块以及读取neo-lea-m8t精密授时模块的信息,串口2用来连接max232端口进行电脑调试或者读取数据。初始化dac以控制压控晶振器的输入电压。最后控制neo-lea-m8t精密授时模块的extint0引脚电平,开启neo-lea-m8t精密授时模块,如图3所示。

步骤2、配置neo-lea-m8t精密授时模块:

arm处理器通过uart异步通信向neo-lea-m8t精密授时模块发送数据,设置授时模块的波特率等参数,使授时模块因extint1引脚电平变化而发送对应的引脚电平变化时的gps时间码,防止授时模块发送不必要的时间码数据,以防干扰到对有效的gps时间码的解析,并保存配置的参数及工作模式。

步骤3、本地时间同步授时:

arm处理器通过控制授时模块的extint1引脚电平,检测neo-lea-m8t精密授时模块发送的时间数据是否有效;待授时模块正常发送有效的时间数据后,在定时器lpitim1发生1秒中断时,arm处理器通过控制授时模块的extint1引脚电平,使得模块发送其引脚电平变化时的gps时间码,arm处理器解析gps时间码,并与模块引脚电平变化时的本地时间对时,根据时间误差调整本地时间,使其同步到标准的gps时间,如图5所示。

步骤4、计算本地时间:

根据arm处理器的定时器tim2和lptim1的各自计数值计算本地时间的微秒,秒由lptim1的1秒中断累加,每60秒对分钟数加一,每60分钟对小时数加一;年、月、日从neo-lea-m8t精密授时模块发送的gps时间码解析而获取。

本地时间的微秒计算公式如下:

us=lptim1_scale*lptim1_cnt+tim2_scale*tim2_cnt

=31.25*lptim1_cnt+0.05*tim2_cnt

其中,lptim1_cnt为lptim1计数器的实际计数值,比如,lptim1最终输出频率为1hz,所以lptim1的最大计数值为32000,则该变量取值范围为0~(32000-1);tim2_cnt为tim2的实际计数值,比如,tim2需要输出32khz,其最大计数值为1000,所以实际计数值范围为0~(1000-1)。

步骤5、系统主频的模拟校正:

arm处理器通过控制neo-lea-m8t精密授时模块的extint1引脚电平,使得模块发送其引脚电平发生最新的上升沿以及最新的下降沿变化时的gps时间码,如图4所示,对所述gps时间码进行解析,并与该模块引脚电平发生最新的上升沿以及最新的下降沿变化时的本地时间对时,根据对时误差计算出压控晶振器此次时间段的ppm值与理论ppm值的差δppm,再根据δppm调整压控晶振器的输入电压,使其输出频率随之改变,完成对系统主频的模拟校正。

以实际频率减去目标频率且将小数点往后移六位数即是ppm值,压控晶振器的理论ppm值为0。

本地时钟的对时误差包括频率误差以及时间累积误差,但两者均可以转换为压控晶振器此次时间段的ppm值与理论ppm值的差δppm。

频率误差转换为δppm的公式如下:

上式合项计算得:

上面所述,f0表示理论上压控晶振器的输出频率,即目标频率,δf1表示压控晶振器的实际频率与目标频率之间的频率差,n1表示(k-1)时刻到k时刻的计数周期个数,tg(k)表示k时刻的gps时间,tg(k-1)表示(k-1)时刻的gps时间,tl(k)表示k时刻的本地时间,tl(k-1)表示(k-1)时刻的本地时间,δppm1表示在频率误差方面,压控晶振器此次时间段的ppm值与理论ppm值的差。

时间累积误差可折算到频率误差,其转换为δppm的公式如下:

则在k时刻之后通过n2个计数周期的计时来补偿时间累积误差。取n2=n1,表示用后续相同的时间把累积误差补偿完毕。

上式合项计算得:

上面所述,f0表示理论上压控晶振器的输出频率,即目标频率,δf1表示压控晶振器的实际频率与目标频率之间的频率差,n1表示(k-1)时刻到k时刻的计数周期个数,n2表示在k时刻之后补偿时间累积误差的计数周期个数,tg(k)表示k时刻的gps时间,tg(k-1)表示(k-1)时刻的gps时间,tl(k)表示k时刻的本地时间,tl(k-1)表示(k-1)时刻的本地时间,δppm2表示在时间累积误差方面,压控晶振器此次时间段的ppm值与理论ppm值的差。

压控晶振器tg5032can的供电电压vcc为3.3v,其理论ppm值为0,理论输出频率为30.72mhz,其频率控制范围为±5*10-6~±10*10-6mhz,对应的输入电压范围为1.65v±1v,所以其电压控制频率的灵敏度为(±5ppm~±10ppm)/2v。

压控晶振器的灵敏度系数s为:

压控晶振器输入电压控制频率的公式如下:

vdac(k)=vdac(k-1)+δvdac

上面所述,δvdac为此次压控晶振器输入电压的变化量,单位为mv,vdac(k-1)为压控晶振器上一次的输入电压,单位为mv,vdac(k)为压控晶振器此次的输入电压,单位为mv,δppm表示压控晶振器此次时间段的ppm值与理论ppm值的差。

综上所述,压控晶振器输入电压与对时误差的公式如下:

从而得到:

上面所述,δvdac为此次压控晶振器输入电压的变化量,vdac(k-1)为压控晶振器上一次的输入电压,vdac(k)为压控晶振器此次的输入电压。δppm表示在对时误差方面,压控晶振器此次时间段的ppm值与理论ppm值的差。

步骤6、系统主频的数字校正:

arm处理器通过控制neo-lea-m8t精密授时模块的extint1引脚电平,使得模块发送其引脚电平发生最近的上升沿以及最近的下降沿变化时的gps时间码,对此进行解析,并与该模块引脚电平发生最近的上升沿以及最近的下降沿变化时的本地时间对时,根据对时误差计算出压控晶振器此次时间段的ppm值与理论ppm值的差δppm,再根据δppm调整arm处理器的定时器tim2的分频因子,使tim2的输出频率随之改变,完成对系统主频的数字校正。

假设一个压控晶振器输出amhz,它的ppm值为bppm,则压控晶振器1秒输出am个脉冲。

若压控晶振器的1秒里的时间误差δt为:

由上述式子可知,1秒里有n个us时间差,ppm值即为nppm。

所述定时器tim2的频率为32mhz,分频因子即自动重装载值,其数值范围为(1000-1),定时器tim2的一个计数周期t为:

定时器tim2的分频因子与对时误差的公式如下:

arr(k)=arr(k-1)+δarr

上面所述,δarr为此次定时器tim2的分频因子的变化量,arr(k-1)为上一次定时器tim2调整的分频因子,arr(k)为此次定时器tim2调整的分频因子,δppm为外部压控晶振器此次时间段的ppm值与理论ppm值的差。

步骤7、最后重复步骤4到步骤6,使得系统的频率达到目标频率,实现系统时间的精确同步,将本地时间同步到标准时间。

以上所述,仅为本发明专利较佳的实施例子,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。

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