微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于CPRI协议的光纤通讯设计与实现

基于CPRI协议的光纤通讯设计与实现

时间:04-12 来源:互联网 点击:

提供一个30.72MHz时钟REFCLK,给SCAN25100作为参考时钟。REFCLK和SYSCLK均使用LVDS差分电平,在FPGA内部使用缓冲器IBUFGDS来将输入差分时钟信号转为单端时钟,而使用OBUFDS将单端时钟转为差分时钟输出。
TXCLK为FPGA输出给SCAN25100,用于采集输出数据tx_data(9:0)的时钟。RXCLK为SCAN25100输出给FPGA,用于采集输入数据rx_data(9:0)的时钟。TXCLK和RXCLK配置使用INCMOS18电平,均为双边沿采集数据,其时钟频率由用户根据需求配置SCAN25100串行接口(DOUT和RIN)的传输速率决定。SPMODE(1:0)的配置值决定传输速率,对应关系见表1。


2.3 PCB布板设计
PCB布板设计要特别注意信号完整性问题,尤其当系统设定速率为2457.6Mbps高速传输时。图3所示为系统速率设定为2457.6Mbps,未注意信号完整性问题的PCB布板设计下,TXCLK时钟信号眼图,可以看到时钟信号质量较差。而SCAN25100对TXCLK信号质量要求较高,如占空比要求为45%~55%范围。经测试,在此设计下,当系统工作于614.4Mbps或1228.8Mbps时,系统能正常传输数据,但当系统速率转换为2457.6Mbps,此时TXCLK/RXCLK双边沿对DDR(Double Data Rate)数据出现了错误采集,SCAN25100与光模块之间的差分串行数据线传输也变得不稳定。因此系统对PCB布板设计要求较高。

FPGA与SCAN25100之间的并行数据线要与相应的TXCLX/RXCLK时钟线等长布线设计,同时根据国家半导体的推荐,布线应采用65欧姆阻抗匹配。SCAN25100与光模块之间的高速差分串行数据线,应合理布局,使其尽可能得短,同时DOUT和RIN应布于不同层尽量分隔开布线,这样尽可能地减少DOUT和RIN之间的串扰。PCB布板优化设计后,高速传输下TXCLK时钟信号眼图如图4所示。可以看到“眼睛”张开,信号质量得到改善。

3 FPGA设计
FPGA内CPRI数据包括用户I/Q数据、控制管理数据和同步数据。在发送端,通过CPRI固定的帧结构形式将这三部分数据进行复接与成帧处理,然后发送给SCAN25100完成物理层8B/10B编码和并串转换。在接收端,光模块接收回的数据,经由SCAN25100物理层8B/10B解码和串并转换,FPGA将这三部分数据进行分接与解帧处理,并提取出时钟信号。下面分别对FPGA对SCAN25100控制与状态监控,数据接口发送与接收模块进行相应介绍,采用Verilog语言设计相应模块。
3. 1 配置与监控模块
FPGA需要根据系统需求对SCAN25100进行相应的配置,如设置芯片管脚使用电平标准,传输速率SPMODE(1:0)等,以使其正常启动工作。对SCAN25100的配置,可以使用两种方式。通过对SCAN25100芯片的相应配置管脚直接进行电平拉高或拉低操作,这种方式较为简单,但无法实现系统工作时动态改变配置值;FPGA将配置数据通过芯片的MDIO接口写入芯片,这种方式需要FPGA同样定义一个MDIO接口,配置过程稍显复杂,优点在于辅助软件的支持可以在系统工作时动态改变配置值。
为了系统调试工作的方便,通过FPGA对SCAN25100的状态监控是非常有必要的,需要将芯片的几个反映芯片工作状态数据输出给FPGA。
3.2 发送模块
CPRI标准数据位为16位,在发送时需要将16位数据分拆为高8位与低8位,然后使用FPGA的ODDR模块,将分拆后高8位与低8位数据拼接成DDR数据输出,同时输出TXCLK送给SCAN25100采集DDR数据。这里需要调节好TXCLK与输出DDR数据的相位关系,以保证SCAN25100能够正确采集数据。
3.3 接收模块
通过光纤接收回来的数据,经由SCAN25100物理层8B/10B解码后,以DDR数据并行传输给FPGA,此时数据位为10位,其中低8位为有效数据。使用SCAN25100同步输出的RXCLK用于FPGA内部的IDDR模块采集数据,IDDR模块两个数据端口分别输出数据的高低位,将数据进行相应拼接获得16位CPRI数据。此时还需要通过一个异步FIFO,将数据由RXCLK时钟域转为FPGA内部时钟域。最后数据可以送给CPRI模块进行分接与解帧处理。

4 实际测试
4.1 测试方法
为了对系统的光纤通讯传输进行测试,在FPGA中定义了一个PRBS(伪随机码序列)模块,用于产生测试数据,数据帧头为0x50BC。例化两个相同的PRBS模块,一个放置于发送端,产生测试数据,通过发送模块,由FPGA输出。将一根光纤的两端同时连接于光模块形成自环回路,FPGA发送端输出的PRBS测试数据,经由FPGA外部回环返回给FPGA接收。当FPGA接收端接收到数据为0x50BC时,接收端放置的另一个相同PRBS模块开始启动(未接收到帧头0x50BC则一直处于等待状态),产生与发送端相同PRBS数据送入PRBS比对模块,与接收数据进行比对。PRBS比对模块输出比对结果,同时可使用Chipscope抓取接收数据与发送数据对比,确认系统是否正常工作。测试方案结构图见图5所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top