【学术论文】基于6B/10B编码的RS422遥测通信技术研究
摘要
RS422以其低成本、高可靠性的特点,广泛应用于工业和防务的通信接口。但同时由于自身传输速率慢和传输距离短的缺点,使得它的应用范围局限于低速、近距离传输。针对此类问题,对制约RS422传输速率和距离的原因进行深入的分析,提出了一种在软件上提升接口通信速率的方法,对RS422数据进行6B/10B编码,增加电平的转换使处理器更好地进行边沿判断;编码中去掉了传统8B/10B编码中的直流分量,实现编码的唯一性,并且具有一位纠错功能。实验证明,通过增加编码的方式使得RS422的传输速率更加接近于理论值,对工程上提高RS422的吞吐率有一定的借鉴意义。
中文引用格式: 任勇峰,王小兵,张凯华. 基于6B/10B编码的RS422遥测通信技术研究[J].电子技术应用,2019,45(5):54-56,60.
英文引用格式: Ren Yongfeng,Wang Xiaobing,Zhang Kaihua. Research on RS422 telemetry communication technology based on 6B/10B encoding[J]. Application of Electronic Technique,2019,45(5):54-56,60.
0 引言
在高速差分总线LVDS广泛应用的时代,RS422以可靠性高以及成本低的特点依然广泛应用于各个领域,许多成熟定型的产品仍然需要采取RS422接口来进行数据传输。例如在遥测系统中,RS422的抗干扰能力优于LVDS,所以在速率不高的情况下,依然采用RS422作为通信接口。在通常情况下,RS422受限于UART通信协议和自身的电器特性,无法达到很高的速率,理论上在距离很短的情况下,最大的传输速率可以达到10 Mb/s,但在实际应用中,波特率最高只能达到1 Mb/s,这就是为什么很多资料中允许的最大波特率只能达到115.2 Kb/s~916 Kb/s之间[1]。一些技术(如DSLC、HDLC等)可以将RS422的通信速率提高到8 Mb/s以上,但是以牺牲通信距离为代价,其通信的距离只有数米。目前市面上RS422接口芯片有很多,每种接口芯片都能满足最大传输速率10 Mb/s的需求,所以在已有硬件的基础上如何提高通信速率,对RS422的应用具有重要的意义。
1 综合因素分析
影响RS422传输速率的因素主要有两种,一种为电缆的电气特性,理想状态下电缆对传输的信号没有任何的影响,实际情况受到分布电阻和电容等的影响,使得信号在电缆中衰减、反射,另一种是RS422传输协议的弊端,UART协议是通过判断电平来进行解码,这样增加了数据通信的间隔,这也是限制RS422通信速率的重要因素。本文从传输介质和传输方式两方面分析,找出约束传输速率的主要因素,通过技术方法改进存在的缺陷,使信号在30 m长的电缆上以10 Mb/s的速率传输而不出现误码。
2 电缆特性
电缆不仅仅是承载传输信号的媒介,同时也是决定信号频率优劣的主要因素。在电缆中,电缆的频率特性和电缆上的反射对电信号的高速传输产生极大的影响。对于双绞线构成的电缆,其线缆衰减特性等效电路模型如图1所示,可以看出在高速信号的传输中,这些影响因素都是频率的函数。将串联电阻用R(f)表示,串联电感用L(f)表示、并联电容用C(f)表示,并联电导用G(f)表示。
其串联阻抗Z(f)可以表示为:
根据双绞线传输线理论,双绞线电缆作为有损传输线,其总衰减损耗包括两部分,一部分为趋肤效应的损耗,趋肤损耗与频率的平方根成正比,并且趋肤效应使电缆的分布电阻增加;一部分为介质损耗,介质损耗与频率成正比,随着频率的升高导致了更为陡峭的衰减[2]。两者都是频率的正相关函数,也是电缆长度的函数,当频率达到一定值时,线路的损耗随着电缆长度的增加而增加。所以在高速传输时,衰减损耗对有用信号传输的影响是巨大的。实际应用中由于电缆的阻抗分布不均匀以及与接收设备的阻抗不匹配,导致信号在传输线上反射,这也是影响传输信号的重要原因。由式(3)可以得出,双绞线的特性阻抗是一个与长度无关的量,但是当阻抗不匹配时,由于电缆长度的增加,会使反射波在双绞线中持续的时间增长,影响信号的传输质量。
电缆的频率特性和线上反射是决定长线传输中信号频率优劣的主要因素,考虑到电缆和UART协议的特性,理论上RS422的传输速率最大为10 Mb/s,与设法提升电缆的性能相比,设计一种适合RS422接口并且不大幅增加现有处理器负担的通信协议来达到最大传输速率是最为有效的。本文借鉴常见的高速总线编码方法,开发了一种适应RS422传输的编码方法。
3 6B/10B编码介绍
传统的8B/10B编码是将8 bit的数据拆分成两组,分别为3 bit和5 bit,然后再分别将3 bit映射成4 bit,将5 bit映射成6 bit。在进行直流平衡时提出不平衡度的概念,通过记录前级极性的状态,匹配相反极性的数据编码来实现直流平衡和最大化信道带宽利用率,从而使数据可靠传输。为了达到直流平衡,8B/10B编码借助总共268个字符以及与之对应的反转码来判断极性,在逻辑上存在很大的开销。在RS422接口通信中,传输速率不高于10 Mb/s并且没有交流耦合电路,所以不需要严格意义上的直流平衡,并且不需要较高的传输效率,这就为简化编码提供给了可能。
改进型6B/10B编码为传统8B/10B编码的精简版,在6B/10B编码中,降低了有效数据的传输带宽,将一次性传输有效数据位数减小为4 bit,增加了两位标志位,确定是否是高4 bit还是低4 bit;同时采用线性分组码向前纠错方式(FEC)增加了监督位,根据分组原则,增加了4 bit监督位,从而通过监督公式确定误码位置,完成数据的纠错控制。6B/10B编码需要每次传输10 bit,根据线性分组码的编码原理采用4个监督位理论上可以产生16种校正子码组,10 bit数据需要10种校正子码组[3]。经过分析得出10种合适的校正码子和误码位置如表1所示。其中S1、S2、S3、S4表示由监督关系方程式计算得到的校正子,A0~A9为误码位置,则校正子的值可以由以下公式获得:
在传输中,信息码元是随机的,监督码元可以由其监督公式得出,监督公式如下:
经过以上分析,得出数据的具体传输格式如表2所示。
具体的编码规则为:一个字节数据分两次传输,首次发送该字节的低4 bit,其次发送该字节的高4 bit。确定4 bit有效数据和两位的标志位(10:数据低4 bit;11数据的高4 bit)后,可以根据监督公式确定传输数据10B中的后4 bit。根据监督公式和编码规则可以得出64个有效码组合来用于传输数据,借鉴8B/10B编码规则,选用的有效码组尽量做到连续“0”或“1”的个数不达到5个。通过对比,标志位(A9、A8)为“10”和“11”时直流平衡度要好于标志位为“00”和“01”的有效码组的数据。考虑到1位误码的冗余,无效冗余码接收时均当作无效码处理。因为RS422的传输速率不高于10 Mb/s并且没有交流耦合电路,所以对码组的直接应用导致的非直流平衡对传输的速率和准确度无较大影响。采用6B/10B编码方式与传统的8B/10B编码相比,减小了判断极性的复杂性,简化了逻辑。采用传输4 bit有效数据降低了一定的传输速率,但是对于RS422中低速传输没有影响[4-6]。
4 编码算法在RS422通信的实现
根据已知要求搭建硬件平台,此平台完成收据的收发功能,并且能够对数据进行处理,传输模型如图2所示。系统中主控芯片采用XC3S400型号的FPGA,外接40 MHz晶振满足传输速率的时钟要求[7];RS422收发芯片采用MAX3295和MAX3284,此类芯片接口支持的最大速率可以达到20 Mb/s,满足设计需求。
FPGA发送端发送复位命令,在发送复位命令的同时自身复位,准备接收数据。继续发送字同步、移位脉冲,根据帧格式在每个移位脉冲的下降沿发送数据[8]。因为采用6B/10B编码时有效带宽为4 bit,所以每个字节的有效数据需要传输两次,第一次传输数据的低4 bit,第二次传输数据的高4 bit。接收端接收到复位命令后复位,然后根据字同步信号进行同步处理,最后根据移位脉冲信号判断,在移位脉冲的上升沿接收数据并计算校正子,对数据进行校验,按照编码格式进行解码。当传输数据有一位数据出错时可以自动纠错,保证数据正确接收。发送接收流程如图3所示。
5 数据验证
为了验证理论的可行性,在已有硬件平台的基础上搭建完整的闭环测试系统。设计RS422收发板卡并且与CPCI机箱相连[9];搭建了30 m距离的通信电缆进行通信,并且编写相应的上位机软件来实现数据的实时存储和分析。发送端以10 Mb/s向接收端发送递增数,递增数的内容为00H~FFH,并且增加帧计数用来判断是否丢包和增加帧标志易于一帧数据的判断。接收端接收数据并对数据进行分析和处理,在接收1 GB的数据容量内无误码。图4为测试结果部分截图。重复以上过程,在100次试验数据中,数据完整无误码,验证了设计的可行性。
6 结论
本文对制约RS422传输距离和速率的因素进行分析,在不改变原有硬件的基础上,通过分析得出对电缆性能的提升存在技术和工艺上的难点,对信号传输方式的改变是简单易行的。通过借鉴高速传输总线的编码方法,提出了一种适合RS422传输的编码方式,采用8B/10B改进版的6B/10B编码方法。该方法去掉了8B/10B中繁琐的直流平衡匹配,编码数量少并且编码表唯一,在一定程度上达到了数据的直流平衡,减小了处理器负担;增加了向前纠错的功能,可以自动纠正一位出错位,使数据可靠传输;数据从6B映射到10B,增加了电平的跳变,能够使处理器更加快速地识别数据信息,从而提高了数据的传输速率。经过大量实验验证,该编码方法简单可靠,能够使数据在30 m长的双绞线电缆上以10 Mb/s的速率长时间传输不出现误码,在工程中提高了RS422接口数据的吞吐率,达到很好的应用效果。因为6B/10B编码具有直流平衡的特点,同样适用于中低速的LVDS传输,对LVDS传输逻辑上的简化也有借鉴意义。
参考文献
[1] 胡博,邢广义,王蕊.RS422/485串行接口数据吞吐率提高技术研究[J].工业控制计算机,2017,30(11):30-31.
[2] 方炜,任勇峰,储成群,等.低电压差分信号远距离通信电缆参数估计[J].科学技术与工程,2018,18(19):209-212.
[3] 刘佳宁,文丰,王淑琴,等.基于LVDS的高可靠性长线传输设计[J].电子器件,2017,40(5):1209-1213.
[4] 赵俊江,张会新.一种高速大容量图像存储装置的关键技术研究[J].现代电子技术,2017,40(12):144-147,151.
[5] 邱永成,谢荣清,郭轶.基于双CPCI总线的地震数据采集接口卡设计[J].电子技术应用,2017,43(5):102-105.
[6] 李健,刘歆浏.目标二次提取法在高帧频视频跟踪器上的应用[J].兵器装备工程学报,2017,38(6):66-69.
[7] 李夏如,王慧忠,姜周曙,等.模拟发控装置RS422通信单元可靠性设计研究[J].测控技术,2018,37(8):107-110,116.
[8] 吕鸣,滕斌.一种飞机机载数据中继管理单元设计与实现[J].电子技术应用,2018,44(6):52-55.
[9] 郭佳欣,单彦虎,任勇峰,等.一种提高RS422/RS485可靠性通信方法的研究[J].科学技术与工程,2017,17(9):206-213.
作者信息:
任勇峰,王小兵,张凯华
(中北大学 仪器科学与动态测试教育部重点实验室,山西 太原030051)