《电子技术应用》

基于TLK2711的高速数据串行传输

来源:电子技术应用2013年第9期
贾建超1,陈 涛1,李 钊2
(1.西安电子科技大学 电子工程学院,陕西 西安710071; 2.华北水利水电大学 信息工程学院,河南 郑州450011)
摘要: 提出了一种基于多路TLK2711的高速数据串行传输方案,详细介绍了其工作原理和设计思想,结合FPGA和DDR3实现了单路有效数据率最高可达1.55 Gb/s。在此基础上设计并实现了6通道TLK2711的数据串行传输系统,有效数据率高达9.67 Gb/s。实验证明,该系统工作稳定可靠,实时传输效果好,无误码,满足了高速多通道TLK2711数据的传输速率要求。
中图分类号: TN919
文献标识码: A
文章编号: 0258-7998(2013)09-0047-03

High-speed serial transmission for data based on TLK2711

Jia Jianchao1,Chen Tao1,Li Zhao2
(1.School of Electronic Engineering,Xidian University,Xi′an 710071,China; 2.School of Information Engineering,North China University of Water Resources and Electric Power,Zhengzhou 450011,China)
Abstract: A high-speed data serial transmission scheme of multi-channel TLK2711 is presenting, operation principle and design idea are introduced in detail, achieving a single-channel effective data rate which is up to 1.55 Gb/s combining FPGA and DDR3.On this basis, a TLK2711 data serial transmission system with six channels is designed,whose effective data rate is up to 9.67 Gb/s. The experimental results indicate that the system works stable with high efficiency and no error code, which can meet the requirements of high-speed in the transmission of multi-channel TLK2711.

    目前空间遥感技术在农业、地质探测、气象以及军事等领域有着广泛的应用[1]。搭载在航天器上的空间遥感仪器将拍摄到的图像数据通过数据传输系统发送到地面[2]。空间遥感仪器进行工作时会获取大量的图像数据信息,为了便于后期数据的处理和分析应用,需要对获取的高速数据进行采集存储。由于数据量十分庞大,目前通常采用高速串行差分的方式进行传输,这样可以大大减少信号之间的相互串扰以及外部噪声的干扰。在进行高速数据传输系统设计的过程中,使用现成的高效高速数据传输芯片将会使整个设计工作事半功倍。本文重点介绍了基于TI公司的TLK2711高速数据传输芯片的串行传输系统设计。

1 系统硬件设计
    本文研究的是一种基于TLK2711的高速串行传输方案,在实现高速实时数据传输的基础上进行数据信号处理。系统中的关键组成部分包括PCI Express总线接口模块、FPGA数据处理控制模块、DDR3 SDRAM存储模块以及TLK2711高速串/并转换接口模块,系统框图如图1所示。系统的工作原理:发送端PC通过PCI Express总线接口与发送板进行数据通信,将PC模拟的卫星成像数据源通过缓存DDR3 SDRAM由TLK2711高速串/并转接口发送给数据信号处理器;经过数据信号处理器处理的数据再通过TLK2711高速串/并转接口发送给接收板,接收板通过缓存DDR3 SDRAM由PCI Express总线接口上传给接收端PC,最后在接收端PC中进行数据校验和相应处理。

2 系统逻辑设计
2.1 总体逻辑设计

    作为系统的控制核心,FPGA起着前端TLK2711发送/接收控制、数据链路多路转换控制、DDR3 SDRAM控制器、PCI Express总线DMA传输控制的作用。发送端的PC将数据源在发送板总线主控DMA控制器的控制下,通过PCIE-8x通道将数据传入FPGA存储到片外的DDR3 SDRAM,FPGA通过内部逻辑对DDR3 SDRAM中缓存的数据进行必要的时序控制和相关处理,处理过后的并行数据流在FPGA内部进行重组,形成满足TLK2711数据格式要求的16 bit数据流。这个过程主要是同步字符、帧头、帧尾以及控制信号的添加等。TLK2711根据参考时钟对输入的并行数据进行8B/10B编码,然后以20倍的参考时钟频率将数据以高速差分串行输出的方式通过铜缆传送给数据信号处理器。
    经过数据信号处理器处理过的数据以串行差分方式通过铜缆传送给接收板的TLK2711,TLK2711在参考时钟下完成高速串行输入数据的串/并转换,转换后的20 bit并行数据经过内部同步到恢复时钟,然后利用8B/10B解码格式将20 bit并行数据解码为原始的16 bit并行数据输出到FPGA进行数据处理,FPGA通过内部逻辑对高速数据进行必要的时序控制和相关处理。这个过程主要是去除帧头、帧尾、同步字符,同时检测控制信号并对数据进行处理。处理过后的数据缓存到片外的DDR3 SDRAM,在总线主控DMA控制器的控制下,通过PCIE-8x通道将缓存的数据写入计算机硬盘。FPGA内部逻辑示意图如图2所示。

2.2 TLK2711传输协议
    TLK2711高速串行协议是一种基于点对点的单工协议,它以16 bit为一个基本的传输单位,数据被分成了高8位和低8位,因此每个控制字符都定义成了2 B(分别由D码和K码组成),编码方式由2个控制信号TKMSB/RKMSB和TKLSB/RKLSB决定。协议的工作过程如图3所示。

    系统上电或复位后,收发双方处于失步状态(在发送端复位后要保证接收端已处于接收状态),发送端首先发送同步字符且时间长度不小于1 ms,1 ms结束后认为系统完成同步过程,发送端开始数据帧的发送。在每一帧数据发送结束后和下一帧数据开始发送前,发送端要发送同步字符来保持数据传输链路的同步状态。在同步状态建立后,接收端不断检测输出控制信号RKLSB和 RKMSB,根据RKLSB和 RKMSB的状态判断数据类型,舍去帧头、帧尾和同步字符,锁存真正需要的数据。接收端在数据帧传输过程中如果失步,则依靠数据帧间的同步字符重新建立起收发间的同步关系,同步关系建立后立刻转入正常数据接收状态。根据协议工作过程,定义TLK2711芯片用作发送通路时的6个状态分别是:空闲、建立同步、发送帧头、发送数据、发送帧尾、发送同步字符,其发送通路的状态转换如图4所示。

2.3 带宽动态分配
    系统采用6片TLK2711并行工作,接收端要根据发送端的速率适时调整接收端TLK2711的工作数量,以实现带宽的动态分配。当接收端的6片TLK2711同时接收数据时,FPGA需要在一个时钟周期内将96 bit并行数据转换为与PCI Express总线位宽匹配的64 bit并行数据,然后才能进行相应处理。考虑到调用FPGA内部的RAM IP核或者FIFO IP核无法实现该位宽转换,因此设计了一个输入位宽可变的RAM来处理数据位宽,从而实现接收端TLK2711工作数量可调。
      首先FPGA在接收板TLK2711的恢复时钟下将重构的并行数据锁存一个周期,然后根据伴随着数据流的输入控制信号判断是否有有效数据到来,当接收到有效数据后,将数据写入异步FIFO进行不同时钟域的数据处理。当一个信号从一个时钟域传递到另外一个时钟域时经常会出现亚稳态问题,解决这一问题可以使用一个异步FIFO使得另外一个时钟域的信号足够稳定。将接收端TLK2711从串行数据流中提取的恢复时钟作为FIFO的写时钟,将PCIE总线250 MHz分频产生一个同相的125 MHz时钟作为FIFO的读时钟。当FIFO半满信号有效时,读写控制逻辑开始将FIFO中的数据读出来作为位宽可调的RAM的输入,从而实现位宽转换。该RAM的接口如图5所示,其中adjust为通道选择信号,wr为异步FIFO的读使能。

    考虑到RAM的读写时钟以及输入/输出数据位宽,可以发现RAM的写数据速度远小于其读取数据的速度,故系统采用乒乓操作对接收板TLK2711的数据进行处理。FIFO读出的数据首先写进ram0,ram0写满之后开始向ram1写数据,同时将ram0写入的数据读取出来。由于ram的写数据速度远小于其读取数据的速度,所以当ram0中的数据读取完时ram1还未写满,此时ram0停止读取数据并且处于等待状态直至ram1中写满数据。当ram1中写满数据时开始写ram0,同时紧接着读取ram1中的数据。同理,当ram1中的数据读取完时ram0还未写满,所以此时ram1同样停止读取数据并且处于等待状态,直至ram0中满数据。当ram0写满数据时,立即开始写ram1读取ram0中的数据,如此循环。该乒乓操作示意图如图6所示。

    按照设计思路将模块功能在Xilinx公司的FPGA设计平台ISE 14.2上进行代码编译综合、功能仿真和时序仿真等,通过JTAG口将程序下载到FPGA中进行实际运行,然后利用ISE 14.2自带的逻辑分析仪采集所要观察的数据信号并进行在线调试。图7为使用ISE 14.2中Chipscope采集的对单通道TLK2711接收到的数据进行不同时钟域处理和乒乓操作的时序图。从图中可以看出整个工作情况与以上描述一致,证明该模块从代码设计和时序约束到功能实现全部通过,数据传输速率在TLK2711芯片内可以达到194.74 MB/s。
2.4 设计中应注意的问题

 


    高速数据传输系统要求有高稳定性和高精度的时钟源,抖动和频偏是衡量时钟源的两个重要指标。TLK2711内部对输入参考时钟进行20倍频,同时TLK2711的时钟稳定度要求小于±10 ppm,在设计时不能使用FPGA内部的MMCM模块倍频生成参考时钟。因为经过MMCM模块倍频的时钟容易引起比较大的抖动,导致TLK2711接收锁相环无法稳定地锁定发送时钟从而产生误码。考虑到时序的设计要求,系统选用125 MHz的有源晶振作为TLK2711的时钟源,并将其输出时钟接至FPGA的全局时钟引脚,同时使用IBUFG+BUFG对该全局时钟进行处理后作为6路TLK2711的输入参考时钟。为了保证高速差分信号的传输质量,差分线对的两根线应尽可能靠近并且远离其他信号,在进行PCB布线时,TLK2711的16 bit并行总线与伴随时钟也要进行等长处理,以保证输入数据的同步和一致性[3-5]。
      对于高速串化解串器TLK2711,当它只用作发送通路时,应将LCKREFN引脚置低,这样接收通道的RXD[0:15]、RXCLK、RKLSB、RKMSB等引脚都会处于高阻抗状态;当只用作接收通路时,发送端不用的TXD[0:15]、TKLSB、TKMSB等引脚应当拉高或拉低使其处于一个稳定的状态。
      基于TLK2711的高速串行传输系统的设计大大降低了高速数据传输过程中的互联复杂程度,同时保证了信号传输的实时性和准确性。基于此设计的6通道串行传输系统工作稳定可靠,各项指标达到设计要求。本系统创新点在于采用输入位宽可调的RAM对接收端进行带宽动态分配,对于解决高速多通道TLK2711的串行传输系统设计有较高的参考价值。
参考文献
[1] 任建岳.空间光学遥感器专题文章导读[J].光学精密工程,2008,16(10):1852-1852.
[2] 曹小涛,徐抒岩,赵运隆.空间相机连续调焦地面仿真测试系统设计[J].液晶与显示,2011,26(3):409-412.
[3] 张达,徐抒岩.高速CCD图像数据光纤传输系统[J].光学精密工程,2009,17(3):670-675.
[4] Texas Instruments.TLK2711 1.6 to 2.7 Gb/s transceiver  datasheet[Z].2001.
[5] 张达,徐抒岩.基于TLK2711的高速图像数据串行传输系统[J].微计算机信息,2009,25(1-2):284-286.

继续阅读>>