一种基于FPGA与恒温晶振的同步守时模块 |
|||||||
申请号 | CN202311262403.9 | 申请日 | 2023-09-27 | 公开(公告)号 | CN117311130A | 公开(公告)日 | 2023-12-29 |
申请人 | 小华半导体有限公司; | 发明人 | 林少钦; 钱辰鹏; | ||||
摘要 | 本 发明 涉及一种基于FPGA与恒温晶振的同步守时模 块 ,包括:恒温晶振,其被配置为向FPGA模块提供时钟;FPGA模块,其包括:时钟单元,其被配置为接收恒温晶振的时钟,并向计算与解码单元、数据存储与刷新单元及PPS生成与补偿单元提供时钟;计算与解码单元,其被配置为接收外部同步设备的PPS 信号 或IRIG‑B码,并能够将IRIG‑B码解码出PPS信号和实时时间,根据时钟单元提供的时钟计算PPS间隔所对应的秒间隔步长,动态计算每个同步周期的时钟数,并且计算同步后的变化趋势以及预测趋势,作为同步数据;数据存储与刷新单元,其被配置为存储生成PPS所需要的默认数据及所述计算与解码单元计算的同步数据,并提供给PPS生成与补偿单元;以及PPS生成与补偿单元。 | ||||||
权利要求 | 1.一种基于FPGA与恒温晶振的同步守时模块,其特征在于,包括: |
||||||
说明书全文 | 一种基于FPGA与恒温晶振的同步守时模块技术领域背景技术[0002] 许多领域需要同步时钟,并且对精度要求很高,比如时间同步服务器、授时设备、电力系统设备等等,这些设备不仅对时间同步的要求高,而且需要具有守时功能,比如卫星 信号丢失或者同步设备掉电等,在这种情况下要求同步设备能够凭“记忆”自我同步。目前 市面上的同步守时的功能很多是以设备的形式面市,即使以模块的形式面市,价格也较为 昂贵。 发明内容[0004] 恒温晶振,其被配置为向FPGA模块提供时钟; [0005] FPGA模块,其包括: [0006] 时钟单元,其被配置为接收恒温晶振的时钟,并向计算与解码单元、数据存储与刷新单元及PPS生成与补偿单元提供时钟; [0007] 计算与解码单元,其被配置为接收外部同步设备的PPS信号或IRIG‑B码,并能够将IRIG‑B码解码出PPS信号和实时时间,根据时钟单元提供的时钟计算PPS间隔所对应的秒间 隔步长,动态计算每个同步周期的时钟数,并且计算同步后的变化趋势以及预测趋势,作为 同步数据; [0008] 数据存储与刷新单元,其被配置为存储生成PPS所需要的默认数据及所述计算与解码单元计算的同步数据,并提供给PPS生成与补偿单元;以及 [0009] PPS生成与补偿单元,其被配置为根据时钟单元提供的时钟生成PPS信号,并将所述数据存储与刷新单元提供的秒间隔步长和趋势预测作为PPS生成与补偿单元的秒间隔步 长。 [0010] 进一步地,当外部同步设备的PPS信号的上升沿或者IRIG‑B码的上升沿到达所述计算与解码单元时,所述计算与解码单元确认该上升沿为同步脉冲,所述计算与解码单元 开始计算所述时钟单元输入的时钟数,在下一个PPS信号或者IRIG‑B码的上升沿到达时,所 计算的时钟数为一次秒间隔步长。 [0011] 进一步地,在IRIG‑B码的上升沿到达所述计算与解码单元开始,所述计算与解码单元进行时钟计数计算秒间隔步长之外,还按照IRIG‑B码的格式解析出当前的具体时间。 [0012] 进一步地,所述计算与解码单元动态存储秒间隔步长,并且计算同步后的变化趋势以及预测趋势,并将秒间隔步长、变化趋势以及预测趋势数据存储入所述数据存储与刷 新单元。 [0013] 进一步地,所述数据存储与刷新单元存储有生成PPS信号所需要的默认数据,在没有外部同步信号或者外部同步信号所存储的数据不足以作为生成PPS信号的数据源时,将 以所述默认数据提供给所述PPS生成与补偿单元; [0014] 在外部同步信号存在时,所述数据存储与刷新单元接收并存储来所述计算与解码单元的同步数据,将所存储的数据提供给PPS生成与补偿单元。 [0015] 进一步地,所述同步守时模块初始化时,所述数据存储与刷新单元预存的秒间隔步长对应的时钟数为根据所述同步守时模块的时钟所产生的默认计数数据; [0016] 在外部同步信号存在时,所述数据存储与刷新单元存储外部同步信号的秒间隔步长所对应的同步守时模块的时钟的计数值,最近一段同步时间存入的数据与默认数据同时 存储在所述数据存储与刷新单元。 [0017] 进一步地,在守时情况下,将根据所述数据存储与刷新单元的标志位来决定以默认数据还是以最近一段同步时间存储的同步数据作为秒间隔步长的数据源,从而根据所述 数据存储与刷新单元中存储的数据对PPS信号进行校准和补偿。 [0018] 进一步地,在外部同步信号存在时,所述PPS生成与补偿单元能识别到输入PPS信号的上升沿,所述PPS生成与补偿单元输出的PPS信号的上升沿能够与外部同步信号的上升 沿同步。9.根据权利要求8所述的同步守时模块,其特征在于,当外部同步信号丢失时,所述 计算与解码单元将通知所述PPS生成与补偿单元,整个同步守时模块进入守时状态,所述 PPS生成与补偿单元将根据所述数据存储与刷新单元在有外部同步信号的情况下的存储的 数据自动调整产生的PPS信号,得到同步PPS信号; [0019] 在守时状态又接收到外部同步信号时,所述计算与解码单元通知所述PPS生成与补偿单元,在过度缓冲时间内逐步退出守时状态进入同步状态。 [0020] 进一步地,在重新接收到外部同步信号时,所述计算与解码单元通知所述PPS生成与补偿单元,同时所述计算与解码单元计算进入同步的秒间隔步长和预测趋势; [0021] 所述PPS生成与补偿单元将根据守时的秒间隔步长与同步的秒间隔步长进行比较,如果差值超过设置的阈值,将逐秒调整PPS信号的步长长度,使其逐渐接近实际的秒间 隔步长,当同步的秒间隔步长与守时的秒间隔步长之间的误差小于设置的阈值时,将切换 到同步模式。 [0022] 本发明至少具有下列有益效果:本发明公开的一种基于FPGA与恒温晶振的同步守时模块,该同步守时模块既满足解决高精度同步与守时的技术需求,也可以以模块的方式 嵌入在设备或者单独作为GPS信号与被同步设备之间的转接设备,且该同步守时模块的设 计简单,成本低。 附图说明 [0023] 为了进一步阐明本发明的各实施例的以上和其它优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此 将不被认为是对其范围的限制。在附图中,为了清楚明了,相同或相应的部件将用相同或类 似的标记表示。 [0024] 图1示出了根据本发明一个实施例的一种基于FPGA模块与恒温晶振的同步守时模块的工作示意图; [0025] 图2示出了根据本发明一个实施例的FPGA模块内部解码与PPS信号发生模块逻辑图; [0026] 图3示出了根据本发明一个实施例的基于FPGA与恒温晶振的同步守时模块的PPS信号上升沿与外部同步的PPS信号的上升沿同步时的示意图; [0027] 图4示出了根据本发明一个实施例的基于FPGA与恒温晶振的同步守时模块的守时情况下PPS信号上升沿滞后的示意图;以及 [0028] 图5示出了根据本发明一个实施例的基于FPGA与恒温晶振的同步守时模块的守时情况下PPS信号上升沿超前的示意图。 具体实施方式[0029] 应当指出,各附图中的各组件可能为了图解说明而被夸大地示出,而不一定是比例正确的。 [0030] 在本发明中,各实施例仅仅旨在说明本发明的方案,而不应被理解为限制性的。 [0031] 在本发明中,除非特别指出,量词“一个”、“一”并未排除多个元素的场景。 [0032] 在此还应当指出,在本发明的实施例中,为清楚、简单起见,可能示出了仅仅一部分部件或组件,但是本领域的普通技术人员能够理解,在本发明的教导下,可根据具体场景 需要添加所需的部件或组件。 [0033] 在此还应当指出,在本发明的范围内,“相同”、“相等”、“等于”等措辞并不意味着二者数值绝对相等,而是允许一定的合理误差,也就是说,所述措辞也涵盖了“基本上相同”、“基本上相等”、“基本上等于”。 [0034] 在此还应当指出,在本发明的描述中,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是明示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对 本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性。 [0035] 另外,本发明的实施例以特定顺序对工艺步骤进行描述,然而这只是为了方便区分各步骤,而并不是限定各步骤的先后顺序,在本发明的不同实施例中,可根据工艺的调节 来调整各步骤的先后顺序。 [0036] 图1示出了根据本发明一个实施例的一种基于FPGA与恒温晶振的同步守时模块的示意图。 [0037] 如图1所示,一种基于FPGA与恒温晶振的同步守时模块包括FPGA模块100和恒温晶振200。 [0038] FPGA模块用于接收外部同步源设备300的PPS(秒脉冲)信号或者IRIG‑B码,解码IRIG‑B码得到PPS信号和实时时间,根据时钟计算PPS信号间隔所对应的秒间隔步长及每个 同步周期的时钟数,FPGA模块根据时钟生成PSS信号,并将PPS信号同步给被同步设备400。 [0039] 恒温晶振200为FPGA模块提供时钟,满足FPGA模块内部逻辑模块的运算需求。恒温晶振200具有精度高、稳定性好等良好特性。 [0040] 本发明的守时模块主要用于接收外部同步设备提供的外部同步信号,如GPS设备提供的PPS信号或者IRIG‑B码,通过不断检测与解码等运算,再通过FGPA芯片产生PPS信号 用于同步被同步设备,该守时模块也可以集成在被同步设备作为被同步设备的组成部分。 FGPA芯片接收的外部同步信号包括但不限于GPS同步源设备。 [0041] 图2示出了根据本发明一个实施例的FPGA模块内部解码与PPS信号发生器模块逻辑图。图3示出了根据本发明一个实施例的基于FPGA与恒温晶振的同步守时模块的PPS信号 上升沿与外部同步的PPS信号的上升沿同步时的示意图。 [0042] 如图2所示,FPGA模块包括时钟单元101、计算与解码单元102、数据存储与刷新单元103及PPS生成与补偿单元104。 [0043] 时钟单元101被配置为接收恒温晶振的时钟,并向计算与解码单元102、数据存储与刷新单元103和PPS生成与补偿单元104提供时钟。恒温晶振200为时钟单元101提供时钟, 时钟单元101再将时钟提供给计算与解码单元102、数据存储与刷新单元和PPS生成与补偿 单元104。 [0044] 计算与解码单元102被配置为接收PPS信号或IRIG‑B码,并将IRIG‑B码解码出PPS信号和实时时间,并根据时钟单元101提供的时钟计算PPS信号间隔所对应的秒间隔步长, 动态计算每个同步周期的时钟数。当外部同步设备的PPS信号的上升沿或者IRIG‑B码的上 升沿到达计算与解码单元102时,计算与解码单元102即确认该上升沿为同步脉冲,计算与 解码单元102开始计算时钟单元101输入的时钟数,在下一个PPS信号或者IRIG‑B码的上升 沿到达时,所计算时钟数即为一次秒间隔步长。对于IRIG‑B码的情况,在IRIG‑B码的上升沿 到达开始,计算与解码单元102除了进行与PPS相同的时钟计数之外,也将按照IRIG‑B码的 格式解析出当前的具体时间。计算与解码单元102将动态存储秒间隔步长,并且根据算法不 停计算从同步以来的变化趋势以及预测趋势,将秒间隔步长与变化趋势以及预测趋势数据 等存储进数据存储与刷新单元103。 [0045] 数据存储与刷新单元103存储有生成PPS信号所需要的默认数据,在没有外部同步信号或者外部同步信号所存储的数据不足以作为PPS信号的数据源时,将以该默认数据提 供给PPS生成与补偿单元104。同时数据存储与刷新单元103存储计算与解码单元计算102的 同步数据,在有外部同步信号时,将不断接收来自计算与解码单元102的数据,将所存储的 数据提供给PPS生成与补偿单元。 [0046] PPS生成与补偿单元104被配置为根据时钟单元101提供的时钟生成PPS信号,所产生的PPS信号根据数据存储与刷新单元103预存储的秒间隔步长数据和预测趋势等数据作 为PPS生成与补偿单元的秒间隔步长。该同步守时模块初始化时,数据存储与刷新单元103 预存的秒间隔步长对应的时钟数为根据同步守时模块的时钟所产生的默认计数数据。在有 外部同步信号时,数据存储与刷新单元103存储外部同步信号的秒间隔步长所对应的该同 步守时模块时钟的计数值,最近一段同步时间存入的数据与默认的数据同时存储在数据存 储与刷新单元103中。在此,最近一段同步时间是指最近一次开始往前推10分钟内,属于最 近一段同步时间,这个最近一段同步时间可以根据实际情况调整。 [0047] 在有外部同步信号的情况下,新存进的数据将不断更新,确保所存储的数据是最近一段时间的数据。 [0048] 在守时情况下,将根据数据存储与刷新单元103的标志位决定是以默认数据还是以最近一段同步时间存储的同步数据作为秒间隔步长的数据源,从而根据数据存储与刷新 单元103中存储的数据对PPS信号进行校准和补偿,得到同步PPS信号。 [0049] 对于外部同步信号存在的情况下,PPS生成与补偿单元104将能识别到输入PPS信号的上升沿,PPS生成与补偿单元104输出的PPS信号的上升沿将直接与外部输入的同步信 号的上升沿同步,确保一致性。 [0050] 上述同步模块运行时,计算与解码单元102将外部同步信号IRIG‑B码解码出PPS信号,若外部同步信号为PPS信号,则不需要解码,然后根据时钟单元101提供的时钟计算PPS 信号间隔所对应的时钟步长,动态计算每个同步周期的时钟数。计算与解码单元102计算出 的数据存放于数据存储与刷新单元103中,该单元中的数据也是动态更新,移动存储,确保 数据记录的是外部同步源最近一段时间的同步数据。数据存储与刷新单元103自身存有默 认的生成PPS信号所需要的数据,在没有外部同步信号或者外部同步信号所存储的数据不 足以作为PPS信号的数据源时,将以该默认数据作为PPS信号的生成与补偿的数据。 [0051] PPS生成与补偿单元104生成PPS信号,该PPS信号不管外部同步源是否存在均会产生,其所产生的PPS信号理论上将根据时钟单元提供的时钟产生。在守时情况下,将根据数 据存储与刷新单元103的标志位决定是以默认数据还是以最近一段同步时间存储的同步数 据作为秒间隔步长的数据源,从而根据数据存储与刷新单元103中存储的数据对PPS信号进 行校准和补偿,得到同步PPS信号。在外部同步信号存在的情况下,PPS生成与补偿单元104 将能识别到输入PPS的上升沿,输出的PPS的上升沿将直接与外部输入的同步信号的上升沿 同步,确保一致性,如图3所示。 [0052] 在外部同步信号丢失的时候,计算与解码单元102将通知PPS生成与补偿单元104,整个同步守时模块进入守时状态,PPS生成与补偿单元104将根据数据存储与刷新单元103 在有外部同步信号的情况下存储的数据自动调整产生的PPS信号,得到同步PPS信号,确保 在规定的时间内同步PPS信号的上升沿与所丢失的外部同步的PPS信号上升沿无限接近,确 保在规定的时间内同步守时模块生成的同步PPS信号的上升沿与所丢失外部同步的PPS信 号的上升沿误差控制在规定的误差范围内。 [0053] 当在守时状态又接收到外部同步信息,则计算与解码单元102通知PPS生成与补偿单元104,在一个过度缓冲时间内逐步退出守时进入同步,确保守时进入同步不存在PPS信 号时间间隔的抖动。在重新接收到外部同步信号时,计算与解码单元102将通知PPS生成与 补偿单元104,与此同时,计算与解码单元102计算进入同步的秒间隔步长和预测趋势。PPS 生成与补偿单元104将根据守时的秒间隔步长与当前实际的同步的秒间隔步长进行比较, 如果差值超过设置的阈值,将逐秒调整PPS信号的步长长度,使其逐渐接近实际的秒间隔步 长,当实际同步PPS秒间隔步长与守时秒间隔步长之间的误差小于设置的阈值时,将切换到 同步模式。 [0054] 对于对时钟要求苛刻的设备,不仅要确保设备在有同步源的情况下的同步,也要求在同步源丢失的情况下,能够确保设备在规定时间内的工作状态和时间误差接近有同步 源的情况。比如,对于智能电网的采集设备,采集设备是否能够实现守时功能,涉及到电网 的继电保护、测量与计量的结果等,因此对设备要求非常高,必须在GPS信号丢失的情况下, 能够保证被同步设备在10分钟内PPS信号上升沿与外部同步源的PPS信号上升沿之间的时 间差不超过±4us。 [0055] 图4示出了根据本发明一个实施例的基于FPGA与恒温晶振的同步守时模块的守时情况下PPS信号上升沿滞后的示意图。图5示出了根据本发明一个实施例的基于FPGA与恒温 晶振的同步守时模块的守时情况下PPS信号上升沿超前的示意图。 [0056] 本发明在FPGA内部各个逻辑模块的紧密协同工作下,可以确保在外部同步信息丢失的情况下,10分钟内误差不超过±4us。如图4所示,上述同步守时模块在守时情况下,模 块产生的PPS信号上升沿比外部同步信息上升沿滞后。如图5所示,同步守时模块守时情况 下,模块产生的PPS信号上升沿比外部同步源上升沿超前。因为恒温晶振存在精度误差,因 此守时情况下PPS信号的上升沿可能超前或者滞后,但是在规定时间内的误差由恒温晶振 的精度和FPGA内部的算法决定。 [0057] 上述同步守时模块对于需要时钟同步的设备,如电力系统保护设备、电力系统计量设备、电力系统测量设备等,满足如下要求: [0058] 具有来自GPS的同步信号,包括PPS或者IRIG‑B码,并且当GPS信号丢失或者失联时,能够在规定时间内保持与GPS之间的时间差不超过相关标准所要求的时间误差。在GPS 信号丢失的时候,同步PPS无抖动,在再次连接GPS信号时能够无缝连接。对于设备来说,GPS 的丢失与否,对设备的实时性没有任何影响。 [0059] 上述同步守时模块可以拓展出多路输出,实现一路同步源输入,多路同步信号的输出,输出信号可以是PPS也可以编码成IRIG‑B码的格式输出。 [0060] 对于同步源是1588的同步设备,可以对上述同步守时模块进行拓展,添加解码1588的功能,将1588对应的PPS解析出来作为同步源。 [0061] 对于有采样功能并且对采样点间隔要求苛刻的应用,可以通过PPS生成与补偿模块在PPS间隔平均输出对应采样点脉冲,实现固定间隔的数据采样。 [0062] 虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是本领域技术人员能够理解,这些实施方式仅仅是作为示例示出的。本领域技术人员在本发明的教导下可 以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨 在限定本发明的范围,并借此涵盖这些权利要求本身及其等同变换的范围内的方法和结 构。 |