一种时钟同步的实现方法

文档序号:7651546阅读:393来源:国知局
专利名称:一种时钟同步的实现方法
技术领域
本发明涉及一种时钟同步的实现方法,可用于任何低成本的同步时钟 应用。
背景技术
众多系统沿用传统己定义的协议从事时钟同步的需求。系统当中有两 种时钟同步的需求:一种是工作时钟的同步以减少因时钟频率差所产生的 信息丢失;另一种是逻辑时间(Time Stamp)的同步以确认不同地点的系 统认同相同的时间点以从事有时序的工作。本发明是对Time Stamp同步 的一种实现方法。传统时钟恢复的方法如下SLAVE (从设备)接收模块用本地的参考 时钟和接收的数据进行接口时钟的恢复。时钟恢复电路可以采用模拟技术 或数字技术。SLAVE用恢复出来的接口时钟做时隙分配的操作。而且所用 的时钟恢复电路都需用PLL (锁相环)产生高频信号,电路成本也高。上述方案有以下缺点1. 要求系统中的时钟恢复电路性能较高;2. 如果速率提升,将导致时钟提升,不利于扩展性;3. 工作的环境比较复杂,很有可能导致恢复出来的时钟出现毛刺 (Glitch)及时钟抖动(Jitter)等。
发明内容
本发明要解决的技术问题是提供一种时钟同步的实现方法,该方法的同步补偿非常稳定,无需使用PLL,电路成本低,且不会引入附加的时钟 抖动。为解决上述技术问题,本发明提供一种时钟同步的实现方法,包括如 下步骤(1)获取当前周期SLAVE (从设备)和MASTER (主设备)本地时 钟的偏差值;(2)找到下个周期均分的补偿点;(3)在下个周期均分的补 偿点中,用当前周期的偏差值作为下个周期的补偿量对SLAVE时钟的时间 戳做相应的补偿。步骤(1)中,所述获取当前周期SLAVE和MASTER本地时钟的偏差值 采用如下方法SLAVE在当前周期收到MASTER发出的Gate MPCPDU报文 中携带的时间戳,将该时间戳和SLAVE本地时钟的时间戳做比较,就能得 到MASTER和SLAVE本地时钟的偏差值。步骤(2)中,所述找到下个周期均分的补偿点采用除法单元找到补 偿点,或者采用差值delta[n:O]高低比特互换找到近似补偿点的方法。步骤(3)中,所述做相应的补偿采取ju即动作或者r印eat动作。和现有技术相比,本发明具有以下有益效果1. 同步补偿非常稳定;2. 设计思路简单;3. 只需要精度不是很高的晶振,也无需片内的PLL去产生高频率的时 钟,电路成本低;4. 无需使用PLL,由接收到的信号中提取时钟便可维持高的逻辑时钟 (Time Stamp)的精准度; 5. 这种实时(每个周期)补偿方法不会引入附加的时钟抖动在传输信号当中;6. 所占用的逻辑资源非常少。


图1是本发明中MASTER时钟和SLAVE时钟产生时钟偏差的原理示意图;图2是在SLAVE时钟慢于MASTER时钟的情况下,采用本发明方法补 偿时钟偏差的示意图;图3是在SLAVE时钟快于MASTER时钟的情况下,采用本发明方法补 偿时钟偏差的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细的说明。头端的MASTER (主设备)和用户端的SLAVE (从设备)位于不同的地 点。因此他们需要不同的晶振产生各自的时钟。SLAVE通过接受MASTER周期性(比如10ms)发出的Gate MPCPDU报 文(以下简称Gate)来使得它内部的时间戳(Time Stamp)和位于MASTER 内部的主时间戳(Master Time Stamp)同步。MASTER也会接受SLAVE周 期性(10ms)发出R印ort MPCPDU报文来获取SLAVE本地的时间戳信息, 从而可以计算MASTER和SLAVE之间的Round Trip (往返)延迟。MASTER和SLAVE的本地时钟源是独立的(如25MHz)晶振(Cystal)。 通常普通的晶振有300 500ppm的误差,因此在SLAVE收到一个Gate控 制桢到收到下一个Gate之间的间隔/周期(如10ms)内,用他们各自的
晶振计算时间戳肯定会存在时钟偏差(clock variations)。如图1所示,中间是MASTER本地的晶振产生的时间序列(MASTER本 地时间),上面是SLAVE晶振较慢的时间序列(SLAVE本地快时间),下面 是SLAVE晶振较快的时间序列(SLAVE本地慢时间)。本发明就是为了补 偿各自独立晶振引起的时钟偏差。1. 当SLAVE收到的时间戳比本地的时间戳大的时候,也就是说SLAVE 本地的(如25固z)晶振比區STER的(如25MHz)晶振要慢。这时需要 SLAVE的时间戳在一个周期(如10ms)的累加过程中的某些时钟节拍中要 有"+2" (jump)过程。2. 当SLAVE收到的时间戳比本地的时间戳小的时候,也就是说SLAVE 本地的(如25MHz)晶振比MASTER的(如25MHz)晶振要快。这时需要 SLAVE的时间戳在一个周期(如10ms)的累加过程中的某些时钟节拍中要 有"+0" (r印eat)过程。SLAVE如何获取每个周期和MASTER本地时钟的差值(正表示快,负 表示慢),以便于SLAVE可以在下一个周期对Time Stamp做相应的补偿 (jump或者r印eat)。虽然SLAVE和MASTER各自的晶振有偏差,但是这 个偏差是系统偏差,不会在一个周期内(如10ms)频繁抖动。本发明正 是利用这个特点,巧妙地用上个周期的偏差值做为当前周期的补偿量,使 得设计非常简单,所耗费的逻辑资源也非常少。本发明提供一种时钟同步的实现方法,包括如下步骤 (1)获取当前周期SLAVE和MASTER本地时钟的偏差值,具体采用如下 方法SLAVE在当前周期收到MASTER发出的Gate MPCPDU报文中携带的时间 戳,将该时间戳和SLAVE本地时钟的时间戳做比较,就能得到MASTER禾nSLAVE 本地时钟的偏差值。(2) 找到下个周期均分的补偿点;(3) 在下个周期均分的补偿点中,用当前周期的偏差值作为下个周 期的补偿量对SLAVE时钟的时间戳做相应的补偿(采取jump动作或者 repeat动作)。MASTER每个周期都会发送一个Gate给SLAVE,而且间隔固定,SLAVE 在当前周期开始时刻收到的MASTER下发的Gate (MASTER—LOCAL—TS)中携 带的时间戳Time Stamp 和本地 SLAVE 的时间戳 Time Stamp (SLAVE—LOCAL—TS)做比较,就能得到MASTER和SLAVE的时钟差值以 及快慢信息。下面分两种情况进行介绍SLAVE时钟慢于MASTER时钟; 以及SLAVE时钟快于MASTER时钟。为了让这个时差值变得有意义,系统 会固定地由MASTER发送带有时间戳Time Stamp的Gate控制桢给 SLAVE。即使因为偶然的错误,Gate控制桢因故或无故丢失,系统仍然可 以前一个周期的偏差作为当前周期Time Stamp偏差的缺省值。如图2所示,SLAVE时钟慢于MASTER时钟的情况。SLAVE收到第一个 Gate (MASTER_LOCAL—TS),把Gate中的Time Stamp (4)加载(Reload) 到SLAVE本地时钟(SLAVE—LOCAL一TS),然后开始累加,到收到第二个Gate 的时候,SLAVE—L0CAL_TS = 130 , MASTER—LOCAL—TS=132 , 这时 MASTER—LOCAL—TS — SLAVE一LOCAL一TS = +2。+ 2这个差值表示在一个周期里面SLAVE的时钟比MASTER的时钟慢2 拍。所以SLAVE的补偿时钟(SLAVE—SYNC—TS)会在下一个周期均分的两
拍补偿点中采取jump (+2)的动作。这样最后补偿后的时钟和MASTER 能保持同步。如图3所示,SLAVE时钟快于MASTER时钟的情况。SLAVE收到第一个 Gate (MASTER—LOCAL—TS),把Gate中的Time Stamp (4)加载(Reload) 到SLAVE本地时钟(SLAVE—LOCAL—TS),然后开始累加,到收到第二个Gate 的时候,SLAVE—LOCAL—TS = 134 , MASTER—LOCAL—TS二 132 , 这时 MASTER—L0CAL_TS — SLAVE—LOCAL—TS =—2。
一2这个差值表示在一个周期里面SLAVE的时钟比MASTER的时钟快2 拍。所以SLAVE的补偿时钟(SLAVE—SYNC—TS)会在下一个周期均分的两 拍补偿点中采取r印eat (+0)的动作。这样最后补偿后的时钟和MASTER 能保持同步。
对于如何均分地找到下一个补偿周期的补偿点方法有很多,可以用简 单的除法单元找到补偿点,也可以用差值delta[n:O]高低比特互换找到 近似补偿点等方法。其中,n的值和一个周期的总时钟数的位宽相同。
对于用除法单元找补偿点的方法比较简单,但是比较耗费逻辑资源。 例如一个周期是16个时钟节拍(0 15),上个周期得到的时钟差值是+3。 也就是说需要把SLAVE的本周期平分成4段(3 + 1),那么SLAVE的一个 周期的时钟节拍数除以(时钟差值+l)就能得到3个补偿点,每个补偿 点的间隔是16/4=4。那么这三个补偿点分别是4、 8、 12。
还有一种简单的方法,就是把时钟差值delta[n:0]高低bit (比特) 互换找到补偿点,这种方法简单实用,相对于用除法单元找补偿点的方法, 所耗费的逻辑资源很少。例如一个周期是16个时钟节拍(0 15),上个 周期得到的时钟差值是+3,即delta[3:0]=3,那么3个原始的补偿点分 别是l, 2, 3。把delta高低bit互换之后三个补偿点分别如下原始补 偿点1(4, b0001)高低bit互换后得到8(4' bl000);原始补偿点 2(4, b0010)高低bit互换后得到4(4' b0100);原始补偿点3(4, b0011) 高低bit互换后得到12(4, b1100)。所以经过高低bit互换之后的三个 补偿点分别是4、 8、 12。显然这三个补偿点也能均匀地分插在一个周期 里面。
权利要求
1、一种时钟同步的实现方法,其特征在于,包括如下步骤(1)获取当前周期SLAVE和MASTER本地时钟的偏差值;(2)找到下个周期均分的补偿点;(3)在下个周期均分的补偿点中,用当前周期的偏差值作为下个周期的补偿量对SLAVE时钟的时间戳做相应的补偿。
2、 如权利要求l所述的时钟同步的实现方法,其特征在于,步骤(1) 中,所述获取当前周期SLAVE和MASTER本地时钟的偏差值采用如下方法 SLAVE在当前周期收到MASTER发出的Gate MPCPDU报文中携带的时间戳,将 该时间戳和SLAVE本地时钟的时间戳做比较,就能得到區STER<和SLAVE本地 时钟的偏差值。
3、 如权利要求l所述的时钟同步的实现方法,其特征在于,步骤(2) 中,所述找到下个周期均分的补偿点采用除法单元找到补偿点,或者采用 差值del ta [n: 0]高低比特互换找到近似补偿点的方法。
4、 如权利要求l所述的时钟同步的实现方法,其特征在于,步骤(3) 中,所述做相应的补偿采取jump动作或者repeat动作。
全文摘要
本发明公开了一种时钟同步的实现方法,包括如下步骤(1)获取当前周期SLAVE(从设备)和MASTER(主设备)本地时钟的偏差值;(2)找到下个周期均分的补偿点;(3)在下个周期均分的补偿点中,用当前周期的偏差值作为下个周期的补偿量对SLAVE时钟的时间戳做相应的补偿。该方法的同步补偿非常稳定,无需使用PLL(锁相环),电路成本低,且不会引入附加的时钟抖动。
文档编号H04L7/00GK101399653SQ20071009409
公开日2009年4月1日 申请日期2007年9月25日 优先权日2007年9月25日
发明者张欣明, 珂 李, 杜兴东 申请人:普然通讯技术(上海)有限公司;普然技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1