- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于光纤传输的多路高速数据采集系统
摘 要: 介绍了8路高速数据采集传输系统的设计与实现。使用时分复用的数据传输方式将8通道数据通过3个光纤通道传输给处理设备,解决了多路高速数据传输的问题。采用FPGA作为主控芯片,TLK1501作为串/并转换和8 B/10 B编码芯片。A/D采样频率为20 MHz,整个系统的数据传输速率达到了1 920 Mb/s。通过使用Verilog语言编程,实现了数据的采集以及传输。该方案具有可行性好、方法简单、成本低的优点。
关键词: 高速数据采集;时分复用;光纤;TLK1501
近年来,数据采集在现代工业生产及科学研究中的重要地位日益突出,对数据采集的速率和采集通道数的提出了更高的要求[1]。随着采样频率和采样通道数的增加,如何快速有效地将大量采集到的数据传输到处理设备成为一个严峻的问题。特别是当处理设备和数据采集设备之间的距离较远时,这个问题显得尤为突出。对于一个8通道、12位精度、20 MHz采样频率的系统,所需的传输速率为1 920 Mb/s。传统数据采集卡多采用基于PCI、USB总线接口,这些接口扩展性差、结构复杂、传输速率和传输距离有限,使得其不适合在上述系统下使用。而光纤通信具有传输速率快,传输距离远、抗干扰能力强等优点,能够很好解决上述问题。
1 系统的设计
本系统以FPGA芯片为控制核心[2-3],控制A/D对8路模拟通道进行20 MHz采样,采样的精度为12位,将采集的数据实时地发送到接收板上处理。
如果采样频率和数据发送频率都是20 MHz,则总共需要8路光端机才能将每路信号转化为光信号传输出去,然后在接收端通过8路光端机将光信号还原为电信号,传给处理设备。这样的系统显然将十分复杂,实现起来非常困难。为此,本文设计基于时分复用的数据传输方式,提高了数据传送效率,有效地将8路光端机减少到3路。
为了实现时分复用,本系统的数据发送端将A/D采集到的96 bit数据分成3组,设为A、B、C三组,每组32 bit。每组在第N个数据发送时钟上升沿控制A/D采集96 bit数据,在第N个发送时钟下降沿发送每组32 bit数据中的前16 bit数据,在第N+1个发送时钟下降沿发送每组32 bit数据中后16 bit数据。重复以上操作,就可以实现分时复用的数据传输方式。数据发送部分的时钟为A/D采样时钟的两倍,保证所有A/D采集到的数据都能传输出去。
在系统的接收端,执行与发送端相反的操作。接收端对接收到的数据做解复用操作,把96位数据还原出来。最终设计系统的数据采集发送和接收硬件框图如图1和图2所示。
2 硬件电路的实现
2.1 采样电路
数据采集是整个系统的核心功能之一。系统使用ADI公司的高速数据转换器AD9235。AD9235的模拟输入端采用的是差分信号,选择差分输入信号,能够提高A/D输出的信噪比[4]。电路如图3所示。而信号发生器产生的信号是单端信号,需要将其先转换为差分信号再采样。使用ADI公司的AD8138芯片完成信号的单端转差分工作。AD8138具有带宽大、使用简单的优点,支持单电源供电,是单端转差分信号的理想选择[5]。电路如图4所示。
2.2 串并转换电路
串并转换芯片使用的是TI公司的TLK1501,它具有16 bit发送/接收数据接口,内部能够完成串并/并串转化和8B/10B编码功能[6-7]。
之所以在光端机前面加一个串并转换芯片TLK1501,是因为每个光纤通道同一时刻只能传输一位数据。16 bit并行数据必须先经过并串转换,才能通过光纤逐位传输出去。同时,接收端为了能够将接收到的串行数据流恢复,需要从串行数据流中提取到同步时钟信号,而对于一般的串行数据流这是很难完成的。但是如果串行数据流采用某种编码方式使得1和0出现的次数差不多,提取同步时钟信号就会变得简单得多。8 B/10 B编码即是满足这一要求的编码方式。
2.3 光收发模块电路
本系统使用1X9 1.25 Gb/s的光收发模块实现光电转换,它具有体积小,功耗低等优点。接口电路如图5所示。
光收发模块电路必须要注意以下问题:
(1)TLK1501输出的串行数据流为CML电平,而光收发模块的输入信号只支持LVPECL/PECL电平。需要一个电阻网络将CML电平转换到LVPECL电平。(2)由于串行数据流的速率高达640 Mb/s,必须要注意信号的完整性问题。(3)光收发模块对电源噪声敏感,电源需要充分去耦。
3 FPGA软件的实现和系统测试
3.1 FPGA程序模块
FPGA的程序由Verilog语言编写,整个系统分为PLL模块、时钟控制模块、发送控制模块及接收数据模块。发送数据模块负责TLK1501控制、数据复用功能。接收数据模块负责TLK1501控制、数据解复用功能。
发送数据模块如图6所示。
3.2 TLK1501控制要点
根据TLK1501芯片手册,TLK1501在正常传输数据前,需要首先进行同步操作,同步可以通过发送同步码的方式实现。保持发送板TLK1501的TX_EN、TX_ER管脚电平为0、0,发送同步码。此时如果接收板正确接收数据, TLK1501接收端的RX_ER、RX_DV管脚电平也应该为0、0。
当收发同步做好后,就可以进行正常的数据传输了。此时保持发送板TX_EN、TX_ER为1、0,将需要发送数据写入TXD端。接收板如果正确接收数据,RX_DV、RX_ER也应该为1、0,RXD输出的就是接收到的数据。
3.3 系统测试
对每一光纤通道分别进行测试。发送模块通过FPGA控制A/D按照20 MHz的频率采样输入信号,将采集的数据传输给TLK1501。数据经过8 B/10 B编码、并串转换、电光转换,最后通过光纤发送出去。使用QuartusII自带的逻辑分析仪得到发送时序图如图7所示,其中TXD为复用后的发送波形。
接收模块通过数据,通过光电转换、串并转换、8 B/10 B解码,还原出A/D的采样数据。接收时序图如图8所示。RXD为接收的复用波形,dat1(正弦波)和dat2(锯齿波)为解复用后得到的两路信号。
基于光纤传输的高速数据采集传输系统,运行稳定,三路的总数据传输速率达到了1 920 Mb/s,并且这个速率还能进一步提高。使用光纤对数据进行传输可以有效提高数据传输的效率,增加数据传输的距离,减少系统复杂度,特别适合复杂环境下的数据采集和传输,具有十分重要的实用价值。
参考文献
[1] 王玮,冯永茂,丁铁夫.基于FPGA的高速数据传输芯片控制器设计[M]. 电子器件,2008(3):845-848.
[2] 王金明.数字系统设计与Verilog HDL[M]. 北京:电子工业出版社, 2009.
[3] CycloneII Device Handbook[M]. Altera Corporation,2005.
[4] Analog Device Inc. AD9235 data sheet[EB].http://www.analog.com/zh/analog-to-digital-converters/ad- converters/ad9235/products/product.html,2004.
[5] Analog Device Inc.AD8138 data sheet[EB]. http://www.analog.com/zh/all-operational-amplifiers-op-amps/operational-amplifiers-op-amps/ad8138/products/product.html,2006.
[6] Texas Instruments.TLK1501 data sheet[EB].http://www.ti.com.cn/product/cn/tlk1501,2003.
[7] Texas Instruments. TLK1501应用指南[EB].http://www.ti.com.cn/cn/lit/an/zhca077/zhca077.pdf,2010.