基于FPGA的SDH设备时钟芯片技术
2014-11-27崔晶
崔 晶
(天津现代职业技术学院,天津300350)
高速串行传输技术被越来越多的通信设备采用.高速数据传输对时钟的要求很高,而能满足高速传输需求的各种专业芯片不仅价格昂贵,而且功能单一,灵活性低,不能满足用户多样化的需求[1].不同线路输入的时钟经过长距离传输,信号质量劣化程度不同,经过FPGA的SerDes(串并转换)恢复出来的线路时钟质量不同.除此外,SDH通信系统接入的输入信号线路数量不定,时钟芯片需要对不确定数量的线路时钟进行保持跟踪.虽然有相应的专用芯片来达到上述的目的,但是针对不同数量的线路时钟,导致专用芯片的灵活性有所欠缺,且成本较高,如达拉斯公司的DS3100时钟芯片,输入的时钟数量最多只有 6路;IDT公司的82V3399芯片,输入的时钟数量最多只用8路[2].本研究的目的就是要解决上述技术中存在的问题,使用FPGA对SDH中使用的时钟进行处理,完成时钟芯片功能.
1 系统硬件设计
系统硬件主要由2部分构成:
1)19.44 M 温补时钟:主要对 FPGA提供19.44M高精度低抖动时钟信号.
2)FPGA:主要完成时钟的输入和输出,最终完成整个时钟芯片功能.
硬件及主要信号线连接示意图如图1所示.
图1 硬件及主要信号线连接示意图
2 系统程序设计
FPGA设计中的主要功能模块如图2所示.
FPGA通过外部管脚和CPU连接,CPU通过提取各路 SDH信号的时钟质量开销符号 S1控制FPGA从各输入时钟选择1路作为19.44M线路时钟,选择器由FPGA内部查找表完成.
2.1 CK模块(Clock,时钟模块)设计
CK模块将19.44M线路时钟和19.44M输出时钟分别分频为8K的时钟,为PD(Phase Detect,鉴相模块)模块提供鉴相输入信号.在本设计中,分频功能由FPGA自带的锁相环实现.Virtex-6系列 FPGA自带的锁相环输入和输出范围均为10~700MHz,接受抖动范围为0-10 UI[3],可以实现倍频、分频、移相等功能,输出时钟和输入时钟同相,且具有时钟锁定指示信号.
图2 FPGA内部功能模块示意图
2.2 PD模块(Phase Detect,鉴相模块)设计
PD模块对线路时钟和输出时钟进行鉴相,将指示线路时钟超前输出时钟的超前鉴相信号和指示线路钟时落后输出时钟的滞后鉴相信号输出给LF(Low Pass,低通模块)模块.有限状态机状态转移图如图3所示.
图3 PD模块有限状态机状态转移图
如图3所示,每个状态的输入由同一时刻采集的8K线路时钟和8K输出时钟状态组成.在空闲状态,当采集到输入为10时,表示采集到8K线路时钟高电平,8K输出时钟低电平,线路时钟超前输出时钟,进入超前状态,并输出超前鉴相信号;当采集到输入为01时,表示采集到8K线路时钟低电平,8K输出时钟高电平,线路时钟滞后输出时钟,进入滞后状态,并输出滞后鉴相信号,其它输入保持空闲状态;在处于超前或滞后状态时,当输入为00时,表示采集到8K线路时钟低电平,8K输出时钟低电平,进入空闲状态,当输入为 11时,表示采集到8K线路时钟高电平,8K输出时钟高电平,进入暂停状态;在暂停状态,当输入为01时,表示表示采集到8K线路时钟低电平,8K输出时钟高电平,线路时钟超前输出时钟,跳转到超前状态;当输入为10时,表示采集到8K线路时钟高电平,8K输出时钟低电平,线路时钟滞后输出时钟,跳转到滞后状态.
2.3 LF模块(Low passs,低通模块)设计
低通模块是低通滤波器.为了防止时钟抖动带给PD模块错误的鉴相结果,LF模块对PD模块的输出进行低通滤波,滤除高频分量后输出正确的选择结果.在本设计中,低通模块主要由两个10比特位宽的计数器组成,分别命名为超前计数器和滞后计数器.计数器阈值为1023.每次PD模块发出超前鉴相信号,则超前计数器加 1,当 PD模块发出滞后鉴相信号,则滞后计数器加 1.当超前计数器记满1023后,则复位超前计数器,并同时向DCO模块(Digital Control,数字控制)发出超前控制信号;当滞后计数器记满1023后,则复位滞后计数器,并同时向DCO模块发出滞后控制信号.
状态机采用格雷码编码,具体编码实现采用赛灵思公司推荐的硬线逻辑语言编码约束,详细代码如下:
2.4 DCO模块(Digital Control,数字控制模块)
DCO模块控制本地时钟移相追踪线路时钟相位.把 LF模块输入的超前鉴相和滞后鉴相每22秒加权平均进行统计,24小时的统计结果存储在FPGA的块RAM中.在输入时钟丢失时,FPGA从块RAM中顺序读出统计值,使输出时钟追踪线路时钟过去24小时的相位变化[4].DCO模块中的移相控制电路图如图4所示,DCO模块通过FPGA内部的多路复用器对155.52M的本地时钟移相.每个多路复用器提供π/14个弧度相移.因为FPGA内部布线延时的不精确,所以本设计利用ISE自带的FPGA Editor手动摆放14个多路选择器在各自查找表中的位置及每个查找表在FPGA内部的位置,将抖动控制在0.4ns以内[5],从而达到精确相移的目的.
2.5 APLL模块(Anolog Phase Lock Loop,模拟锁相环)设计
模拟锁相环调用FPGA自带的模拟锁相环,通过本地高精度的 19.44M 晶振,生成各子模块需要的311.04M和155.52M高速时钟.
经过系统联合调试,基于FPGA的时钟芯片设计技术,时钟抖动控制在 0.4ns内,超过 GR-253-CORE (OC-192) 和ITU-T G.813 (STM-64)的关于时钟精度要求.为SDH业务板卡提供工作时钟960 h,工作正常,板卡没有出现误码、丢包现象,达到SDH设备应用的预期目标.
图4 DCO模块移相控制电路图
[1] 韦乐平.光同步数字传送网[M].北京:人民邮电出版社,1998:65-69.
[2] 史国伟,王峰,陈明.一种基于SDH光线传输系统设备时钟的数字式锁相环[J].电子技术应用,2000(10):70-72.
[3] ITU-T Rec. Timing characteristics of SDH equipment slave clocks (SEC), G.813[S]. 2003:83-86.
[4] ITU-T Rec. Physical/electrical characteristics of digital interface, G.703[S]. 1993:35-39.
[5] ITU-T Rec. Characteristics of SDH equipment functional clocks. G.783[S]. 2003:42-46.