针对数据在高速远距离传输过程中可靠性低的问题,提出了一种基于 LVDS 长线传输和新型 8B/10B 编解码的解决方案。该方案采用了国产 LVDS 编解码芯片,在硬件电路中加入驱动设计和均衡设计,补偿信号在长线传输中的损耗;在逻辑设计中加入了一种新型的 8B/10B 编解码,实现数据在传输中的直流平衡,提高传输的可靠性。经验证,该系统中 LVDS 串行数据可以 500 Mb/s 的传输速率在 240 m 的平衡双绞导线上实现无误码传输。

 
中图分类号: TP274
 
文献标识码: A
 
DOI:10.16157/j.issn.0258-7998.190096
 
英文引用格式: Lei Wuwei,Wen Feng,Liu Donghai,et al. Design of high reliability and remote data transmission based on LVDS[J]. Application of Electronic Technique,2019,45(6):130-134.
 
Design of high reliability and remote data transmission based on LVDS
 
Lei Wuwei,Wen Feng,Liu Donghai,Wang Shuqin
 
Key Laboratory of Instrumentation Science and Dynamic Measurement,Ministry of Education; Science and Technology on Electronic Test and Measurement Laboratory,North University of China,Taiyuan 030051,China
Abstract: Focused on the low reliable problem of data existing in high-speed and long-distance transmission process, a method based on long transmission of LVDS and a new type of 8B/10B codec is proposed. The method selects and uses LVDS codec which is made in China, in the hardware circuit, the drive circuit and equalization circuit are adopted to compensate loss of signal in remote transmission; and in logic design, the new type of 8B/10B coding is realized to achieve DC balance of data in transmission and stability improvement in data transmission. Through the verification, error-free transmission of LVDS serial data can be realized at the rate of 500 Mb/s and on 240 m of balanced twisted-pair wire in the system.
 
Key words : high-speed transmission;long-distance;transmit by LVDS;new type of 8B/10B codec;error-free bit
 
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 的平衡双绞导线上实现无误码传输,满足测试任务要求。
 
参考文献
[1] 储成群 . 基于 LVDS 接口的高速数据记录器的设计[D]. 太原:中北大学,2011.
 
[2] 张天文,刘文怡 . 基于 LVDS 和 PCI 接口的高速图像传输系统设计[J]. 电子技术应用,2014,40(7):51-53,60.
 
[3] 刘佳宁,文丰,王淑琴,等 . 基于 LVDS 的高可靠性长线传输设计[J]. 电子器件,2017,40(5):1209-1213.
 
[4] 毕锦栋,郑丽香,周军连,等 . 电子元器件国产化替代工作讨论[J]. 质量与可靠性,2015(3):35-40.
 
[5] 李永梅,李先亚,周传祥 . 军用进口电子元器件的国产化替代验证典型案例分析[J]. 质量与可靠性,2017(5):30-33.
 
[6] 郭佳欣 . 基于 LVDS 的图像采集存储装置的设计与实现[D]. 太原:中北大学,2017.
 
[7] 李治华,赵冬青,甑国勇,等 . 高可靠性远程数据传输系统设计[J]. 电子器件,2017,40(2):490-494.
 
[8] 李宏儒,刘亮 . 并行转串行 LVDS 长线接口设计[J]. 实验室研究与探索,2010,29(6):62-65.
 
[9] 赵阳刚,郭涛,黄玉岗 . 基于 FPGA 和 LVDS 的弹载数据回读系统设计[J]. 电子器件,2017,40(1):113-117.
 
[10] 张平 . 基于 FPGA 的高速 8B/10B 编解码电路设计[D]. 合肥:安徽大学,2016.
 
[11] 刘泳锐,张彦军,刘龙飞,等 .8B/10B 编码实现 LVDS 交流耦合传输中的直流平衡[J]. 科学技术与工程,2012,12(35):9693-9696,9701.
 
[12] 李长庆,程军,李梁,等 . 采用并行 8B/10B 编码的 JESD-204B 接口发送端电路设计[J]. 微电子学与计算机,2017,34(8):70-75.
 
[13] 常红,柯导明,孟坚,等 . 新型 8B/10B 编码方案的设计与实现[J]. 计算机工程与应用,2018,54(2):87-90,106.
 
[14] 王方,周璐,张正璠 .8B/10B 编码器新型算法结构的设计与实现[J]. 微电子学与计算机,2016,33(10):151-154,158.