一种基于gps秒脉冲的时钟源装置及其控制方法

文档序号:6255680阅读:360来源:国知局
专利名称:一种基于gps秒脉冲的时钟源装置及其控制方法
技术领域
本发明涉及一种基于GPS秒脉冲的长时间工作无累计误差的高精度时钟源装置 及其控制方法。
背景技术
随着电子技术的发展,人们对仪器测量的精度和同步性要求也越来越高,尤其是 在大地电磁测量中或者在电力系统的测量中,往往要求分布在不同区域的仪器能够实现同 步采集,并且在相当长的时间内保证采样的同步性,这便对时钟系统的稳定性提出了非常 高的要求。不仅要求每个仪器的时钟要稳定,而且各个仪器之间的时钟也要匹配。而目前 市场上的晶振短时稳定性非常高,但长时间工作后存在很大的累计误差。此外,不同晶振之 间即使是同一批生产的晶振,个体间也是有一定的差异的,应用在高精密的仪器中将会带 来严重的累计误差。而高精度的晶振,价格昂贵,比如稳定度为0. 035ppb(ppb为十亿分之 一)的晶振,价格要7000元以上,同样也存在累计误差。

发明内容
本发明针对目前高精度时钟源存在的上述缺点,提供了一种基于GPS秒脉冲的高 精度时钟源装置,该时钟源装置运用闭环负反馈控制的原理,具有很高的精度和稳定性,且 无累计误差。本发明时钟源的输出频率稳定在压控晶振标频率上,便于多台设备间的同步 工作。为达到以上目的,本发明是采取如下技术方案予以实现一种基于GPS秒脉冲的时钟源装置,包括GPS模块、压控晶振模块、时钟分配芯片、 单片机模块,所述单片机模块包括集成在单片机内部的A计数器和B计数器、一个数模转换 器DAC和一个I/O接口 ;所述时钟分配芯片有两路时钟通道,均具有输入口和控制使能端; 压控晶振模块的时钟输出除了可以连接到使用设备上作为设备的时钟源外,还连接在两路 时钟通道的输入口,其中第二路时钟通道的使能端接地,输出端连接至单片机模块的A计 数器;第一路时钟通道的使能端则受GPS模块输出的秒脉冲控制,输出端连接至单片机模 块的B计数器.GPS模块输出的秒脉冲还连接至单片机模块的I/O接口 ;单片机模块的数模 转换器DAC的电压输出连接至压控晶振模块的压控端。一种前述基于GPS秒脉冲的时钟源装置的控制方法,包括下述步骤(1)将单片机模块初始化,包括的A计数器、B计数器、数模转换器DAC和I/O接口 的初始化;(2)对压控晶振进行定标首先,根据模数转换公式^·χ212 =ZMCjato计算,即
将给压控晶振的控制电压转换为相应的给数模转换器DAC数量值,记为DAC_data ;在0到 3. 3V内将控制电压分为j组电压值,这j组电压值根据上述模数转换公式转换为j组数模 转换器DAC数量值记为DAC_data[i] (i = 0,1,2……j-2, j_l),其中j的值根据实际需要
4而定.其次,单片机模块每秒依次赋予数模转换器DAC —个数量值DAC_data [i],数模转换 器相应的输出一个控制电压给压控晶振模块的压控端,根据双计数器计频法,计算出DAC_ data[i]对应压控晶振模块输出的频率,记为bia0ding[i] (i = 0,1,2……j~2, j_l);(3)闭环负反馈控制首先,单片机模块检测到GPS秒脉冲高电平到来后,计算压 控晶振模块前N(N = 0,1,2,3……)秒的实际累计输出频率,即将前N秒每秒计得压控晶振 实际输出频率data累加起来,记为zonghe,计算data的方法用双计数器计频法;计算前N 秒的理想累计输出频率,即将前N秒每秒的理想频率32768000Hz累加起来,记为zongnum =32768000*N ;计算前N秒累计误差记为error = (zonghe-zongnum).为了抵消当前存在 的累计误差,计算第(N+1)秒的期望频率记为xin = 32768000-error ;其次,根据步骤(2) 得到压控晶振的定标值进行计算,得出第(N+1)秒的期望频率xin对应给数模转换器DAC 的数量值;(4)循环重复步骤(3)的闭环控制。上述控制方法中,步骤(2)、(3)所述的双计数器计频法包括下述步骤a.单片机模块的1/0接口 P2. 1检测到第K秒(K = 1,2,3……)秒脉冲高电平的 到来,B计数器由于第一时钟通道被截止而停止计数,单片机模块将此时B计数器的计数值 保存在变量tempi中。当GPS秒脉冲高电平过去后,将A计数器的计数值与B计数器的计 数值设置为相等;当第(K+1)秒秒脉冲高电平到来时,单片机模块再将B计数器的计数值保 存在temp2中οb.在第K秒内,每当A计数器计数值计值到65535时,单片机模块会产生一次中 断。单片机模块记录第K秒内A计数器的中断次数,记为num。c.计算第K秒压控晶振输出的频率记为data = 65536氺num+temp2_templ。本发明基于GPS的精确秒脉冲校准的时钟源装置,利用闭环负反馈控制原理,将 压控晶振的输出频率控制在其标称频率上,供测量系统多台设备同步使用。实验结果表明, 压控晶振受闭环控制之后,其累计误差能控制在几个脉冲之内。


图1为本发明装置的结构框图。图2为本发明单片机模块中16位A计数器和B计数器的工作模式图。图3为本发明控制流程图。图4根据标定值计算期望频率xin对应给数模转换器DAC数量值示意图。
具体实施例方式以下结合附图及具体实施例对本发明作进一步的详细说明。一种基于GPS秒脉冲的时钟源装置,如图1所示包括GPS模块、压控晶振模块、时 钟分配芯片、单片机模块,单片机模块包括单片机内部集成的A计数器和B计数器、一个数 模转换器DAC和一个1/0接口 ;时钟分配芯片有两路时钟通道,均具有输入口和控制使能 端;压控晶振模块的时钟输出除了可以连接到使用设备上作为设备的时钟源外,还连接在 两路时钟通道的输入口,其中第二路时钟通道的使能端接地,输出端连接至单片机模块的A计数器;第一路时钟通道的使能端则受GPS模块输出的秒脉冲控制,输出端连接至单片机 模块的B计数器.GPS模块输出的秒脉冲还连接至单片机模块的I/O接口 P2. 1 ;单片机模 块的数模转换器DAC的电压输出连接至压控晶振模块的压控端。下面对该装置的各个模块的工作原理作一详细描述GPS模块本发明使用Trimble (天宝)系列的成品GPS模块,该模块可恒定输出 秒脉冲。在搜到卫星并获得星历、年历、经纬度后可以提供精确的秒脉冲(PPS——pulse per-second)。该秒脉冲具有1毫秒高电平脉宽,剩余的999毫秒为低电平。该秒脉冲统计 精度为15纳秒(1 σ ),即GPS时钟误差落在1 σ范围内的概率为0. 6828,但其不存在累计 误差。本发明中,使用该秒脉冲作为时间基准,按照秒脉冲的节拍每秒对压控晶振进行一次 控制。压控晶振模块本发明使用标称频率为32768000Hz的压控晶振,该压控晶振 的线性度为2. 6%即理想情况下随着压控晶振的压控端的电压线性单调递增,压控晶 振输出的频率也是线性单调递增的。压控端电压在0-3. 3V变化时,压控晶振输出频率 在-83. 98ppm 114. 44ppm(ppm为百万分之一)变化,也就是说压控端电压在0-3. 3V变化 时,压控晶振输出频率波动就应为32768000*(83. 98+114. 44)ppm = 6501. 83个频率。即使 给压控晶振电压控制端给一个固定的控制电压,压控晶振每秒输出的频率也不可能稳定不 变,压控晶振输频率出会随时间的变化而变化,如果不对其予以控制,长时间工作后压控晶 振的累计误差将非常大。本发明通过在GPS标准秒脉冲的节拍下实施每秒调节该压控晶振 控制端的控制电压,从而控制其输出频率,来完成压控晶振的高精度且无累计误差的工作。时钟分配芯片本发明中使用IDT49FC3805芯片作为时钟分配芯片,该芯片有两 路时钟通道,且均具有控制使能端,低电平使能。压控晶振的时钟输出都接在两路时钟通道 的输入口,其中一路通道的使能端恒有效,该路时钟输出至单片机的A计数器,作为对压控 晶振模块输出脉冲的恒定计数源;另一路通道的输出至单片机的B计数器,该通道的使能 端则受GPS模块秒脉冲的控制,秒脉冲为低电平的时候,时钟可以无阻的通过;当秒脉冲为 高电平的时候,由于通道使能端为高电平,通道被截止,压控晶振模块输出的脉冲也就不能 到达B计数器,B计数器暂停计数,B计数器的计数值供单片机读数。单片机模块本发明使用TI公司的单片机MSP430F169作为主控单元。本方案使 用到单片机模块的资源有集成在单片机内部的16位的A计数器(简称TA)、16位的B计数 器(简称TB)、12位数模转换器DAC和一个I/O 口 P2. 1。其中两个16位A计数器、B计数 器均对通过时钟分配芯片的脉冲进行计数,两个计数器的计数模式是一模一样的,计数模 式为连续模式(Continuous Mode),在这个计数模式下,计数周期为65536个时钟周期即计 数器从0计到FFFFH(65535),又回到0重新计数,如图2所示。当计数器计数从65535到0 时,设置中断标志位.这样,如果计数器允许中断,计数器计数值计值到65535时,单片机便 产生一次中断。在本方案中,A计数器允许中断,B计数器是不允许中断的,也就是说只有A 计数器计数到65535时,引发单片机的中断,但B计数器计数到65535时,B计数器计数值 归0单片机不产生中断。此外,A计数器和B计数器都有一个执行计数的单元分别为TAR 寄存器和TBR寄存器,这两个寄存器都是可读的,它们记录了进入计数器的脉冲个数。如果 要读取TAR寄存器或TBR寄存器的值,必须是将计数器停止后才能准确读出当前计得的脉 冲数,否则,如果计数器处于高速计数的状态,读取TAR寄存器或TBR寄存器的值将是无法预计的,所以本发明使用两个计数器配合计算压控晶振模块的输出频率,即下述的双计数 器计频法。12位的数模转换器DAC的内部电压参考源为4. 5V,因此数字量与模拟量之间的
Γ ΑΓ data
相互转换公式为^X4.5 = Foai,其中DAC_data为给数模转换器DAC的数字量。Vout
是给压控晶振模块压控端的控制电压。I/O 口 P2. 1处于扫描状态,不断地检测是否有IPPS 的高电平的到来。在介绍控制步骤之前,首先说明一下计算压控晶振模块的输出频率的双计数器计 频法a.单片机模块的I/O接口 P2. 1检测到第K秒(K = 1,2,3……)秒脉冲高电平的 到来,B计数器由于第一时钟通道被截止而停止计数,单片机模块将此时B计数器的计数值 保存在变量tempi中。当GPS秒脉冲高电平过去后,将A计数器的计数值与B计数器的计 数值设置为相等。当第(K+1)秒秒脉冲高电平到来时,单片机模块再将B计数器的计数值 保存在temp2中。b.在第K秒内,每当A计数器计数值计值到65535时,单片机模块会产生一次中 断。单片机模块记录第K秒内A计数器的中断次数记为num。c.计算第K秒压控晶振输出的频率记为data = 65536氺num+temp2_templ。如图3所示,一种基于图1的GPS秒脉冲的时钟源装置的具体控制方法如下述步 骤(1)将单片机模块初始化,包括的A计数器、B计数器、数模转换器DAC和I/O接口 等的初始化。(2)对压控晶振进行定标。首先,根据模数转换公式^·χ212 =ZMCjato计算,即
将给压控晶振的控制电压转换为相应的给数模转换器DAC数量值,记为DAC_data。在0到 3. 3V内将控制电压分为j组电压值,这j组电压值根据上述模数转换公式转换为j组数模 转换器DAC数量值记为数组DAC_data[i] (i = 0,1,2……j-2, j_l),其中j的值根据实际 需要而定.其次,单片机模块每秒依次赋予数模转换器DAC—个数量值DAC_data[i],数模 转换器相应的输出一个控制电压给压控晶振模块的压控端,根据上述双计数器计频法,计 算出DAC_data[i]对应压控晶振模块输出的频率,记为biaoding[i] (i = 0,1,2……j-2, j-1)。(3)闭环负反馈控制首先,单片机模块检测到GPS秒脉冲高电平到来后,计算压 控晶振模块前N(N = 0,1,2,3……)秒的实际累计输出频率即将前N秒每秒计得压控晶振 实际输出频率data累加起来,记为zonghe,计算data的方法用前述双计数器计频法;计 算前N秒的理想累计输出频率即将每秒的理想频率32768000Hz累加起来记为zongnum = 32768000*N ;计算前N秒累计误差记为error = (zonghe-zongnum).为了抵消当前存在的 累计误差,计算第(N+1)秒的期望频率记为xin = 32768000-erroro其次,根据第二步得到 压控晶振的定标值进行计算,计算出第(N+1)秒的期望频率xin对应给数模转换器DAC的 数量值。计算方法如下由于本方案用的压控晶振控制电压与输出频率之间关系是正向线性单调的,在相
7邻的两个定标点之间可认为压控晶振模块的压频特性曲线是直线,那么如图4所示单片 机模块判断出期望频率xin介于biaodingfc]和biaodingfc-l]之间,其中η e
。 根据相似三角形原理计算xin所对应的数模转换器数量值DAC_data的公式如下 最后,给数模转换器DAC的数量值DAC_data之后,数模转换器DAC可以输出对应 的控制电压V。ut来控制压控晶振。这样,如果error大于0,说明实际累计频率比期望的累 计频率大,所以减小(N+1)秒给压控晶振的控制电压,这样(N+1)秒的压控晶振输出频率就 会减小;反之,增大(N+1)秒压控晶振的控制电压,这样(N+1)秒的压控晶振输出频率就会 增大,从而能抵消累计误差。通过这种方法,我们可以将控制压控晶振输出频率长时间精确 稳定在压控晶振的标称频率上。由于GPS秒脉冲与晶振时钟不可能完全同步,计数器在对 晶振频率计数时,会引入1个计数值的测量误差,则测量压控晶振模块频率存在士 1个脉冲 的误差。此外,由于实验采用12位数模转换器DAC精度有限,因此实验结果得出的累计误 差控制在几个脉冲范围内。(4)循环重复第三步的闭环控制。
权利要求
一种基于GPS秒脉冲的时钟源装置,其特征在于,包括GPS模块、压控晶振模块、时钟分配芯片、单片机模块,所述单片机模块包括集成在单片机内部的A计数器和B计数器、一个数模转换器DAC和一个I/O接口;所述时钟分配芯片有两路时钟通道,均具有输入口和控制使能端;压控晶振模块的时钟输出除了可以连接到使用设备上作为设备的时钟源外,还连接在两路时钟通道的输入口,其中第二路时钟通道的使能端接地,输出端连接至单片机模块的A计数器;第一路时钟通道的使能端则受GPS模块输出的秒脉冲控制,输出端连接至单片机模块的B计数器,GPS模块输出的秒脉冲还连接至单片机模块的I/O接口;单片机模块的数模转换器DAC的电压输出连接至压控晶振模块的压控端。
2.—种权利要求1所述基于GPS秒脉冲的时钟源装置的控制方法,其特征在于,包括下 述步骤(1)将单片机模块初始化,包括的A计数器、B计数器、数模转换器DAC和I/O接口的初 始化;(2)对压控晶振进行定标首先,根据模数转换公式^"X212—力to将给压控晶振模块的控制电压V。ut转换为相应的给数模转换器DAC的数量值DAC_data ;在0到3. 3V 内将控制电压分为j组电压值,这j组电压值根据上述模数转换公式转换为j组数模转换 器DAC的数量值记为DAC_data[i]i = 0,1,2……j_2,j_l,其中j的值根据实际需要而定; 其次,单片机模块每秒依次赋予数模转换器DAC —个数量值DAC_data [i],数模转换器相应 的输出一个控制电压给压控晶振模块的压控端,根据双计数器计频法,计算出DAC_data[i] 对应压控晶振模块输出的频率,记为bia0ding[i],i = 0,1,2……j-2,j-1 ;最后得到定标 值 DAC_data[i]、biaoding[i];(3)闭环负反馈控制首先,单片机模块检测到GPS模块秒脉冲高电平到来后,计算压 控晶振模块前N秒的实际累计输出频率,N = 0,1,2,3……,即将前N秒每秒计得压控晶振 实际输出频率data累加起来,记为zonghe,计算data的方法用双计数器计频法;计算前N 秒的理想累计输出频率,即将前N秒每秒的理想频率32768000Hz累加起来,记为zongnum =32768000*N ;计算前N秒累计误差记为error = (zonghe-zongnum).为了抵消当前存在 的累计误差,计算第(N+1)秒的期望频率记为xin = 32768000-error ;其次,根据步骤(2) 得到压控晶振模块的定标值进行计算,得出第(N+1)秒的期望频率xin对应给数模转换器 DAC的数量值;(4)循环重复步骤(3)的闭环控制。
3.如权利要求2所述的基于GPS秒脉冲的时钟源装置的控制方法,其特征在于,步骤 (2)、(3)所述的双计数器计频法包括下述步骤a.单片机模块的1/0接口P2. 1检测到第K秒秒脉冲高电平的到来,K = 1,2,3……,B 计数器由于第一时钟通道被截止而停止计数,单片机模块将此时B计数器的计数值保存在 变量tempi中;当GPS秒脉冲高电平过去后,将A计数器的计数值与B计数器的计数值设 置为相等;当第(K+1)秒秒脉冲高电平到来时,单片机模块再将B计数器的计数值保存在 temp2 中;b.在第K秒内,每当A计数器计数值计值到65535时,单片机模块会产生一次中断,单 片机模块记录第K秒内A计数器的中断次数,记为num ;c.计算第K秒压控晶振输出的频率记为 data = 65536氺num+temp2-templ0
全文摘要
本发明公开了一种基于GPS秒脉冲的时钟源装置及控制方法,利用闭环负反馈控制原理,将压控晶振的输出频率控制在其标称频率上,供测量系统多台设备同步使用。实验结果表明,压控晶振受闭环控制之后,其累计误差能控制在几个脉冲之内。
文档编号G04G7/00GK101930211SQ20101026134
公开日2010年12月29日 申请日期2010年8月24日 优先权日2010年8月24日
发明者周旺, 杨建国, 赖淋香 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1