分布式基站系统中,RRU 通常会通过光纤拉远实现与 BBU 的远程互联。由于光纤自身的特性,传输过程中必然会引入抖动和漂移;尤其是漂移,因其低频特性,并且难于滤除,在SERDES 的 FIFO 深度不够的情况下有可能会造成 FIFO 的溢出。
本文首先会对这个问题进行一般性地分析,在此基础上我们将以德州仪器公司 10G SERDES 器件 TLK10002 为例,提出一个新的解决方案,即采用双时钟模式提供 SERDES系统时钟,并且探讨了这种模式的具体实现方式。同时,为了验证双时钟方案的可行性,我们搭建了相应的测试平台,并给出了相应的测试结果。
1、光纤漂移引起的 SERDES FIFO 溢出问题分析
1.1 漂移及漂移形成的塬因
漂移是一个数字信号的有效瞬时在时间上偏离其理想位置的,非累计性的偏离。所谓的“长期的偏离”是指偏离随时间较慢的变化,通常认为变化频率低于 10Hz 就属于较慢的变化。
实际数字信号存在的相位噪声,抖动时相位噪声的高频成分,漂移是相位噪声的低频成分,工程中以10Hz 来划分高、低频。产生这两种频率成分的机理有所不同。产生低频成分,也就是产生漂移的主要塬因是传输媒质和设备中传输时延的变化,例如光纤白天受热变长,时延增加,信号迟到,相位滞后;光纤夜间受冷变短,时延减少,信号早到、相位超前。产生高频成分,也就是产生抖动的主要塬因是内部噪声引起的信号过零点随机变化,例如振荡器输出信号的相位噪声,数字逻辑开关时刻的不确定性等。
漂移不会直接导致传输产生误码,因为传输设备的恢复时钟电路能跟踪相位的慢变化。漂移幅度变化虽慢,但长期累积幅度可能高达 1000UI[3]。
1.2 漂移引起的 SERDES FIFO 溢出问题分析
一个典型的 BBU 和 RRU 系统级联方案如图 1 所示,在 RRU 一侧,由于 JC PLL(主时钟芯片)会自动跟踪输入的串行数据流,当输入频率发生变化时,JC PLL 会调整输出频率以匹配输入频率的变化。在这个跳变瞬间,如果 SERDES 的 FIFO 的读写速率可能不一致,导致 FIFO 的冲突,从而造成溢出。但是,通过选择跳变速度足够快的 JC PLL,这种溢出是完全可以避免的,而一旦JC PLL 锁定到输入数据流,FIFO 读写工作在同一速率,就不会存在溢出问题。
在 BBU 一侧,值得注意的是时钟信号的抖动,尤其是漂移引起的 FIFO 溢出。如果这种漂移来自于 BBU 自身的参考时钟,由于输入数据数率是与 BBU 速率匹配的,不会造成任何问题; 但是,如上节所阐述的,光纤的温漂等特性有可能引入新的漂移,如果 RX FIFO 两侧工作在不同的时钟域, 这种光纤引入漂移会造成 SERDES 内部 FIFO 的碰撞,FIFO 自身的深度如果不足以吸收这种碰撞,就会引起 FIFO 溢出。
2、BBU SERDES 双系统时钟方案及具体实现
2.1 TLK10002 内部时钟架构
TLK10002 是德州仪器公司推出的双通道 10G SERDES 芯片,它可以支持目前所有的 CPRI 和OBSAI 速率,从 1.2288Gbps 到 9.8304Gbps,因而特别适合无线基站的应用。
TLK10002 内部的时钟架构如图 2 所示,它的 A/B 通道可以通过 REFCLK0P/N 或者REFCLK1P/N 管脚来提供参考时钟,这两个参考时钟的选择可以通过 MDIO 或者REFCLKA_SEL 和 REFCLKB_SEL 管脚来实现。
高速侧 SERDES 的 CDR 主要用于从输入串行数据中恢复时钟信号,恢复的时钟信号从CLKOUTAP/N 和 CLKOUTBP/N 输出。输出信号频率有多种选择:通过寄存器配置,用恢复时钟频率除以 1, 2, 4, 5, 8, 10, 16, 20, 或者 25 均可。
对于每个通道而言,高速侧 SERDES 和低速侧 SERDES 可以工作在一个时钟域,即两者使用同一参考时钟;同时,TLK10002 也提供了另外一种时钟模式,即高速侧 SERDES 和低速侧SERDES 使用不同的参考时钟,这种情况下,高速侧锁相环和低速侧锁相环会工作在不同的时钟域。
图 2 TLK10002 内部时钟架构
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)