文献标识码:A
DOI:10.16157/j.issn.0258-7998.2016.10.018
中文引用格式:陈一波,杨玉华,王红亮,等. 高速数据采集与光纤传输系统的设计与实现[J].电子技术应用,2016,42(10):73-76.
英文引用格式:Chen Yibo,Yang Yuhua,Wang Hongliang,et al. Design and implementation of high speed data acquisition and fiber-optical transmission system[J].Application of Electronic Technique,2016,42(10):73-76.
0 引言
在航天、雷达、通信等领域都需要进行大量数据处理,而数据采集与传输是数据处理的前提。但是随着数据采集精度的不断提高,庞大的数据量导致数据传输面临巨大压力。传统并行数据传输模式传输速率已经不能满足高速采集领域的传输需求,串行传输技术不仅克服了输出速率不足的问题,而且不存在高速传输并行信号的偏移问题,可以显著提高通信系统间的数据传输效果[1]。目前常用的LVDS串行传输方式传输速度仅有数百兆比特,与此同时LVDS差分走线对PCB设计要求较高[2]。而光纤传输具有传输频带宽、通信容量大、抗干扰能力强、布板简单等优点[3]。传统单路光纤传输速率很难超过5 Gb/s,基于此本系统通过两路光纤增加带宽,提高传输速率。
基于以上分析,本文设计了一种高速数据采集与光纤传输系统。系统控制设计采用FPGA实现,FPGA器件兼有可编程性和高速I/O的技术优势,可以满足串行传输协议及演变进化的需求,已成为实现串行接口应用的理想平台[4]。
1 方案设计
数据采集与光纤传输系统采用模块化设计,主要由电源模块、8路AD9226采集电路模块、可编程时钟电路模块、FPGA主控模块、SFP光电转换模块等部分组成。电源模块主要完成系统供电,AD9226采集电路实现高速数据采集,可编程时钟电路实现不同频率时钟产生,FPGA主控模块完成各个模块时序产生,SFP光电转换模块进行电信号到光信号的转换实现光纤传输。系统组成框图如图1所示。
2 主要硬件模块设计
2.1 FPGA控制模块
系统采用Xilinx公司的Virtex-6 FPGA作为主控芯片,Virtex-6 FPGA是Xilinx较新一代高性能FPGA,内部集成多个吉比特高速收发器,支持多种IP核,在高速数据采集领域表现比较出色[4]。FPGA控制模块主要实现8路A/D采集模块工作时序生成、可编程时钟电路控制、高速光纤通信以及外部触发信号判别。
2.2 A/D采集模块
A/D采集模块采用了8片ADI公司的AD9226芯片,该芯片是一种单通道、12 bit、65 MS/s模数转换器,可采用单端输入或差分输入[5]。AD9226内部可提供1 V和2 V两种基准电压源,本系统中设计采用2 V基准电压。由于AD9226电压输入范围为1.0 V~3.0 V,为了扩大电压采集范围,使系统电压范围可以达到-5 V~+5 V,利用运算放大器AD8065在AD9226前端设计了一个衰减电路。根据满足采集电压范围的要求,衰减电路需要满足:
其中Vin为输入电压值,Vout为输出电压值。A/D转换出的数字信号只需按式(1)反向运算即可得到输入电压的真实数值。单路A/D采集电路如图2所示。
2.3 光纤通信模块
本系统中AD9226为12 bit ADC,8路ADC采集到的数据为96 bit。为了保证数据正确传输,与上位机协议将A/D采集数据进行编帧。设置16 bit帧头EB90,16 bit帧尾146F,8路A/D采集数据按照上位机编码协议打包成一个128 bit的数据帧。本设计中AD9226最高采样率设置为60 MHz,8路A/D采集电路最高数据速率达5.76 Gb/s,整个系统的最高数据速率达7.68 Gb/s。为了满足整个系统传输速率的要求,采用了基于Aurora协议的光纤传输方案。Aurora协议是Xilinx公司开发的一种支持多路光纤传输,且具备信道初始化与时钟矫正等功能的高速串并转换协议[6]。针对不同应用的需求,Aurora协议可支持流(Streaming)和帧(Framing)两种数据传输模式,以及全双工、单工数据通信方式[6]。Aurora 8b/10b IP核结构框图如图3[7]所示。
本设计中Aurora IP核数据接口数据宽度配置为8 B,参考时钟配置为200 MHz,配置两路光纤链路,光纤链路速率配置为5 Gb/s,采用全双工,帧格式进行数据传输。在Aurora IP核数据接收模块与A/D采集控制模块之间添加一个数据接收FIFO达到数据位数匹配。在Aurora IP核数据发送模块与A/D采集控制模块之间添加一个数据发送FIFO达到数据速率匹配和数据缓存的目的。
3 数字逻辑设计
数字逻辑设计主要包括可编程时钟电路配置模块、AD9226数据采集电路控制模块、外部触发模块,以及基于Aurora协议的光纤收发模块的控制设计。其中可编程时钟电路主要是通过SPI总线配置寄存器产生不同频率时钟信号,将不同频率的时钟提供给8路AD9226数据采集电路实现不同采样率下的信号采集,完成对AD9226数据采集电路的控制。
3.1 外部触发模块
在数据采集过程中,为了达到某种特定条件再开始采集,需要在系统下发开始采集命令后,由被采集信号控制具体开始采集时刻,为了满足这些需求,本系统设计了外部边沿触发和门控触发模式。上位机下发等待触发以及触发类型命令后,硬件电路首先判断是否需要外部触发,其次判断触发类型。当触发类型为外部边沿触发时,第一个外部脉冲上升沿到来时触发系统开始采集,下一个外部脉冲上升沿到来时触发系统停止采集;当触发类型为外部门控触发时,外部脉冲为高电平时开始采集,为低电平时停止采集。如果不等待外部触发,则直接触发电路开始采集。边沿触发示意图如图4所示,门控触发示意图如图5所示。
3.2 基于Aurora协议的光纤收发模块
系统上电后光纤传输链路首先进行初始化,然后信号Channel_up和Lane_up[1:0]拉高,准备开始接收或发送数据,系统完成初始化。初始化后等待接收上位机命令,并按照上位机通信协议解析命令。
系统接收到上位机命令后,开始解析命令,首先按照上位机下发的采样率参数,配置可编程时钟电路产生对应频率的时钟。可编程时钟电路配置完成后判断触发模式,如果为外部触发,判断外部触发方式等待触发,否则直接开始采集。在数据采集过程中如果收到停止命令,或者外部触发停止,则系统处于复位状态,停止采集。程序流程图如图6所示。
3.2.1 光纤数据发送模块
光纤数据发送模块主要用于将数据按照Aurora协议中的数据帧(Framing)格式发送。本系统中发送模块主要设计了数据包帧头标志TX_DATA_SOF、数据包帧尾标志TX_DATA_EOF、数据有效信号TX_DATA_Vaild,以及要发送的数据TX_DATA。其中TX_DATA_SOF为低时表示帧头有效,TX_DATA_EOF为低时表示帧尾有效,TX_DATA_Vaild为低代表数据有效[7]。具体传输时序如图7所示。
3.2.2 光纤数据接收模块
光纤数据接收模块主要实现外部数据接收。与数据发送模块类似,在数据接收模块设计中主要按照Aurora协议中的数据帧格式接收数据。其中数据包帧头标志为RX_DATA_SOF,数据包帧尾标志为RX_DATA_EOF,数据有效信号为RX_DATA_Vaild,要发送的数据为RX_DATA。RX_DATA_SOF为低时表示帧头有效,RX_DATA_EOF为低时表示帧尾有效, RX_DATA_Vaild为低代表数据有效[7]。具体传输时序如图8所示。
4 测试结果
为了直观测试采集系统测量精度,实验中8路A/D分别采集8种不同电压值,将采集数据按照帧格式上传至上位机,电压采集测试部分数据如图9所示。
上位机收到数据以后,按照协议解析数据将多次测量数据取平均按式(1)反向计算就得到真实测量值,结果如表1所示。
由表1观察得到,系统采集到的电压值最大误差为0.08%,最小误差0%,达到了设计目标。为了进一步验证采集系统的采样率,利用安捷伦信号发生器产生了8种幅度不同频率相同的的正弦波。通过上位机配置AD9226采集电路,以60 MHz采样率对模拟信号采样,将采样数据利用上位机软件分析,分析结果如图10所示。从图中可以看出8路A/D采集可以同时以60 MHz采样率进行采样,正弦波波形连续说明传输系统没有丢数,正弦波波形光滑说明系统传输也没有出现误码,证明系统可以以60 MHz采样率工作,而且光纤传输速率可以满足7.68 Gb/s的要求。由此进一步证明了采集系统的可靠性。
5 总结
本文介绍了一种以高速数据采集与光纤传输系统的设计过程。经过测试证明,系统每通道采样速率为60 MHz,最大传输速率7.68 Gb/s。目前,本系统已成功应用于某型高速数据记录仪,该记录仪在多种测试条件下都表现出良好的测试效果。该系统还可以应用于其他高速数据采集领域。
参考文献
[1] 黄万维,董永吉.Xilinx FPGA高速串行传输技术与应用[M].北京:电子工业出版社,2015.
[2] 王冰,靳学明.LVDS技术及其在多信道高速数据传输中的应用[J].电子技术应用,2003(3):55-56.
[3] 姜漫.10Gbps/40Gbps光纤通信技术研究与系统实现[D].长春:中国科院学长春光学精密机械与物理研究所,2012.
[4] 徐文波,田耘.Xilinx FPGA开发实用教程[M].北京:清华大学出版社,2012.
[5] 赵健.导航接收机数字信号处理平台设计与实现[D].哈尔滨:哈尔滨工程大学,2006.
[6] 鲁睿其,曾健平,赵豫斌,等.基于Aurora协议光纤实时信号传输性能测试[J].核技术,2015(3):49-53.
[7] Xilinx PG046.Xilinx logicore ip aurora 8B/10B product guide[EB/OL].(2014)[2016].http://www.xilinx.com/support/documentation/ip_documentation/aurora_8b10b/v11_0/pg046-au-rora-8b10b.pdf