[发明专利]一种实现时间同步的方法和装置有效
申请号: | 200910237498.2 | 申请日: | 2009-11-13 |
公开(公告)号: | CN101729240A | 公开(公告)日: | 2010-06-09 |
发明(设计)人: | 贾林;李永利;张海东;刘洋;张睿博 | 申请(专利权)人: | 北京中创信测科技股份有限公司 |
主分类号: | H04L7/033 | 分类号: | H04L7/033;H04L29/06 |
代理公司: | 北京信远达知识产权代理事务所(普通合伙) 11304 | 代理人: | 王学强 |
地址: | 100081 北京市海淀区中关*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 时间 同步 方法 装置 | ||
技术领域
本发明涉及时间同步技术领域,特别涉及一种实现时间同步的方法和装 置。
背景技术
在数据采集领域,需要将板卡采集到的数据添加上时戳后发送到上层软 件,以计算数据在网络中的延时。目前一种常用的方法是采用现场可编程门 阵列(FPGA,Field-Programmable Gate Array)产生时戳。
参见图1,其是现有的为数据流打时间戳的处理流程示意图。在FPGA内 部有秒计数器和纳秒计数器,这两者构成时戳计数器。驱动从上层系统中取 当前的时间值,再将此值设置到FPGA初值寄存器中,FPGA将此值加载到两 个计数器上作为计数器的计数初值开始计数。例如,驱动从上层系统中取出 1970年1月1日00时写入FGPA初值寄存器秒位作为初值。当纳秒计数器计 数达到秒时,纳秒计数器清零同时秒计数器置位。板卡采集到的数据包后, 在数据包的包头实时添加上述两个计数器产生的时戳域,之后送到上层系统 做进一步处理。整个系统在多板卡的情况下有主从设置:主卡的秒计数器靠 纳秒计数器秒进位脉冲计数,从卡的秒计数器靠主卡的秒进位脉冲计数,以 达到多板卡间时戳同步的目的。
现有技术中,系统时间需要经常与网络时间进行同步,而该同步过程必 然造成需要频繁设置FPGA初值寄存器,当系统时间与FPGA内部时戳计数器 之间有差异时,经常会造成采集到数据包的包头时戳域反序的现象(正常收 包,随着时间的流逝先收到的包时戳域小,后收到的包时戳域大;反序是指 先收到的包时戳域大,后收到的包时戳域小)。
另外,上层系统设置的时间精度只有秒级,驱动在取系统时间时存在多 进程下抢占CPU、CPU时间片轮转以及存储器直接访问(DMA,Direct Memory Access)中断处理带来的延时,由于延时的存在,造成时戳初值设置 时误差较大。在多板卡的情况下,如果出现取系统时间跨秒的情况,会造成 主从卡之间时戳时间间隔始终差1秒的错误。
发明内容
本发明实施例在于提供一种实现时间同步的方法和装置,以解决现有技 术中时戳域反序的问题,同时提高初值设置的时间精度。
本发明实施例提供了一种实现时间同步的方法,包括:
在FPGA内设置时戳计数器和参考时戳计数器,正常运行时,所述参考 时戳计数器按照第一预设时钟周期匀速进位;所述方法还包括:
实时计算所述时戳计数器与所述参考时戳计数器直接的差值;
如果所述差值超出预设的差值区间,且所述时戳计数器当前的时戳计数 器值小于等于所述参考时戳计数器当前的参考时戳计数器值,则控制所述时 戳计数器按照第二预设时钟周期匀速进位,直到所述时戳计数器与所述参考 时戳计数器直接的差值在预设的差值区间内时,控制所述时戳计数器按照第 一预设时钟周期匀速进位;所述第二预设时钟周期大于第一预设时钟周期;
如果所述差值超出预设的差值区间,且所述时戳计数器当前的时戳计数 器值大于所述参考时戳计数器当前的参考时戳计数器值,则控制所述时戳计 数器按照第三预设时钟周期匀速进位,直到所述时戳计数器与所述参考时戳 计数器直接的差值在预设的差值区间内时,控制所述时戳计数器按照第一预 设时钟周期匀速进位;所述第三预设时钟周期小于第一预设时钟周期。
其中,所述方法还包括:在FPGA上设置使能寄存器控制位;
在初始设置时,所述使能寄存器控制位设置为“使能状态”,驱动将从上 层系统取得的时间初始值同时设置在时戳计数器和参考时戳计数器上;
在非初始设置时,将所述使能寄存器控制位设置为“非使能状态”,驱动 从上层系统取得的时间初始值设置在参考时戳计数器上。
其中,所述方法还包括:在FPGA上设置状态寄存器控制位;
判断用于表示板卡同步状态的同步环是否连接好,若连接好,则将所述 状态寄存器置于连接好的状态,否则,将所述状态寄存器置于非连接好的状 态。
其中,通过检测是否接收到秒进位脉冲,来判断板卡同步环是否连接好, 若接收到则连接好,反之,未连接好。
其中,所述方法还包括:
在正常运行时,驱动在T1时刻从取出时戳计数器的当前时间值,在T2 时刻从上层系统取出上层系统的当前时间值,在T3时刻将所述T1时刻和 T2时刻所对应的时间值传送给FPGA;所述T1<T2<T3;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中创信测科技股份有限公司,未经北京中创信测科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910237498.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:对称分组密码的生成方法及其装置
- 下一篇:影像撷取装置与影像前处理方法