一种时钟同步方法与流程

文档序号:26274578发布日期:2021-08-13 19:29阅读:225来源:国知局
一种时钟同步方法与流程

本发明涉及计算机嵌入式领域,特别涉及时钟同步领域。



背景技术:

专利cn106817184b一种时钟同步系统,公开了一种时钟同步系统,包括:内置gps接收机,用于在接收到外部的gps天线输出的gps信号后锁定gps卫星并在锁定gps卫星后输出1pps时钟信号和tx差分信号;测试电路板,分别与所述内置gps接收机、主口和多个从口连接,用于将所述内置gps接收机输出的1pps时钟信号和tx差分信号分别输出到所述主口、多个从口;所述主口和多个从口分别用于将接收到的1pps时钟信号和tx差分信号输出到与主口、多个从口连接的需要时钟同步的设备以实现设备的时钟同步;电源接口,分别与所述内置gps接收机、测试电路板连接,用于在与外部电源接通后分别对所述内置gps接收机、测试电路板进行供电。本发明成本低,同步时间短。

专利cn109039513a时钟同步方法、装置、设备及存储介质,公开了一种时钟同步方法、装置、设备及存储介质。所述方法包括:通过本地卫星定位系统gps设备获取gps时钟信号;根据所述gps时钟信号对本地时钟进行时间校准。本发明实施例通过根据本地卫星定位系统gps校准各区块链网络节点的本地时钟,可以实现各区块链网络节点的本地时钟精准同步,提高出块操作的稳定性。

专利cn109814370a一种时钟同步系统,公开了一种时钟同步方法、装置、设备及存储介质。所述方法包括:通过本地卫星定位系统gps设备获取gps时钟信号;根据所述gps时钟信号对本地时钟进行时间校准。本发明实施例通过根据本地卫星定位系统gps校准各区块链网络节点的本地时钟,可以实现各区块链网络节点的本地时钟精准同步,提高出块操作的稳定性。

上述方法未考虑到,通信接收过程耗时带来的误差,影响了时序同步的精度和数据解析过程耗时带来的误差,影响了时序同步的精度。



技术实现要素:

本发明实施例提供了一种时钟同步方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

根据本发明实施例的第一方面,提供了一种时钟同步方法,具体包括如下步骤:

s1:gps模块将时钟信息数据通过串口发送到微控制单元mcu,所述微控制单元mcu通过中断模式串口通信接收所述gps模块的时钟信息数据;

s2:所述gps模块的串口数据输出开始时,所述gps模块的一个口线会出现一次高低电平的跳变,并触发所述微控制单元mcu外部中断,在所述微控制单元mcu外部中断中启动计时器;

s3:对所述gps模块的时钟信息数据进行数据解析,解析出标准定位时间单元,从而获取到来自卫星的gps时间,即为同步的基础时间;

s4:所述计时器计算串行通信以及数据解析带来的时间误差difft;

s5:对时钟的时间进行校正,校正时间为所述gps时间与所述计时器计算时间误差difft的和,即,

校正时间=gps时间+difft。

优选地,所述gps模块输出符合rmc规范的gps信息,其中标准定位时间单元格式为时时分分秒秒·秒秒秒,其分辨率为毫秒。

优选地,所述微控制单元mcu外部中断的优先级高于所述微控制单元mcu中断模式串口通信的优先级,并所述微控制单元mcu外部中断的优先级为最高优先级。

优选地,所述微控制单元mcu外部中断清除计时器数值,并重置计时器。

优选地,所述计时器的精度为0.01ms,即每0.01ms累加一次,所述计时器累加和为diff。

优选地,所述数据解析包括验证工作,具体如下步骤:

s31:检查帧头、帧尾是否合规;

s32:检查总和校验码是否正确;

s33:检查定位状态单元取值是否为资料可用。

优选地,所述数据解析带来的时间误差为通信接收耗时和数据解析耗时。

优选地,所述时间误差difft为所述计时器累加和diff与所述计时器精度的乘积,即,

difft=diff×0.01ms。

优选地,所述校正时间=gps时间+difft,具体还包括运算时耗,即,

校正时间=gps时间+difft+运算时耗。

优选地,所述校正时间=gps时间+difft,所述该公式的计算变成语言采用嵌入式汇编代码。

本发明实施例提供的技术方案可以包括以下有益效果:

采用gps模块获取时间,结合软硬件技术手段校正通信接收和数据解析、运算耗时带来的误差,保证了时序同步的高精度。同时,设计有时钟芯片,在gps信号不存在或gps信号弱的场景下,从时钟芯片获取时间,实现时序同步,从而保障了应用场景的全覆盖。高精度和应用场景的全覆盖,在系统的性能和应用场景上取得了均衡,有利于产品的推广应用。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种时钟同步方法逻辑流程示意图;

图2是根据一示例性实施例示出的串口通信和外部中断电路图;

图3是根据一示例性实施例示出的备用时钟电路图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

下面结合附图及实施例对本发明做进一步描述:

如图1所示的,一种时钟同步方法,具体包括如下步骤:

s1:gps模块将时钟信息数据通过串口发送到微控制单元mcu,所述微控制单元mcu通过中断模式串口通信接收所述gps模块的时钟信息数据;

s2:所述gps模块的串口数据输出开始时,所述gps模块的一个口线会出现一次高低电平的跳变,并触发所述微控制单元mcu外部中断,在所述微控制单元mcu外部中断中启动计时器

s3:对所述gps模块的时钟信息数据进行数据解析,解析出标准定位时间单元,从而获取到来自卫星的gps时间,即为同步的基础时间;

s4:所述计时器计算串行通信以及数据解析带来的时间误差difft;

s5:对时钟的时间进行校正,校正时间为所述gps时间与所述计时器计算时间误差difft的和,即,

校正时间=gps时间+difft。

根据上述方案,进一步,所述gps模块采用gstar系列的gps模块,所述gps模块输出符合rmc规范的gps信息,其中标准定位时间单元格式为时时分分秒秒·秒秒秒,其分辨率为毫秒,rmc输出范例:

$gprmc,161229.487,a,3723.2475,n,12158.3416,w,0.13,309.62,120598,,*10<cr><lf>,

具体协议如下表rmc规范:

根据上述方案,进一步,如图2所示,本实施例选用arm核芯片stm32f103vc,口线pb10接收所述gps模块外部中断,口线pb11为串口接收端口,接收gps模块数据;arm核芯支持多达4级的中断,不同级别的中断处理优先级不同,高级别中断可以打断低级别中断和主循环的处理流程,在高级别中断处理结束后,低级别中断或主循环将从断点处继续处理流程,所述mcu外部中断的优先级高于所述mcu中断模式串口通信的优先级,并所述mcu外部中断的优先级为最高优先级,。

根据上述方案,进一步,所述mcustm32f103vc的口线pb10接收到外部中断后,清除计时器数值,并重置计时器。

根据上述方案,进一步,所述计时器的精度为0.01ms,即每0.01ms累加一次,所述计时器累加和为diff。

根据上述方案,进一步,所述数据解析包括验证工作,具体如下步骤:

s31:检查帧头、帧尾是否合规;

s32:检查总和校验码是否正确;

s33:检查定位状态单元取值是否为资料可用。

根据上述方案,进一步,所述数据解析带来的时间误差为通信接收耗时和数据解析耗时。

根据上述方案,进一步,所述时间误差difft为所述计时器累加和diff与所述计时器精度的乘积,即,

difft=diff×0.01ms。

根据上述方案,进一步,所述校正时间=gps时间+difft公式在所述mcu中要执行一个乘法和一个加法,两条指令会有运算时耗,导致所述校正时间=gps时间+difft+运算时耗。

根据上述方案,进一步,所述校正时间=gps时间+difft公式,本实施例中这个公式的计算使用嵌入式汇编代码,直接操作寄存器实现以上乘法和加法运算。其目的是:一方面降低代码执行时间,保证计算的高效性,另一方面便于计算相关运算的理论耗时,用于修正时间误差。

根据上述方案,进一步,基于gps的时序同步解决方案,依赖于卫星,在有些应用领域(如高山峻岭、室内)会出现搜索不到卫星、或搜索到的卫星数量过少,从而导致接收不到信号或接收到的信号置信度低,不可用,从而影响时序同步功能的实现;在这种情况下,本设计使用时钟芯片ds1307实现时序同步,以保障应用场景的全覆盖,如图3所示,其技术原理是:通过i2c总线周期性访问时钟芯片ds1307,arm芯片可以获取日期时间信息;同时设计有锂电池电路,以保障时钟芯片ds1307在失电的情况下,能正常工作。在赋予初始日期时间、不失电的情况下,时钟芯片可以保证多达数年的连续工作。使用时钟芯片作为时基,可以实现精确到秒级的时序同步。

本发明是一种时钟同步的方法,采用gps模块获取时间,结合软硬件技术手段校正通信接收和数据解析、运算耗时带来的误差,保证了时序同步的高精度。同时,设计有时钟芯片,在gps信号不存在或gps信号弱的场景下,从时钟芯片获取时间,实现时序同步,从而保障了应用场景的全覆盖。高精度和应用场景的全覆盖,在系统的性能和应用场景上取得了均衡,有利于产品的推广应用。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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