1 概述
随着人们对通信信息的充裕性、及时性和便捷性的要求越来越高,能够随时随地、方便而及时地获取所需信息,变得越来越重要。2002年,IEEE通过了10 Gb/s速率的以太网标准——IEEE 802.3ae[1]。10G以太网作为传统以太网技术的一次较大的升级,在原有的千兆以太技术的基础上将传输速率提高了10倍,以满足人们对移动通信业务的要求。
2009年1月国内3G牌照正式发放,标志着我国3G时代的到来。为了适应移动通信的发展,各大运营商展开了大规模的3G移动通信网络建设;而移动通信网络建设的核心是基站建设,其成本也是最高的。此外,基站的性能好坏也是移动通信服务质量的决定因素。所以,运营商在不断寻求新的方式以提高通信服务质量的同时,也在努力降低通信网络建设的成本。分布式基站具有成本低、环境适应性强、工程建设方便的优势,从而代表了下一代基站的的基本走向。
分布式基站的核心是把传统的宏基站基带处理单元BBU和射频拉远单元RRU分离,二者通过光纤连接。网络部署时,BBU集中置放,其容量较大,实现了容量和覆盖之间的转换;RRU置于天面,其环境适应性强,并且多个RRU可以共享BBU基带资源,节省基带投资。为了实现基站和直放站之间更有效的互通,爱立信、华为、NEC、北电网络及西门子五大集团合力制定了CPRI接口协议。该接口的标准协议成为了一个公共的可用指标之一。
2 CPRI协议简述[2]
CPRI(Common Public Radio Interface)协议定义了两个协议层——物理层(L1)和数据链路层(L2)。CPRI接口是位于REC(Radio Equipment Contorl,无线设备控制)和RE(Radio Equipment,无线设备)之间以及两个RE之间的内部数据化接口;有3种不同的信息流(用户平台数据流SAPIQ、控制和管理平台数据流SAPCM和同步平台数据流SAPS)经过CPRI接口传输。
3FPGA实现CPRI协议传输方案
3.1 基本方案
用FPGA实现CPRI协议传输具有以下2种方案。
(1) 方案一
RocketIO收发器的FPGA来实现CPRI协议的光纤通信[3]。其中,RocketIO收发器是Xilinx公司在Virtex2Pro芯片及以上系列芯片上集成的专用串行通信模块,在使用时不占用FPGA其他资源。在Virtex5系列FPGA中,RocketIO称为GTP。
该方案的优点是电路板结构紧凑,有利于PCB板布线,且具有很高的系统抗干扰能力。此外,参数设置方便,有利于系统调试。每块Virtex5型的FPGA芯片中含有多个GTP收发器,可以通过运用4个GTP来实现10 Gb/s的高速率传输。每一个GTP核中包含一个接收链路和一个发送链路[45]。
(2) 方案二
利用串并转换的专用芯片,如TI公司生产的TLK2501、美国国家半导体设计的串行/解串器SCAN25100[67]等。其中,SCAN25100的功能最完善,其具备8b/10b编解码、高速串并转换、锁定检测、CPRI信号和帧丢失检测等功能。该芯片具有高精度延时校准测量电路、时钟管理以及信号调节功能。
3.2 具体实现
SCAN25100支持的传输速率为2.4576 Gb/s、1.2288 Gb/s和0.6144 Gb/s;TLK2501支持的传输速率为1.5~2.5 Gb/s。如果采用专用串并转换芯片,为了实现10 Gb/s的速率,必须采用4块专用芯片,从而加大了PCB板的布线难度和电路板面积,不利于电路设计。
图1 以太网光接口结构
本文采取第一种设计方案完成10 Gb/s的CPRI高速数据传输设计。如图1所示,以太网光接口包括4部分:10GE光接口、PHY收发器、时钟模块、FPGA。其中,10GE光接口和PHY收发器是实现该10G以太网光接口的硬件设备;FPGA部分是本文设计的核心,采用Xilinx公司的 Virtex6芯片。
10GE光接口:光纤模块,由光电子器件、功能电路和光接口等组成,其中包括发射和接收两部分。发射部分是:输入一定码率的电信号,经内部的驱动芯片处理后驱动半导体激光器或发光二极管发射出相应速率的调制光信号。接收部分是:一定码率的光信号输入模块后由光信号管转换为电信号,经前置放大器后输出相应码率的电信号[7]。根据参考文献[7]讨论的结果,本文设计的电路结构选用的是XFP(万兆以太网接口小封装可插拔收发器)光模块,与电路板的接口采用10 Gb/s串行电路接口,其只负责完成光/电信号的转换,优点是体积小、功耗低且较易实现多端口集成。
PHY收发器:物理层芯片,主要作用是提供以太网的接入通道。该模块将从FPGA传输过来的4路3.125 Gb/s的数据流合成12.5 Gb/s的数据流传输给光模块;并且,将从光模块传输过来的12.5 Gb/s的数据流分成4条链路,以3.125 Gb/s传输给FPGA。在该数据流传输中,由于FPGA对数据进行8b/10b编解码,因此有效码率是10 Gb/s,能够满足本文的设计要求,可以实现10G以太网的数据流传输。
时钟模块:时钟模块内采用输出频率为61.44 MHz的有源晶振为系统提供时钟。由于每一数据链路的数据传输速率为3.125 Gb/s,GTP核对参考时钟具有很高的精度要求,所以系统选择高精度的差分时钟作为参考时钟。在该系统设计中,GTP核的参考时钟没有采用DCM(Digital Clock Manager,数字时钟管理器)提供的时钟。因为在高速数据传输过程中,DCM会引入一些不可预测的时钟抖动,这些抖动会随着参考时钟输入到GTP核中,从而造成误码。通常使用外部差分晶振源,经过全局时钟缓冲的输出信号作为GTP的参考时钟,在数据传输过程中,由GTP内部的DCM产生时钟,作为RXUSRCLK、RXUSRCLK2、TXUSRCLK、TXUSRCLK2的时钟源,从而消除时钟抖动以及保持证数据传输过程中的同步性[89]。
FPGA部分:其主要作用包括功能作用和配置监控作用。在该方案中,FPGA的功能作用主要是完成数据的8b/10b编解码、高速串并转换,以及CPRI协议的成帧、解帧、同步、传输数据复/分解等操作。FPGA的控制作用主要是针对光接口模块和PHY模块。对于光接口模块,由于XFP提供一个两线的串行接口,可以实现数据诊断功能,实时监控光模块的各种参数,所以FPGA可以实现对其工作状态的实时监控。对于PHY模块,FPGA通过SMI接口来控制该模块的工作模式和检测该模块的工作状态。
4 设计验证
4.1 设计验证方法
为了验证该电路设计的正确性,对电路的可靠性进行了测试。在该FPGA设计系统中加入一个伪随机数列(PRBS)产生和检查电路。由于Xilinx公司的Virtex6型芯片中的IP核GTP中含有伪随机数列(PRBS)产生和检测电路,所以本文采用其内部电路自动生成PRBS并经过整个10 Gb/s的以太网高速数据链路,最终由其检测电路来检验数据传输中是否出现误码。测试方案如图2所示。FPGA中用于产生和检测PRBS的GTX核为4个,每一个分别对应一个2.5G链路。
图2 测试方案
由Xilinx公司给出的GTP的用户说明[9]可知,分别设置信号TXENPRBSTST0、TXENPRBSTST1、RXENPRBSTST0以及RXENPRBSTST1的值为01,而信号INTDATAWIDTH的值为1,其产生的伪随机数列类型为PRBS7。产生PRBS7数列的多项式为1+X6+X7,数据长度为128,其可以检验经过8b/10b转换的数据。设置信号RXPRBSERR的值为1,以检测高速数据传输过程中数据是否出现误码。设置信号PRBS_ERR_THRESHOLD0和PRBS_ERR_THRESHOLD1的值,其含义为PRBS循环检测中发生错误总数的阈值,以控制信号RXPRBSERR(0,1)。信号RXPRBSERR标志着在PRBS循环测试中检测数据错误发生的总值超过了PRBS_ERR_THRESHOLD所设置的阈值,则该信号变为1。产生的PRBS序列经过发送链路和外部链路环回,再传输到接收链路,经过相应的处理后到达PRBS检测电路,进而验证数据的正确性。其中,外部链路环回是主要是指将一根光纤的两端分别接入到10G光接口的接收与发送端,使数据本身在设计系统中环回。
4.2 验证结果
在实验室常温环境下,对系统的高速传输数据进行验证。该验证分为两个部分,第一部分是运用Xilinx公司研发的软件工具Chipscope抓取FPGA内部接收和发送的数据进行比较,以验证所设计的系统是否能实现所要求的功能。Chipscope抓取的结果如图3所示。信号program_after_data0~3为PRBS产生模块输出的数据经过功能模块处理后的数据。信号RX0_PRBSERR0和RX0_PRBSERR1是第一链路中PRBS检测模块中RXPRBSERR0、1,由图可知其值为1,即该系统中第0数据链路的错误计数没有超过阈值PRBS_ERR_THRESHOLD的值。由图可知,信号RX1_PRBSERR0、1,RX2_PRBSERR0、1和RX3_PRBSERR0、1的值均为0,所以系统的4条数据链路的错误计数均未超过阈值。
图3 Chipscope系统测试结果
第二部分是运用高频率范围示波器抓取FPGA输出给PHY芯片的数据,以检测该系统传输的信号质量,由示波器测试的数据传输眼图如图4所示。由于4路2.5G的传输链路配置相同且篇幅有限,只是列举出第0路传输数据的眼图。该系统传输的眼图的比特错误率(EyeBER)可达到10-45,眼高为600 mV左右。
图4 高速数据传输眼图
结语
通过反复验证和长时间连续测试,测试结果证明,该设计能够有效、正确地实现10 Gb/s的高速数据传输,并且传输数据的误码均未超过阈值,进而证明了该设计系统的可靠性和稳定性。采用FPGA中的RocketIO接口来设计10 Gb/s速率的光纤传输,极大地增强了光纤传输设计的灵活性,通过修改FPGA代码即可用于高速信号传输的多种情况和场合。