一种实现时间同步的方法和装置的制作方法

文档序号:7720030阅读:96来源:国知局
专利名称:一种实现时间同步的方法和装置的制作方法
技术领域
本发明涉及时间同步技术领域,特别涉及一种实现时间同步的方法和装置。
背景技术
在数据采集领域,需要将板卡采集到的数据添加上时戳后发送到上层软件, 以计算数据在网络中的延时。目前一种常用的方法是采用现场可编程门阵列(FPGA, Field-Programmable Gate Array)产生时戮。 参见图l,其是现有的为数据流打时间戳的处理流程示意图。在FPGA内部有秒计 数器和纳秒计数器,这两者构成时戳计数器。驱动从上层系统中取当前的时间值,再将此值 设置到FPGA初值寄存器中,FPGA将此值加载到两个计数器上作为计数器的计数初值开始 计数。例如,驱动从上层系统中取出1970年1月1日00时写入FGPA初值寄存器秒位作为 初值。当纳秒计数器计数达到秒时,纳秒计数器清零同时秒计数器置位。板卡采集到的数 据包后,在数据包的包头实时添加上述两个计数器产生的时戳域,之后送到上层系统做进 一步处理。整个系统在多板卡的情况下有主从设置主卡的秒计数器靠纳秒计数器秒进位 脉冲计数,从卡的秒计数器靠主卡的秒进位脉冲计数,以达到多板卡间时戳同步的目的。
现有技术中,系统时间需要经常与网络时间进行同步,而该同步过程必然造成需 要频繁设置FPGA初值寄存器,当系统时间与FPGA内部时戳计数器之间有差异时,经常会造 成采集到数据包的包头时戳域反序的现象(正常收包,随着时间的流逝先收到的包时戳域 小,后收到的包时戳域大;反序是指先收到的包时戳域大,后收到的包时戳域小)。
另外,上层系统设置的时间精度只有秒级,驱动在取系统时间时存在多进程下抢 占CPU、CPU时间片轮转以及存储器直接访问(DMA,DirectMemory Access)中断处理带来的 延时,由于延时的存在,造成时戳初值设置时误差较大。在多板卡的情况下,如果出现取系 统时间跨秒的情况,会造成主从卡之间时戳时间间隔始终差1秒的错误。

发明内容
本发明实施例在于提供一种实现时间同步的方法和装置,以解决现有技术中时戳
域反序的问题,同时提高初值设置的时间精度。 本发明实施例提供了一种实现时间同步的方法,包括 在FPGA内设置时戳计数器和参考时戳计数器,正常运行时,所述参考时戳计数器 按照第一预设时钟周期匀速进位;所述方法还包括 实时计算所述时戳计数器与所述参考时戳计数器直接的差值; 如果所述差值超出预设的差值区间,且所述时戳计数器当前的时戳计数器值小于 等于所述参考时戳计数器当前的参考时戳计数器值,则控制所述时戳计数器按照第二预设 时钟周期匀速进位,直到所述时戳计数器与所述参考时戳计数器直接的差值在预设的差值 区间内时,控制所述时戳计数器按照第一预设时钟周期匀速进位;所述第二预设时钟周期 大于第一预设时钟周期;
如果所述差值超出预设的差值区间,且所述时戳计数器当前的时戳计数器值大于 所述参考时戳计数器当前的参考时戳计数器值,则控制所述时戳计数器按照第三预设时钟 周期匀速进位,直到所述时戳计数器与所述参考时戳计数器直接的差值在预设的差值区间 内时,控制所述时戳计数器按照第一预设时钟周期匀速进位;所述第三预设时钟周期小于 第一预设时钟周期。
其中,所述方法还包括在FPGA上设置使能寄存器控制位; 在初始设置时,所述使能寄存器控制位设置为"使能状态",驱动将从上层系统取 得的时间初始值同时设置在时戳计数器和参考时戳计数器上; 在非初始设置时,将所述使能寄存器控制位设置为"非使能状态",驱动从上层系 统取得的时间初始值设置在参考时戳计数器上。
其中,所述方法还包括在FPGA上设置状态寄存器控制位; 判断用于表示板卡同步状态的同步环是否连接好,若连接好,则将所述状态寄存 器置于连接好的状态,否则,将所述状态寄存器置于非连接好的状态。 其中,通过检测是否接收到秒进位脉冲,来判断板卡同步环是否连接好,若接收到
则连接好,反之,未连接好。 其中,所述方法还包括 在正常运行时,驱动在Tl时刻从取出时戳计数器的当前时间值,在T2时刻从上层 系统取出上层系统的当前时间值,在T3时刻将所述T1时刻和T2时刻所对应的时间值传送 给FPGA ;所述Tl < T2 < T3 ; FPGA判断T3与Tl时刻的差值是否小于等于预设的精度阈值,若是,则将T2时刻 对应的时间值写入到FPGA中,否则,返回错误信息。
其中,所述方法还包括 当存在多个板卡时,在加载FPGA时,将所有的板卡都设置为主卡,之后,先通过 FPGA的主从寄存器设置多个板卡中的一个为主卡,其余为从卡,然后再将从上层系统取到 的时间设置到FPGA中,且先设置从卡的时间再设置主卡的时间。
本发明实施例还提供了一种实现时间同步的装置,包括 FPGA,所述FPGA内设置有时戳计数器和参考时戳计数器,正常运行时,所述参考 时戳计数器按照第一预设时钟周期匀速进位; 差值计算模块,用于实时计算所述时戳计数器与所述参考时戳计数器直接的差 值; 分析控制模块,用于在所述差值超出预设的差值区间,且所述时戳计数器当前的 时戳计数器值小于等于所述参考时戳计数器当前的参考时戳计数器值时,控制所述时戳计 数器按照第二预设时钟周期匀速进位,直到所述时戳计数器与所述参考时戳计数器直接的 差值在预设的差值区间内时,控制所述时戳计数器按照第一预设时钟周期匀速进位;所述 第二预设时钟周期大于第一预设时钟周期;用于在所述差值超出预设的差值区间,且所述 时戳计数器当前的时戳计数器值大于所述参考时戳计数器当前的参考时戳计数器值时,控 制所述时戳计数器按照第三预设时钟周期匀速进位,直到所述时戳计数器与所述参考时戳 计数器直接的差值在预设的差值区间内时,控制所述时戳计数器按照第一预设时钟周期匀 速进位;所述第三预设时钟周期小于第一预设时钟周期。
其中,所述装置还包括 初值设置控制模块,用于在初始设置时,将FPGA上的使能寄存器设置为"使能状 态",将从上层系统取得的时间初始值同时设置在时戳计数器和参考时戳计数器上;在非初 始设置时,将FPGA上的使能寄存器设置为"非使能状态",将从上层系统取得的时间初始值
设置在参考时戳计数器上。
其中,所述装置还包括 同步状态检测模块,用于检测表示板卡同步状态的同步环是否连接好,若连接好, 则将状态寄存器置于连接好的状态,否则,将所述状态寄存器置于非连接好的状态。
其中,所述装置还包括 握手保护模块,用于在正常运行时,在T1时刻从取出时戳计数器的当前时间值, 在T2时刻从上层系统取出上层系统的当前时间值,在T3时刻将所述T1时刻和T2时刻所 对应的时间值传送给FPGA ;所述Tl < T2 < T3 ;当FPGA判断出T3与Tl时刻的差值是否 小于等于预设的精度阈值时,将T2时刻对应的时间值写入到FPGA中,当FPGA判断出T3与 Tl时刻的差值是否大于预设的精度阈值时,返回错误信息。 应用本发明实施例提供的实现时间同步的方法和装置,由于时戳计数器和参考时 戳计数器两个计数器都在同步计数中,这样做可以平滑的减少外部同步时钟频率与本地 FPGA产生的时钟频率之间的差异,保证了不会出现时戳域倒序的现象。再有,由于设置了强 制设置时戳使能位,如当此位为1时,设置的时戳初值同时立刻加载到时戳计数器和参考 时戳计数器中,否则,设置的时戳初值立刻加载到参考时戳计数器,时戳计数器则按照上述 的调整机制慢慢将频率调整到与参考时戳计数器一致为止,使得时戳的调整更平滑。在握 手机制的保证下,保证了系统时间误差在所要求的精度范围内,从而使得系统精度得到提 高。


为了更清楚地说明本发明实施例和现有技术中的技术方案,下面将对实施例和现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
图1是现有的为数据流打时间戳的处理流程示意图; 图2是根据本发明实施例的为数据流打时间戳的处理流程示意图; 图3是根据本发明实施例的实现时间同步的方法流程图; 图4是根据本发明实施例的握手保护机制实现示意图; 图5是根据本发明实施例的实现时间同步的装置结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
本发明实施例中所涉及的实现时间同步的方法和装置实际是保证时间戳同步的 方法和装置。
为了实现本发明,首先需要做一些设置,对具体的设置说明如下 在FPGA内设置时戳计数器和参考时戳计数器,正常运行时,所述参考时戳计数器
按照第一预设时钟周期匀速进位。
驱动对上层系统之间接口的设置如下 A.增加一个同步时间初值设置函数,由上层程序指定时间初值和主从关系.保证 所有卡的时间初始值相同; B.设置初值顺序为先设置所有从卡的时间,最后设置主卡的时间;
C.正常工作时,若做时间同步操作,由驱动从上层系统取当前的时间值;
D.增加一个确定板卡是否支持同步机制的驱动接口 ; E.增加一个判断同步环是否工作正常的驱动接口,其中,检测同步环即表示检测 板卡的同步状态。具体的,通过是否接到秒进位脉冲来判断同步环是否接好,若接好,则表 明同步环工作正常,可以保证同步操作,若未接好,则表明同步环异常,不能保证同步操作。
上述设置的功能可以用三个接口函数实现 设置时间函数(SetTime()),用于设置时间初始值和多个板卡的主从关系,由上层 系统对所有支持同步的板卡进行设置,以保证时间初始值相同,且保证先设置从卡,最后设 置主卡; 设置同步类型函数(GetSyncType()),该函数用于通过获取指定寄存器的状态,如 同步寄存器的状态,来获取板卡是否支持同步的信息,并给调用者返回表明是否支持同步 的状态值。 检测同步状态函数(CheckSyncStatus()),用于检查板卡的同步状态,即检查同步 环是否正常工作,具体的,可以对所有支持同步的板卡都调用一遍,如果都成功,则说明同 步环工作正常。 驱动对FPGA的接口设置如下 A.增加使能寄存器控制位,当该控制位表示使能(enable)时,允许直接设置板卡 的时间,立即生效,即当该控制位表示enable时,可以设置时戳计数器和参考时戳计数器 的时间值,且立即生效;当该控制位表示非使能(disable)时,设置的时间在一段时间后, 达到设置的时间值,即当该控制位表示disable时,只能设置参考时戳计数器的时间值,不 能设置时戳计数器的时间值; B.增加一个状态寄存器控制位,通过判断是否接到秒进位脉冲,来判断同步环是 否接好。 下面结合附图对本发明实施例再做详细说明。 参见图2,其是根据本发明实施例的为数据流打时间戳的处理流程示意图,参见图 3,其是根据本发明实施例的实现时间同步的方法流程图。结合图2和图3,具体包括在 FPGA内设置时戳计数器和参考时戳计数器,正常运行时,所述参考时戳计数器按照第一预 设时钟周期匀速进位;所述方法还包括 步骤301,实时计算所述时戳计数器与所述参考时戳计数器直接的差值; 步骤302,判断所述差值超出预设的差值区间,且所述时戳计数器当前的时戳计数器值小于等于所述参考时戳计数器当前的参考时戳计数器值时,执行步骤303,如果所述差 值超出预设的差值区间,且所述时戳计数器当前的时戳计数器值大于所述参考时戳计数器 当前的参考时戳计数器值,则执行步骤304 ; 步骤303,控制所述时戳计数器按照第二预设时钟周期匀速进位,直到所述时戳计 数器与所述参考时戳计数器直接的差值在预设的差值区间内时,控制所述时戳计数器按照 第一预设时钟周期匀速进位;所述第二预设时钟周期大于第一预设时钟周期;
步骤304,控制所述时戳计数器按照第三预设时钟周期匀速进位,直到所述时戳计 数器与所述参考时戳计数器直接的差值在预设的差值区间内时,控制所述时戳计数器按照 第一预设时钟周期匀速进位;所述第三预设时钟周期小于第一预设时钟周期。
例如,在FPGA内设置两个计数器一个"时戳计数器",做打时戳的纳秒和秒计数; "参考时戳计数器",做参考的纳秒和秒计数。"参考时戳计数器"的纳秒始终按照l个时钟 周期20ns匀速进位;而"时戳计数器"的纳秒按照一定规律进位。
"时戳计数器"与"参考时戳计数器"总是实时计算差值,有两种情况
(1)时戳计数器值< =参考时戳计数器值,此时表示外部同步时钟频率比本地 FPGA产生的时钟频率快,此时时戳计数器按照1个时钟周期40ns的速度进位,直到时戳计 数器与参考时戳计数器实时计算的差值接近0时,如在-5ns到+5ns这个区间时时,恢复到 按照l个时钟周期20ns的速度进位,达到同步的目的; (2)时戳计数器值〉参考时戳计数器值,此时表示外部同步时钟频率比本地FPGA
产生的时钟频率慢,为了避免打时戳出现的反序错误,时戳计数器按照1个时钟周期10ns
的速度进位,直到时戳计数器与参考时戳计数器实时计算的差值接近0时,如在-5ns到
+5ns这个区间时,恢复到按照1个时钟周期20ns的速度进位,达到同步的目的。 由于时戳计数器和参考时戳计数器两个计数器都在同步计数中,这样做可以平滑
的减少外部同步时钟频率与本地FPGA产生的时钟频率之间的差异,而且还保证了不会出
现时戳域倒序的现象。 需要说明的是,对于图3所示实施例,还可以包括在FPGA上设置使能寄存器控制 位;在初始设置时,所述使能寄存器控制位设置为"使能状态",如设置为l,驱动将从上层 系统取得的时间初始值同时设置在时戳计数器和参考时戳计数器上;在非初始设置时,将 所述使能寄存器控制位设置为"非使能状态",如设置为0,此时驱动从上层系统取得的时间 初始值只能设置在参考时戳计数器上。 由于设置了强制设置时戳使能位,如当此位为1时,设置的时戳初值同时立刻加 载到时戳计数器和参考时戳计数器中,否则,设置的时戳初值立刻加载到参考时戳计数器, 时戳计数器则按照上述的调整机制慢慢将频率调整到与参考时戳计数器一致为止。这样, 使得时戳的调整更平滑。 需要说明的是,对于图3所示实施例,还可以包括在FPGA上设置状态寄存器控制 位;通过检测是否接收到秒进位脉冲来判断用于表示板卡同步状态的同步环是否连接好, 若连接好,则将所述状态寄存器置于连接好的状态,否则,将所述状态寄存器置于非连接好 的状态。这样,可以更好的保证同步的稳定性,避免由于连接问题而导致的不同步。
需要说明的是,对于图3所示实施例,还可以包括握手保护机制,参见图4,其是根 据本发明实施例的握手保护机制实现示意图,该机制具体包括
在正常运行时,驱动在Tl时刻从取出时戳计数器的当前时间值,在T2时刻从上层 系统取出上层系统的当前时间值,在T3时刻将所述T1时刻和T2时刻所对应的时间值传送 给FPGA ;所述Tl < T2 < T3 ; FPGA判断T3与Tl时刻的差值是否小于等于预设的精度阈值,若是,则将T2时刻 对应的时间值写入到FPGA中,否则,返回错误信息。 例如,为了使系统时间的设置延时小于lms,所采用的握手保护机制包括驱动在 取上层系统时间T2前,先取出时戳计数器在Tl时刻的值,然后将Tl, T2的值写入FPGA寄 存器。FPGA侧时戳计数器在T3时刻接收到T1,T2的值后,立刻比较T3与Tl的差值,当它 们的差值小于lms时,T2值为有效初值,将它设置到参考时戳计数器中;否则说明T2值延 时过大,FPGA返回设置失败的信号,放弃此次初值设置,由驱动侧再次发起初值设置动作, 直到成功为止。这样,保证了系统时间误差在所要求的精度范围内,从而使得系统精度得到 提高。 需要说明的是,对于上述所有实施例,当存在多个板卡时,在加载FPGA时,将所有 的板卡都设置为主卡,之后,先通过FPGA的主从寄存器设置多个板卡中的一个为主卡,其 余为从卡,然后再将从上层系统取到的时间设置到FPGA中,且先设置从卡的时间再设置主 卡的时间。 本发明实施例还提供了一种实现时间同步的装置,参见图5,具体包括 FPGA501,所述FPGA内设置有时戳计数器和参考时戳计数器,正常运行时,所述参
考时戳计数器按照第一预设时钟周期匀速进位; 差值计算模块502,用于实时计算所述时戳计数器与所述参考时戳计数器直接的 差值; 分析控制模块503,用于在所述差值超出预设的差值区间,且所述时戳计数器当前 的时戳计数器值小于等于所述参考时戳计数器当前的参考时戳计数器值时,控制所述时戳 计数器按照第二预设时钟周期匀速进位,直到所述时戳计数器与所述参考时戳计数器直接 的差值在预设的差值区间内时,控制所述时戳计数器按照第一预设时钟周期匀速进位;所 述第二预设时钟周期大于第一预设时钟周期;用于在所述差值超出预设的差值区间,且所 述时戳计数器当前的时戳计数器值大于所述参考时戳计数器当前的参考时戳计数器值时, 控制所述时戳计数器按照第三预设时钟周期匀速进位,直到所述时戳计数器与所述参考时 戳计数器直接的差值在预设的差值区间内时,控制所述时戳计数器按照第一预设时钟周期 匀速进位;所述第三预设时钟周期小于第一预设时钟周期。
上述装置还可以包括 初值设置控制模块504,用于在初始设置时,将FPGA上的使能寄存器设置为"使能 状态",将从上层系统取得的时间初始值同时设置在时戳计数器和参考时戳计数器上;在非 初始设置时,将FPGA上的使能寄存器设置为"非使能状态",将从上层系统取得的时间初始 值设置在参考时戳计数器上。
上述装置还可以包括 同步状态检测模块505,用于检测表示板卡同步状态的同步环是否连接好,若连接 好,则将状态寄存器置于连接好的状态,否则,将所述状态寄存器置于非连接好的状态。
上述装置还可以包括
握手保护模块506,用于在正常运行时,在T1时刻从取出时戳计数器的当前时间 值,在T2时刻从上层系统取出上层系统的当前时间值,在T3时刻将所述Tl时刻和T2时刻 所对应的时间值传送给FPGA ;所述Tl < T2 < T3 ;当FPGA判断出T3与Tl时刻的差值是否 小于等于预设的精度阈值时,将T2时刻对应的时间值写入到FPGA中,当FPGA判断出T3与 Tl时刻的差值是否大于预设的精度阈值时,返回错误信息。 应用本发明实施例提供的实现时间同步的装置,由于时戳计数器和参考时戳计数 器两个计数器都在同步计数中,这样做可以平滑的减少外部同步时钟频率与本地FPGA产 生的时钟频率之间的差异,保证了不会出现时戳域倒序的现象。再有,由于设置了强制设置 时戳使能位,如当此位为1时,设置的时戳初值同时立刻加载到时戳计数器和参考时戳计 数器中,否则,设置的时戳初值立刻加载到参考时戳计数器,时戳计数器则按照上述的调整 机制慢慢将频率调整到与参考时戳计数器一致为止,使得时戳的调整更平滑。在握手机制 的保证下,保证了系统时间误差在所要求的精度范围内,从而使得系统精度得到提高。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存 在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要 素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句"包括一个......"限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在
本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
10
权利要求
一种实现时间同步的方法,其特征在于,包括在FPGA内设置时戳计数器和参考时戳计数器,正常运行时,所述参考时戳计数器按照第一预设时钟周期匀速进位;所述方法还包括实时计算所述时戳计数器与所述参考时戳计数器直接的差值;如果所述差值超出预设的差值区间,且所述时戳计数器当前的时戳计数器值小于等于所述参考时戳计数器当前的参考时戳计数器值,则控制所述时戳计数器按照第二预设时钟周期匀速进位,直到所述时戳计数器与所述参考时戳计数器直接的差值在预设的差值区间内时,控制所述时戳计数器按照第一预设时钟周期匀速进位;所述第二预设时钟周期大于第一预设时钟周期;如果所述差值超出预设的差值区间,且所述时戳计数器当前的时戳计数器值大于所述参考时戳计数器当前的参考时戳计数器值,则控制所述时戳计数器按照第三预设时钟周期匀速进位,直到所述时戳计数器与所述参考时戳计数器直接的差值在预设的差值区间内时,控制所述时戳计数器按照第一预设时钟周期匀速进位;所述第三预设时钟周期小于第一预设时钟周期。
2. 根据权利要求1所述的方法,其特征在于,所述方法还包括在FPGA上设置使能寄 存器控制位;在初始设置时,所述使能寄存器控制位设置为"使能状态",驱动将从上层系统取得的 时间初始值同时设置在时戳计数器和参考时戳计数器上;在非初始设置时,将所述使能寄存器控制位设置为"非使能状态",驱动从上层系统取 得的时间初始值设置在参考时戳计数器上。
3. 根据权利要求1所述的方法,其特征在于,所述方法还包括在FPGA上设置状态寄 存器控制位;判断用于表示板卡同步状态的同步环是否连接好,若连接好,则将所述状态寄存器置 于连接好的状态,否则,将所述状态寄存器置于非连接好的状态。
4. 根据权利要求3所述的方法,其特征在于,通过检测是否接收到秒进位脉冲,来判断 板卡同步环是否连接好,若接收到则连接好,反之,未连接好。
5. 根据权利要求1、2或3所述的方法,其特征在于,所述方法还包括 在正常运行时,驱动在T1时刻从取出时戳计数器的当前时间值,在T2时刻从上层系统取出上层系统的当前时间值,在T3时刻将所述T1时刻和T2时刻所对应的时间值传送给 FPGA ;所述Tl < T2 < T3 ;FPGA判断T3与Tl时刻的差值是否小于等于预设的精度阈值,若是,则将T2时刻对应 的时间值写入到FPGA中,否则,返回错误信息。
6. 根据权利要求5所述的方法,其特征在于,所述方法还包括当存在多个板卡时,在加载FPGA时,将所有的板卡都设置为主卡,之后,先通过FPGA的 主从寄存器设置多个板卡中的一个为主卡,其余为从卡,然后再将从上层系统取到的时间 设置到FPGA中,且先设置从卡的时间再设置主卡的时间。
7. —种实现时间同步的装置,其特征在于,包括FPGA,所述FPGA内设置有时戳计数器和参考时戳计数器,正常运行时,所述参考时戳 计数器按照第一预设时钟周期匀速进位;差值计算模块,用于实时计算所述时戳计数器与所述参考时戳计数器直接的差值; 分析控制模块,用于在所述差值超出预设的差值区间,且所述时戳计数器当前的时戳 计数器值小于等于所述参考时戳计数器当前的参考时戳计数器值时,控制所述时戳计数器 按照第二预设时钟周期匀速进位,直到所述时戳计数器与所述参考时戳计数器直接的差值 在预设的差值区间内时,控制所述时戳计数器按照第一预设时钟周期匀速进位;所述第二 预设时钟周期大于第一预设时钟周期;用于在所述差值超出预设的差值区间,且所述时戳 计数器当前的时戳计数器值大于所述参考时戳计数器当前的参考时戳计数器值时,控制所 述时戳计数器按照第三预设时钟周期匀速进位,直到所述时戳计数器与所述参考时戳计数 器直接的差值在预设的差值区间内时,控制所述时戳计数器按照第一预设时钟周期匀速进 位;所述第三预设时钟周期小于第一预设时钟周期。
8. 根据权利要求7所述的方法,其特征在于,所述装置还包括初值设置控制模块,用于在初始设置时,将FPGA上的使能寄存器设置为"使能状态", 将从上层系统取得的时间初始值同时设置在时戳计数器和参考时戳计数器上;在非初始设 置时,将FPGA上的使能寄存器设置为"非使能状态",将从上层系统取得的时间初始值设置 在参考时戳计数器上。
9. 根据权利要求7所述的装置,其特征在于,所述装置还包括同步状态检测模块,用于检测表示板卡同步状态的同步环是否连接好,若连接好,则将 状态寄存器置于连接好的状态,否则,将所述状态寄存器置于非连接好的状态。
10. 根据权利要求7、8或9所述的装置,其特征在于,所述装置还包括 握手保护模块,用于在正常运行时,在T1时刻从取出时戳计数器的当前时间值,在T2时刻从上层系统取出上层系统的当前时间值,在T3时刻将所述Tl时刻和T2时刻所对应的 时间值传送给FPGA ;所述Tl < T2 < T3 ;当FPGA判断出T3与Tl时刻的差值是否小于等于 预设的精度阈值时,将T2时刻对应的时间值写入到FPGA中,当FPGA判断出T3与Tl时刻 的差值是否大于预设的精度阈值时,返回错误信息。
全文摘要
本发明公开了一种实现时间同步的方法和装置,由于时戳计数器和参考时戳计数器两个计数器都在同步计数中,这样做可以平滑的减少外部同步时钟频率与本地FPGA产生的时钟频率之间的差异,保证了不会出现时戳域倒序的现象。再有,由于设置了强制设置时戳使能位,如当此位为1时,设置的时戳初值同时立刻加载到时戳计数器和参考时戳计数器中,否则,设置的时戳初值立刻加载到参考时戳计数器,时戳计数器则按照上述的调整机制慢慢将频率调整到与参考时戳计数器一致为止,使得时戳的调整更平滑。在握手机制的保证下,保证了系统时间误差在所要求的精度范围内,从而使得系统精度得到提高。
文档编号H04L29/06GK101729240SQ200910237498
公开日2010年6月9日 申请日期2009年11月13日 优先权日2009年11月13日
发明者刘洋, 张海东, 张睿博, 李永利, 贾林 申请人:北京中创信测科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1