时钟同步方法及光网络单元的制作方法_2

文档序号:9754180阅读:来源:国知局
子钟三部分组成,其中,原子钟用于为OLT提供高精度时钟(125M),0LT使用该原子钟提供的时钟作为系统时钟,ONU从OLT发送的时钟报文恢复出所述系统时钟作为ONU自己的系统时钟。
[0036]OLT在整秒时会发出脉冲,ONU在整秒时也发出脉冲,ONU和OLT的脉冲应该在同时发出。
[0037]而实际使用中,如果OLT没有使用精准的原子钟作为时钟源,则ONU的计时器每个周期都会累计一个很小的偏差,最终反映出来则是ONU发出的脉冲距离OLT的脉冲可能会有一个固定的差值,而且如果ONU不是每秒都配置一次时钟的话,这个差值每秒都会拉大。
[0038]本发明实施例的时钟同步方法,可以解决上述问题,在EPON低精度时钟条件下实现ONU的高精度同步,主要包括三个阶段:I) ONU初始化阶段的学习,主要是确定校准时需要的偏移值;2) ONU与OLT的时钟同步;3)在时钟同步过程中不断进行的时钟偏差校准。
[0039]如图2所示,本发明实施例的时钟同步方法主要可以包括:
[0040]步骤201 =ONU预先计算当前时钟相对于标准时钟的快慢值和偏移值;
[0041]步骤202 =ONU接收时钟同步协议报文,将所述时钟同步协议报文的时钟参数配置到本地;
[0042]步骤203 =ONU根据所述快慢值和偏移值,校准本地时钟;
[0043]步骤204 =ONU基于所述本地时钟,发出脉冲。
[0044]本发明实施例的时钟同步方法基于标准1588协议,具体处理流程如图3所示,包括:
[0045]步骤301:0NU启动,经过一个学习阶段,预先进行时钟偏差的计算。
[0046]具体的,计算方法为:
[0047]ONU连续接收N次时钟同步帧,每个时钟同步帧都包括三个时钟参数:多点控制协议(MPCP, Mult1-Point Control Protocol)的时间值 T_tq(tq 是 epon 系统的时间单位,Itq= 16ns),以及对应的秒同步时间值T_sec、毫微秒同步时间值T_ns (单位分别为sec和ns);
[0048]用最后一个时钟同步帧的三个时钟参数分别减去第一个时钟同步帧的三个时钟参数,算出时间值的差值Λ T_tq、秒同步时间值的差值Λ T_sec、及毫微秒同步时间值的差值Λ T_ns,然后用Λ T_sec和Λ T_ns的和除以Λ T_tq,计算当前时钟对应的毫微秒数;将算出来的毫微秒数与标准毫微秒数(理论上该数值应该是16)比较,如果不相同,则说明当前时钟与标准时钟相比是不准确的,需要校准,那么根据算出来的毫微秒数与标准毫微秒数可以计算得到两个数值:一是表示当前时钟相比标准时钟是快了还是慢了的快慢值,用-或者+表示,-表示当前时钟比标准时钟快,+表示当前时钟比标准时钟慢;二是使用当前时钟的话,需要经过几个时钟周期上述计算结果会达到标准毫微秒数,也就是说,偏移值值是多少。如果算出来的毫微秒数与标准毫微秒数比较是相同的,则说明当前时钟是准确的,不需要校准,偏移值取O。
[0049]Δ T_sec和Λ T_ns的和除以Λ T_tq理论上(比如用(l_sec+16_ns)除以62500003等于15.999999488ns)计算结果应该是16ns,实际计算结果与理论结果的偏差就可以代表当前时钟与标准时钟之间的偏差。如果计算结果大于16ns,表示当前时钟Itq大于16ns,说明这个时钟慢了,反之,如果计算结果小于16ns,说明当前时钟快了。
[0050]具体的,计算过程包括:根据(Λ T_sec+ Δ T_ns) / Δ T_tq = a,计算出a, a (单位ns/tq)表示当前时钟每tq单位对应的毫微秒数;根据b = (a_16)/2,计算出b, b (单位ns/时钟周期)表示当前时钟与标准时钟相比每个时钟周期毫微秒数偏差多少,b的正负表示快慢值,如果b是正数,则说明当前时钟相对于标准时钟偏慢,如果b是负数,则说明当前时钟相对于标准时钟偏快;最后,根据c = 8/ I b I,计算出c,c (单位是时钟周期)表示偏移值,即补偿周期,表示当前时钟每经过c个时钟周期就要补偿一次本地计时器(毫微秒计时器)。每次补偿的数值与具体采用的时钟模式有关,如果是125M时钟,补偿值是8ns。
[0051]具体的,上述的N为不小于2的整数,N值越大,学习阶段占用的时间越久,但是计算的结果越准确。可以根据实际计算的需要,调整N的取值来控制校准精度。
[0052]上述的时钟同步帧可以是1588时钟同步协议的数据帧。
[0053]步骤302、0LT周期性地给ONU发送时钟同步报文,报文携带两个信息,分别是MPCP的时间值和同步时间值,具体是三个时钟参数:T_tq、T_sec及T_ns ;
[0054]步骤303、0NU每次收到时钟同步报文后,解析报文,从报文中提取T_tq、T_sec、T_ns,并将T_tq、T_sec、T_ns的值配置到本地的硬件上;
[0055]其中,本地的硬件指的是实现本地计时器维护,根据配置定期补偿本地计时器,以及在准点产生脉冲信号的芯片逻辑。这部分由于每个时钟周期都要进行计算,无法用软件完成。
[0056]步骤304、0NU的时间值计时器在计时到达T_tq时,将本地的秒计时器及毫微秒计时器分别更新为T_sec和T_ns ;
[0057]步骤305、ONU的秒计时器和毫微秒计时器每个时钟周期增加8ns,同时根据步骤301中计算出的快慢值以及偏移值,周期性的校准毫微秒计时器;
[0058]如果当前时钟比标准时钟快,则每隔偏移值个时钟周期将毫微秒计时器减8ns,如果当前时钟比标准时钟慢,则每个偏移值个时钟周期将毫微秒计时器加8ns。如果偏移值为
O,则不需要校准毫微秒计时器。
[0059]步骤306、当ONU的毫微秒计时器计时到整秒时刻,发出Ipps脉冲。
[0060]在一个家庭网关芯片的实现设计中,当OLT没有使用原子钟作为本地时钟的情况下,使用标准1588时钟同步协议的方案测试结果远远不如采用本发明实施例的方案得到的测试结果准确。
[0061]本发明实施例还提供了一种0NU,如图4所示,ONU包括:计算模块41、时钟配置模块42、校准模块43、发送模块44,其中,
[0062]计算模块41,用于预先计算当前时钟相对于标准时钟的快慢值和偏移值;
[0063]时钟配置模块42,用于接收时钟同步协议报文,将所述时钟同步协议报文的时钟参数配置到本地;
[0064]校准模块43,用于根据所述计算模块41计算的快慢值和偏移值,校准本地时钟;
[0065]发送模块44,用于基于所述本地时钟,发出脉冲。
[0066]其中,所述计算模块41包括获取子模块411和计算子模块412,其中,获取子模块411,用于连接接收N个时钟同步帧并解析获得时钟参数,N为不小于2的整数,每个所述时钟同步帧包括三个时钟参数:多点控制协议的时间值以及对应的秒同步时间值、毫微秒同步时间值;计算子模块412,用于根据获取子模块得到的第一个时钟同步帧及最后一个时钟同步帧的时钟参数,计算当前时钟相对于标准时钟的快慢值和偏移值。
[0067]这里,所述计算子模块412,具体用于:计算最后一个时钟同步帧与第一个时钟同步帧之间三个时钟参数的差值;用秒同步时间值的差值与毫微秒同步时间值的差值之和除以时间值的差值,得到当前时钟对应
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1