基于FPGA的STM-64帧同步技术
2014-05-14崔晶
崔 晶
(天津现代职业技术学院 天津 300350)
0 引 言
随着通信及计算机技术的发展,对大量数据进行高速和实时传输的需求越来越多,传统的并行传输技术已经不能满足现代通信的需求。因此,高速串行传输技术被越来越多的通信设备所采用。高速数据传输对包括芯片接口和电路板走线等硬件的要求很高,能满足高速传输需求的专用集成电路不仅价格昂贵,而且功能单一,灵活性较低,不能满足用户多样化的需求。[1]特别是在SDH通信领域,需要对系统中的高速信号分拆、复用、解复用,并且对各种开销进行处理和维护。虽然有相应的专用芯片进行数据处理,但这加大了PCB设计的难度,增加了产品成本,一定程度上降低了灵活性。
本文介绍的技术可以使用 FPGA对 STM-64的高速信号进行处理,完成STM-64的帧同步传输为下一级进行各种处理,旨在解决上述技术中存在的问题。
1 设计实现
1.1 系统硬件设计
系统硬件主要由3大部分构成:
① 10,G光模块:主要将速率为 10,G的光信号转换为速率为 10,G的电信号,电信号的电平规范为LVDS,电信号输入解复用芯片;②解复用芯片:主要完成对速率为 10,G的高速电信号的串并变换,将串行信号转换为16路并行速率为622,Mbps的信号,从数据中恢复出频率为 622,MHz的同步时钟,数据与时钟一起送入 FPGA;③FPGA:主要完成 16路速率为 622,Mbps并行信号的接收,并完成 STM-64信号的帧同步。最终输出帧同步状态指示信号以及帧头脉冲信号,完成整个STM-64帧同步的过程。
硬件及主要信号连接情况如图1所示:
本设计中使用的10,G光模块是Openext公司的单向收10,G光模块,解复用芯片是VITESSE公司的VSC8479芯片,FPGA 是 Xilinx公司的XC6,VLX240T。
1.2 系统程序设计
FPGA设计中的主要功能模块如图2所示:
图2 FPGA内部功能模块示意图Fig.2 FPGA built-in function modules
如图2所示,系统主要由3个模块组成:Receive模块、Rxd_sft模块以及 Frame_head模块。Receive模块接收解复用芯片发送的速率为 622,M 的时钟信号和16路数据信号后,分接速率为155,M的同步时钟信号和 64路数据信号,传输给 Rxd_sft模块。Rxd_sft模块对 64路数据信号进行错位调整后传输给Frame_head模块。Frame_head模块对数据进行帧头搜寻,将指示帧同步状态信号、帧头脉冲以及正位的64,bit STM-64信号传输出去。
1.2.1 Receive模块设计
Receive模块将速率为622,M的时钟信号和16路数据信号,分接为速率为 155,M 的同步时钟信号和64路数据信号,需要调用 FPGA 自带的ISERDESE1、IODELAY 完成。ISERDESE1可以将1路输入信号输出为原信号的四分之一频率。IODELAY可以为输入信号提供延时,每个单位延时可以为精确的 78,ps,最多 32个单位 2.5,ns时延。Receive模块的连接见图3。
如图3所示,利用FPGA的ISERDESE1对输入的622,M数据和时钟进行四分频,利用IODELAY对输入时钟进行延迟。总线对齐模块控制 IODELAY延迟。
图3 Receive模块连接图Fig.3 Connection diagram of Receive Module
因为解复用芯片和FPGA之间连线PCB布线已经做到了差分线等长,而且解复用芯片 VSC8479的输出时钟的下降沿与输出数据采样窗的中心对齐,所以总线对齐模块需要找到VSC8479输出时钟的下降沿,即可稳定采样VSC8479输出的622,M高速数据。
如图 4所示,总线对齐模块在首次采样后根据ISERDESE1输出的Q[3∶0]进入3种不同状态。
图4 总线对齐模块流程图Fig.4 Flow diagram of bus aligning module
①如果 Q[3∶0]为全 1,则总线对齐模块控制IODELAY增加 1个单位延时,8个周期后采样Q[3∶0]。如果 Q[3∶0]为全 0,则成功找到时钟下降沿,完成总线对齐过程;如果 Q[3∶0]非全 0,则返回增加延时状态,控制IODELAY增加1个单位延时,8个周期后再根据 Q[3∶0]做判断,直到采样 Q[3∶0]为全0成功找到时钟下降沿为止。②如果Q[3∶0]为全0,则总线对齐模块控制IODELAY增加1个单位延时,8个周期后采样Q[3∶0]。如果Q[3∶0]为全1,则成功找到时钟上升沿;如果Q[3∶0]非全1,则返回增加延时状态,控制 IODELAY增加 1个单位延时,8个周期后再根据 Q[3∶0]做出判断,直到找到时钟上升沿为止。当找到时钟上升沿时,总线对齐模块控制 IODELAY增加 1个单位延时,8个周期后采样Q[3∶0]。如果 Q[3∶0]为全 0,则成功找到时钟下降沿,完成总线对齐过程;如果 Q[3∶0]非全 0,则返回增加延时状态,控制 IODELAY增加 1个单位延时,8个周期后再根据Q[3∶0]做判断,直到采样Q[3∶0]为全0成功找到时钟下降沿为止,完成整个总线对齐过程。③如果 Q[3∶0]非全 0或 1,则采样进入非稳定状态。总线对齐模块控制IODELAY增加1个单位延时,8个周期后采样 Q[3∶0],直到 Q[3∶0]为全 0或全1,进入第1或第2种状态转移。
1.2.2 Rxd_sft模块设计
在高速串行通信中,没有专门用来标示帧头的定位脉冲,所以解串出来的并行数据一般都是比特错位的字节,需要对收到的数据进行整型。Rxd_sft模块实现的就是这个功能。[2]
Rxd_sft模块通过一块容量为 128,bit的移位寄存器(以 64,bit为最小移动单位)缓存 155,M 时钟连续 2个周期传输的数据。先到达时钟周期的数据按比特进行错位,组成新的 64,bit数据。新的 64,bit数据送入 Frame_head模块进行帧头搜寻。STM-64的10,G数据通过16路622,M信号传输过来,因此比特错位有 16种情况,如图 5所示。如果在第一种比特错位的情况下 Frame_head模块的帧同步信号为无效,则意味着无法检测到帧头指示字节,就会按第2种比特错位情况输出 64,bit的数据。以此类推,直到检测到帧同步字节为止。
图5 移位寄存器比特错位调整示意图Fig.5 Adjustment of bit dislocation in shifting register
1.2.3 Frame_head模块设计
Frame_head模块用来对帧头进行判断,输出帧头定位脉冲以及信号的帧同步状态。模块采用有限状态机完成上述功能,帧同步状态按照标准分为失步状态、准校核状态、校核状态、同步状态、保护状态 5个状态。[3]状态转移如图6所示。
图6 有限状态机状态转移图Fig.6 State transmission diagram of FSM
如图 6所示,状态机进入失步状态,当在失步状态检测到 SDH中的 A1(F6)字节,则进入准校核状态;准校核状态下,如果检测到A1字节,则停留在本状态,如果检测到 A2(28)字节,则进入校核状态,如果检测到非 A1或 A2字节,则进入失步状态;校核状态下,如果在1帧时间(0.125,µs)后再次检测到A1和A2字节,则进入同步状态,否则进入失步状态。同步状态下,每间隔 1帧时间如果可以继续检测到 A1和 A2字节,则停留在同步状态;否则进入保护状态。保护状态下,如果连续 4帧时间没有检测到 A1和 A2字节,则进入失步状态。如果 4帧时间以内有1次到3次检测到 A1和A2字节,则停留在保护转台。如果连续 4帧时间均检测到 A1和 A2字节,则重新进入同步状态。
Rxd_sft模块在进入同步状态时输出帧同步信号为高电平,在每次检测到 A1和 A2字节时输出一个时钟周期宽度的脉冲作为帧头指示。
2 结 论
经过系统联合调试,基于FPGA的STM-64帧同步技术可以找到 SDH中 STM-64信号的帧头,符合ITU-T Rec G.703以及 ITU-T RecG.783标准。
[1] 韦乐平. 光同步数字传送网[M]. 北京:人民邮电出版社,1998.
[2] ITU-T Rec.Timing characteristics of SDH equipment slave clocks(SEC)[S]. G. 813,2003:83-86.
[3] ITU-T Rec.Physical/electrical characteristics of digital interface[S]. G. 703,1993:35-39.