FPGA实现复接与分接系统
引言
近年来可编程器件的应用日益广泛,使用较多的是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。FPGA器件性能优越,使用方便,成本低廉,投资风险小,使用FPGA设计可以完全根据设计者需要开发ASIC芯片,可方便地反复编写和修改程序,即使制成PCB后仍能进行功能修改。本文将着重介绍运用FPGA技术实现基群与二次群之间复接与分接系统的总体设计方案。
数字复接基本原理及系统构成
二次群帧结构及其复接子帧结构按ITU-TG.742协议,工作在8448kbit/s的采用正码速调整的二次群复接设备帧结构如图1所示,一帧共有848bit,前12位帧码组包括帧同步码10位,码型为1111010000;失步对告码,同步为“0”,失步为“1”;国内通信备用码。Cj1、Cj2、Cj3(j=1,2,3,4)为插入标志码,Vj(j=1,2,3,4)为码速调整插入比特,其作用是调整基群码速。二次群由四支路的子帧构成,子帧结构如图2所示,一子帧有212bit,1、2、3位码为帧码组,记Fj;插入标志码用Cj表示;码速调整插入比特用Vj表示。
复接系统构成
复接系统构成的框图如图3。复接时序信号发生器产生码速调整需要的时序信号,四路基群信号先各自经正码速调整,变为2.112Mbit/s的同步码流。合路器顺序循环读取四路码流,并在每帧开头插入帧定位信号,输出8.448Mbit/s的标准二次群。
在接收端,合路码流先进行帧定位捕获,判定系统处于同步态、失步态还是过渡态。一旦捕获到帧定位信号,便驱动分接时序信号发生器工作,产生分路和码速恢复需要的时序信号,同时分路器工作,把帧定位信号抛掉,顺序循环分别送入4个码速恢复单元,扣除插入码元,恢复成四路2.048Mbit/s的基群信号。
数字复接系统的FPGA设计
本次FPGA设计采用分层设计,顶层为整个系统的原理框图(见图3),用一些符号表示功能块,然后把每个功能块分成若干子模块,各模块独立设计。下面就各模块的设计思想进行详细介绍。
复接电路设计
复接电路如图4所示,它由复接时序发生器、缓存器、码速调整控制电路、插入码控制电路、帧定位信号发生器和合路器6个模块构成。图中只画了第一条支路参与复接的实现过程,因为四条支路的过程完全相同,因而略去其余3个支路的电路。
(1)复接时序发生器模块
输入为2.112MHz频率的均匀时钟,通过该模块产生插入码控制电路所需的插入标志时隙脉冲SZ、调整插入时隙脉冲SV、频率为2.112MHz的非均匀时钟f(从输入的均匀时钟扣除了时隙SZ和SF)和帧定位信号发生器所需的时隙脉冲SF。
(2)缓存器模块
基群信号以2.048MHz的均匀时钟clk_wr写入缓存器,同时以2.112MHz的非均匀时钟clk_rd读出,clk_rd由插入码控制电路产生。该模块还需输出每次写入和读出一帧数据时第一个clk_wr脉冲P1和clk_rd脉冲P2,送给码速调整控制电路模块。在该模块的设计中,应注意每一帧信息码的位数不是固定的,必须通过码速调整控制电路模块的反馈信号Fn来确定,当反馈信号表明本帧需要调整,则位数为205;反之,位数为206。
(3)码速调整控制电路模块
缓存器的写入脉冲超前于读出脉冲的时间量称为读写时差,读写时差的大小总随时间不断变化着。该电路中缓存器的写入速率低于读出速率,随着时间的推移,缓存器中所存信息码数目越来越少,最后导致“取空”而造成错误的数据传输。因此,我们必须设定一门限,当信码数降到门限值时,就进行码速调整。
通过对各时刻读写时差的联系以及趋向最终状态变化的分析得出,读写时差的最低点总是发生在一帧末尾,而在帧首通过两脉冲相位差就能判断本帧是否需要码速调整。具体地说,P1和P2输入进行鉴相判决得到帧首的读写时差T0,与调整门限值TS进行比较,若T0>TS则本帧不需要调整,反之若T0≤TS,则需要调整。这时模块输出反馈信号Fn给缓存器,和调整控制负脉冲Gate给输入码控制电路模块。
(4)插入码控制电路模块
该模块的功能是对缓存器的读出信息进行插入码控制,输出2.112MHz的非均匀时钟clk_rd和参与合路的支路码流。为了标志是否在时隙SZ有插入调整比特,就必须引入插入标志码。通常在一帧中规定一个特定时隙SV,提供一次码速调整的机会。如果某支路需要进行调整,就在该时隙插入一比特脉冲,如不需要调整则该时隙仍传支路信息。为确保可靠性,通常采用3位码作为插入标志码。如果某支路有插入调整,用标志码为111来表示,否则用000表示。(5)帧定位信号发生器模块
该模块产生帧同步信号和告警指示码,帧定位信号可以集中插入,也可以分散到各支路插入,考虑到设备和延迟问题,我们选择集中插入。
(6)合路器模
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)