联系我们   Contact
搜索   Search

通过LVDS完成高速远距离数据传输

2019-8-4 22:19:47      点击:

通过LVDS完成高速远距离数据传输

0 引言


在某远距离测试任务中,需要使用数据采集编码器采集多路高速模拟量信号,并将这些信号实时地回传给地面测试台进行数据检测与处理,由于此任务测试环境特殊,测试员不可近距离测试,因此需要将数据在远距离的情况下高速地回传给地面测试台进行数据处理。基于此任务中使用的电缆网所处的环境较为恶劣,周围电磁干扰大,对于传统的并行线传输,虽然传输速率可以满足任务要求,但由于需要较多接口数据线,在这种传输速率高且环境恶劣的情况下会导致数据质量严重下降;PECL速率虽然也满足此次任务要求,但其接口电平并不与标准逻辑兼容[1];而RS422和RS485的数据传输速率明显不能满足任务要求,因此选用LVDS技术作为本次设计的解决方案。


 


LVDS是一种可以满足高传输速率和远距离传输的低压差分信号,其理论传输速度可达到1.923 Gb/s[2],而LVDS信号在500 Mb/s的传输速率下其自身传输距离其实只有2~3 m,因此本设计为了达到任务要求,在硬件电路设计中加入了串行数字电缆驱动器和自适应电缆均衡器用于增加信号的驱动能力和补偿信号的衰减,而在软件逻辑设计中增加了一种新型的8B/10B编码方案,用于更加高效快速地处理数据,提高数据传输的可靠性[3]。


 


1 系统总体方案设计


系统的总体设计框图如图1所示,由数据采集编码器、地面测试台及上位机三部分组成。数据采集编码器采集高速模拟量信号,地面测试台接收上位机下发的指令并转发给数据采集编码器且接收数据采集编码器回传的数据。


 


根据测试任务,本设计采用4段60 m,共240 m的平衡双绞导线连接数据采集编码器与地面测试台,数据采集编码器以500 Mb/s的码率向地面测试台发送LVDS数据,并进行大量的实验模拟测试任务的现场条件,通过测试台回读的数据的正确性验证此方案的可行性与可靠性。


 


2 硬件电路设计


为了积极响应进口电子元器件国产化的需求,支持“中国芯”工程的发展[4],同时避免出现进口电子元器件由于停产、禁运的断档问题以及对芯片插入木马等的安全问题[5],本次设计放弃了传统设计中使用进口的LVDS串行器和解串器,经过对比多家国内芯片厂商的LVDS接口产品,最终选定了符合本次测试要求的成都振芯的LVDS编码器GM8223以及LVDS解码器GM8224。


 


由于趋肤效应和介质损耗,高速LVDS信号在电缆传输中会有所衰减[6],两者导致的信号衰减分别正比于传输频率的平方根和传输速率,尤其是在高速远距离传输过程中,电缆传输中的衰减更是产生信号不稳定的主要原因。本设计为了保证数据的传输质量,采用了针对500 Mb/s传输速率和240 m远距离的信号调理技术,通过对信号的均衡和预(去)加重[7],以达到设计要求。该部分采用了美国TI公司的串行数字电缆驱动器LMH0002和自适应电缆均衡器LMH0044。


 


2.1 LVDS接口发送电路设计


图2所示为LVDS接口发送电路,GM8223编码器接收来自FPGA的10位并行的TTL数据信号和一路TTL时钟信号,将其转化为1对LVDS串行数据信号输出到串行数字电缆驱动器LMH0002,GM8223串行传输速率在100 Mb/s~660 Mb/s之间,满足本设计要求。图中R9、R10和R11为上拉电阻,并且起到限流作用。



LMH0002驱动器的数据传输速率可以达到1.485 Gb/s,可以将GM8223输出的差分电压提升,从而有效地增加了数据在传输线上的传输距离。信号由LMH0002的输出端输出后经过LVDS平衡双绞线传向LMH0044的接收端。图中R7、R15、L1和R8、R16、L2分别组成两个回波损耗网络,用于减少信号在连接器处的回波损耗,提高信号传输质量[8];R13和R14为差分终端匹配电阻,用于消除信号的反射,增强信号的稳定性;C9、C10和C11为去耦电容;R12为控制输出电压摆幅的电阻,当阻值为590 Ω时,输出电压摆幅可达2.5 V。



2.2 LVDS接口接收电路设计


图3所示为LVDS接口接收电路,LVDS信号通过线缆和连接器传输至LMH0044均衡器,LMH0044具有208 mW的低功耗和极低抖动性的特性,其内部包含一个多级自适应滤波器,LVDS差分信号从输入端输入后,首先通过多级自适应滤波器对信号进行滤波,然后进入自偏置恢复电路对信号进行完全恢复后发送至输出驱动模块并产生自动均衡控制(AEC)信号,AEC信号用于反馈设置自适应滤波器的增益和带宽,之后内部的载波检测模块产生载波检测信号并发送给输出驱动模块,最后输出驱动模块经过综合后将信号通过输出管脚输出并传送至GM8224解码器进行解码。图中R1和R2为差分终端匹配电阻;C2和C3为隔直电容,避免输入电位影响正常信号的传输;由于LMH0044的输入信号为弱信号,较强的信号会耦合到其中并破坏数据,因此在PCB布板时LMH0044的输入信号与其他信号隔离开。



GM8224解码器利用了数据与时钟恢复技术,可以将串行输入的高速LVDS信号解码为10位并行数据和1路时钟信号,其串行传输速率在100 Mb/s~660 Mb/s之间,满足本设计要求。LVDS信号经过LMH0044的自动补偿后恢复至正常强度,再由GM8224解码器将1对LVDS数据信号转化为10位并行TTL数据信号和1位TTL时钟信号,传输给FPGA进行处理。图中R3、R4和R5为上拉电阻,并且起到限流作用。



3 软件可靠性设计


在LVDS信号高速远距离传输中,数据传输的可靠性是判断设计成功与否的最重要的标准[9],本次设计的主控芯片采用了北京微电子技术研究所设计的FPGA——BQV600。本次设计利用了FPGA速度与面积互换的思想,对传统的8B/10B编解码方案进行了改进,在一个时钟下同时并行将4组数据进行编码或解码的处理,通过增加处理数据的位宽从而提高了8B/10B编解码的整体速度[10],以达到500 Mb/s的数据传输速率。



3.1 LVDS发送端的新型8B/10B编码设计


为了保证数据在编码过程中的速度与正确性,采用了基于并行处理方式的新型8B/10B编码方法,图4是其编码电路流程图。该编码电路通过Transceiver IP核将4组8 bit数据组成一组32 bit数据,将每32 bit数据看成一个大的整体,每8 bit数据看成一个小的整体,分别为Din[7:0]、Din[15:8]、Din[23:16]和Din[31:24],然后4组数据会在同一个时钟下进入编码模块并进行编码处理,每组数据按照正负编码列表会得到2个10 bit数据以及2个极性值,处理后的8组10 bit数据和极性值经过均衡检测控制模块,根据极性均衡准则判断得出4组10 bit数据Dout[9:0]、Dout[19:10]、Dout[29:20]和Dout[39:30],最终通过Transceiver IP核将4组10 bit数据连续发出。其中Dout[9:0]在D11和D12中选出,Dout[19:10]在D21和D22中选出,Dout[29:20]在D31和D32中选出,Dout[39:30]在D41和D42中选出。



由于传统的8B/10B编码在编码过程中具有内在相关性,即前一个数据输出的游程值会对后一个数据编码有影响[11],因此在此方法的基础上无法完全按照传统的8B/10B编码对4组数据进行处理,需要重新设计编码电路,下面将对于新型8B/10B编码电路中的模块进行逐一介绍。




3.1.1 编码模块的设计


图5所示为编码模块的流程图,Datan为8 bit数据输入,其中n=1、2、3、4时分别对应Din[7:0]、Din[15:8]、Din[23:16]和Din[31:24],对于每个输入数据的正列表和负列表编码时,首先会判断其是否为控制码,若为控制码,则按照控制编码的映射关系进行编码,若不是控制码,则说明输入为数据码,按照3B/4B和5B/6B映射关系进行编码。


 

图6所示为极性判断的电路图,其中rd1与rd2分别为5B/6B与3B/4B的极性值,根据编码极性规则表,无论是5B/6B编码还是3B/4B编码,其极性值只可能为0和1[12]。对于图中的不带进位计算的加法器来说,在正负列表编码时,rd1与rd2相加所得到的RDn值将会与数据相对应的列表编码极性值相等,其中n取1或者2,当n取1时表示负列表极性的RD值,当n取2时表示正列表极性的RD值。


 


3.1.2 均衡检测控制模块的设计


在8B/10B编码过程中,由于输出码流中0与1的个数具有不均等性,因此要求在编码过程中要极性交替,从而保证0与1的相对平衡[13],具体操作为:如果当前取正列表编码,得到极性值RD=1,则下一次编码取负列表编码;反之亦然。


 


图7所示为均衡检测控制模块的流程图。图示rd1、rd2、rd3、rd4是记录数据Din[7:0]、Din[15:8]、Din[23:16]、Din[31:24]编码相对应的编码取值列表,Dout1、Dout2、Dout3、Dout4分别对应输出Dout[9:0]、Dout[19:10]、Dout[29:20]和Dout[39:30]。根据8B/10B编码规定,第一个编码值取负列表编码的值,然后判断与该编码对应的极性值RD是否为1,若为1则第二个编码列表的值取与第一个编码列表的值的相反的值,若不为1则第二个编码列表的值取与第一个编码列表的值的相同的值。以此类推,第四个编码列表的RD值同样也决定了下一组编码中第一个编码的取值,进而确保了整个数据编码的直流平衡。



3.2 LVDS接收端的新型8B/10B解码设计


LVDS接收端解码电路的工作原理与编码电路的工作原理类似,是编码电路的逆过程[14],将接收到的4组10 bit数据通过Transceiver IP核组成一组40 bit数据,该数据通过如图8所示的新型8B/10B解码电路得到32 bit数据,最终通过Transceiver IP核将数据以每组8 bit连续发出。


 

控制字符编码检测模块用于检测接收到的编码字符是否为控制码,若为控制码则对应的kin赋值为1,否则说明为数据码,kin赋值为0;解码模块将接收到的4组数据根据4B/3B和6B/5B解码映射关系表进行解码,然后进行4组数据的不均衡性检测得出其对应的RD值;违规检测模块通过比较相邻两组8 bit数据的值与RD值,判断在传输过程中是否产生解码违规数据,若没有产生,则输出有效数据,否则将该数据删除。



4 可靠性结果验证


为了验证本次设计的可靠性,采用数据采集编码器、地面测试台与上位机共同搭建的测试系统。地面测试台与数据采集编码器之间的数据传输采用了4段50 m的LVDS平衡双绞导线作为传输介质。测试中将数据采集编码器与LVDS平衡双绞导线放置于60 ℃高温环境并向LVDS双绞线中注入脉冲激励作为干扰,采用的数据帧结构如图9所示,其中“96 14 6F 14 6F”为数据帧包头,“00 00 00 00~00 00 00 09”为包计数,数据为00~59的递增数。


 


通过FPGA程序控制LVDS串行数据的传输速率,以及通过电缆长度控制LVDS串行数据的传输距离,分别进行如下误码率的测试,测试结果见表1、表2。


 


根据测试结果可知,硬件电路可以保证以100 Mb/s的传输速率在240 m的电缆中或以500 Mb/s的传输速率在60 m的电缆中无误码传输,但随着传输速率和电缆长度的增加误码率会越来越大,远不及测试任务要求。但在FPGA程序中加入新型的8B/10B编解码后,可以明显地降低数据误码率,不仅可以保证240 m长的远距离传输,而且速率上也可以满足500 Mb/s的高速无误码传输。


 


5 结论


针对数据在高速远距离传输过程中可靠性低的问题,本设计在硬件电路上采用了信号调理技术,对LVDS信号进行均衡和预(去)加重处理,同时在逻辑设计中,加入了一种新型8B/10B编解码的优化方式,极大地增强了传输链路的可靠性。通过大量的测试实验,验证了本设计中LVDS数据能够以500 Mb/s的传输速率在240 m的平衡双绞导线上实现无误码传输,满足测试任务要求。