文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190150
中文引用格式: 任勇峰,王小兵,張凱華. 基于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接口來進行數(shù)據(jù)傳輸。例如在遙測系統(tǒng)中,RS422的抗干擾能力優(yōu)于LVDS,所以在速率不高的情況下,依然采用RS422作為通信接口。在通常情況下,RS422受限于UART通信協(xié)議和自身的電器特性,無法達到很高的速率,理論上在距離很短的情況下,最大的傳輸速率可以達到10 Mb/s,但在實際應用中,波特率最高只能達到1 Mb/s,這就是為什么很多資料中允許的最大波特率只能達到115.2 Kb/s~916 Kb/s之間[1]。一些技術(如DSLC、HDLC等)可以將RS422的通信速率提高到8 Mb/s以上,但是以犧牲通信距離為代價,其通信的距離只有數(shù)米。目前市面上RS422接口芯片有很多,每種接口芯片都能滿足最大傳輸速率10 Mb/s的需求,所以在已有硬件的基礎上如何提高通信速率,對RS422的應用具有重要的意義。
1 綜合因素分析
影響RS422傳輸速率的因素主要有兩種,一種為電纜的電氣特性,理想狀態(tài)下電纜對傳輸?shù)男盘枦]有任何的影響,實際情況受到分布電阻和電容等的影響,使得信號在電纜中衰減、反射,另一種是RS422傳輸協(xié)議的弊端,UART協(xié)議是通過判斷電平來進行解碼,這樣增加了數(shù)據(jù)通信的間隔,這也是限制RS422通信速率的重要因素。本文從傳輸介質和傳輸方式兩方面分析,找出約束傳輸速率的主要因素,通過技術方法改進存在的缺陷,使信號在30 m長的電纜上以10 Mb/s的速率傳輸而不出現(xiàn)誤碼。
2 電纜特性
電纜不僅僅是承載傳輸信號的媒介,同時也是決定信號頻率優(yōu)劣的主要因素。在電纜中,電纜的頻率特性和電纜上的反射對電信號的高速傳輸產生極大的影響。對于雙絞線構成的電纜,其線纜衰減特性等效電路模型如圖1所示,可以看出在高速信號的傳輸中,這些影響因素都是頻率的函數(shù)。將串聯(lián)電阻用R(f)表示,串聯(lián)電感用L(f)表示、并聯(lián)電容用C(f)表示,并聯(lián)電導用G(f)表示。
其串聯(lián)阻抗Z(f)可以表示為:
根據(jù)雙絞線傳輸線理論,雙絞線電纜作為有損傳輸線,其總衰減損耗包括兩部分,一部分為趨膚效應的損耗,趨膚損耗與頻率的平方根成正比,并且趨膚效應使電纜的分布電阻增加;一部分為介質損耗,介質損耗與頻率成正比,隨著頻率的升高導致了更為陡峭的衰減[2]。兩者都是頻率的正相關函數(shù),也是電纜長度的函數(shù),當頻率達到一定值時,線路的損耗隨著電纜長度的增加而增加。所以在高速傳輸時,衰減損耗對有用信號傳輸?shù)挠绊懯蔷薮蟮?。實際應用中由于電纜的阻抗分布不均勻以及與接收設備的阻抗不匹配,導致信號在傳輸線上反射,這也是影響傳輸信號的重要原因。由式(3)可以得出,雙絞線的特性阻抗是一個與長度無關的量,但是當阻抗不匹配時,由于電纜長度的增加,會使反射波在雙絞線中持續(xù)的時間增長,影響信號的傳輸質量。
電纜的頻率特性和線上反射是決定長線傳輸中信號頻率優(yōu)劣的主要因素,考慮到電纜和UART協(xié)議的特性,理論上RS422的傳輸速率最大為10 Mb/s,與設法提升電纜的性能相比,設計一種適合RS422接口并且不大幅增加現(xiàn)有處理器負擔的通信協(xié)議來達到最大傳輸速率是最為有效的。本文借鑒常見的高速總線編碼方法,開發(fā)了一種適應RS422傳輸?shù)木幋a方法。
3 6B/10B編碼介紹
傳統(tǒng)的8B/10B編碼是將8 bit的數(shù)據(jù)拆分成兩組,分別為3 bit和5 bit,然后再分別將3 bit映射成4 bit,將5 bit映射成6 bit。在進行直流平衡時提出不平衡度的概念,通過記錄前級極性的狀態(tài),匹配相反極性的數(shù)據(jù)編碼來實現(xiàn)直流平衡和最大化信道帶寬利用率,從而使數(shù)據(jù)可靠傳輸。為了達到直流平衡,8B/10B編碼借助總共268個字符以及與之對應的反轉碼來判斷極性,在邏輯上存在很大的開銷。在RS422接口通信中,傳輸速率不高于10 Mb/s并且沒有交流耦合電路,所以不需要嚴格意義上的直流平衡,并且不需要較高的傳輸效率,這就為簡化編碼提供給了可能。
改進型6B/10B編碼為傳統(tǒng)8B/10B編碼的精簡版,在6B/10B編碼中,降低了有效數(shù)據(jù)的傳輸帶寬,將一次性傳輸有效數(shù)據(jù)位數(shù)減小為4 bit,增加了兩位標志位,確定是否是高4 bit還是低4 bit;同時采用線性分組碼向前糾錯方式(FEC)增加了監(jiān)督位,根據(jù)分組原則,增加了4 bit監(jiān)督位,從而通過監(jiān)督公式確定誤碼位置,完成數(shù)據(jù)的糾錯控制。6B/10B編碼需要每次傳輸10 bit,根據(jù)線性分組碼的編碼原理采用4個監(jiān)督位理論上可以產生16種校正子碼組,10 bit數(shù)據(jù)需要10種校正子碼組[3]。經過分析得出10種合適的校正碼子和誤碼位置如表1所示。其中S1、S2、S3、S4表示由監(jiān)督關系方程式計算得到的校正子,A0~A9為誤碼位置,則校正子的值可以由以下公式獲得:
在傳輸中,信息碼元是隨機的,監(jiān)督碼元可以由其監(jiān)督公式得出,監(jiān)督公式如下:
經過以上分析,得出數(shù)據(jù)的具體傳輸格式如表2所示。
具體的編碼規(guī)則為:一個字節(jié)數(shù)據(jù)分兩次傳輸,首次發(fā)送該字節(jié)的低4 bit,其次發(fā)送該字節(jié)的高4 bit。確定4 bit有效數(shù)據(jù)和兩位的標志位(10:數(shù)據(jù)低4 bit;11數(shù)據(jù)的高4 bit)后,可以根據(jù)監(jiān)督公式確定傳輸數(shù)據(jù)10B中的后4 bit。根據(jù)監(jiān)督公式和編碼規(guī)則可以得出64個有效碼組合來用于傳輸數(shù)據(jù),借鑒8B/10B編碼規(guī)則,選用的有效碼組盡量做到連續(xù)“0”或“1”的個數(shù)不達到5個。通過對比,標志位(A9、A8)為“10”和“11”時直流平衡度要好于標志位為“00”和“01”的有效碼組的數(shù)據(jù)??紤]到1位誤碼的冗余,無效冗余碼接收時均當作無效碼處理。因為RS422的傳輸速率不高于10 Mb/s并且沒有交流耦合電路,所以對碼組的直接應用導致的非直流平衡對傳輸?shù)乃俾屎蜏蚀_度無較大影響。采用6B/10B編碼方式與傳統(tǒng)的8B/10B編碼相比,減小了判斷極性的復雜性,簡化了邏輯。采用傳輸4 bit有效數(shù)據(jù)降低了一定的傳輸速率,但是對于RS422中低速傳輸沒有影響[4-6]。
4 編碼算法在RS422通信的實現(xiàn)
根據(jù)已知要求搭建硬件平臺,此平臺完成收據(jù)的收發(fā)功能,并且能夠對數(shù)據(jù)進行處理,傳輸模型如圖2所示。系統(tǒng)中主控芯片采用XC3S400型號的FPGA,外接40 MHz晶振滿足傳輸速率的時鐘要求[7];RS422收發(fā)芯片采用MAX3295和MAX3284,此類芯片接口支持的最大速率可以達到20 Mb/s,滿足設計需求。
FPGA發(fā)送端發(fā)送復位命令,在發(fā)送復位命令的同時自身復位,準備接收數(shù)據(jù)。繼續(xù)發(fā)送字同步、移位脈沖,根據(jù)幀格式在每個移位脈沖的下降沿發(fā)送數(shù)據(jù)[8]。因為采用6B/10B編碼時有效帶寬為4 bit,所以每個字節(jié)的有效數(shù)據(jù)需要傳輸兩次,第一次傳輸數(shù)據(jù)的低4 bit,第二次傳輸數(shù)據(jù)的高4 bit。接收端接收到復位命令后復位,然后根據(jù)字同步信號進行同步處理,最后根據(jù)移位脈沖信號判斷,在移位脈沖的上升沿接收數(shù)據(jù)并計算校正子,對數(shù)據(jù)進行校驗,按照編碼格式進行解碼。當傳輸數(shù)據(jù)有一位數(shù)據(jù)出錯時可以自動糾錯,保證數(shù)據(jù)正確接收。發(fā)送接收流程如圖3所示。
5 數(shù)據(jù)驗證
為了驗證理論的可行性,在已有硬件平臺的基礎上搭建完整的閉環(huán)測試系統(tǒng)。設計RS422收發(fā)板卡并且與CPCI機箱相連[9];搭建了30 m距離的通信電纜進行通信,并且編寫相應的上位機軟件來實現(xiàn)數(shù)據(jù)的實時存儲和分析。發(fā)送端以10 Mb/s向接收端發(fā)送遞增數(shù),遞增數(shù)的內容為00H~FFH,并且增加幀計數(shù)用來判斷是否丟包和增加幀標志易于一幀數(shù)據(jù)的判斷。接收端接收數(shù)據(jù)并對數(shù)據(jù)進行分析和處理,在接收1 GB的數(shù)據(jù)容量內無誤碼。圖4為測試結果部分截圖。重復以上過程,在100次試驗數(shù)據(jù)中,數(shù)據(jù)完整無誤碼,驗證了設計的可行性。
6 結論
本文對制約RS422傳輸距離和速率的因素進行分析,在不改變原有硬件的基礎上,通過分析得出對電纜性能的提升存在技術和工藝上的難點,對信號傳輸方式的改變是簡單易行的。通過借鑒高速傳輸總線的編碼方法,提出了一種適合RS422傳輸?shù)木幋a方式,采用8B/10B改進版的6B/10B編碼方法。該方法去掉了8B/10B中繁瑣的直流平衡匹配,編碼數(shù)量少并且編碼表唯一,在一定程度上達到了數(shù)據(jù)的直流平衡,減小了處理器負擔;增加了向前糾錯的功能,可以自動糾正一位出錯位,使數(shù)據(jù)可靠傳輸;數(shù)據(jù)從6B映射到10B,增加了電平的跳變,能夠使處理器更加快速地識別數(shù)據(jù)信息,從而提高了數(shù)據(jù)的傳輸速率。經過大量實驗驗證,該編碼方法簡單可靠,能夠使數(shù)據(jù)在30 m長的雙絞線電纜上以10 Mb/s的速率長時間傳輸不出現(xiàn)誤碼,在工程中提高了RS422接口數(shù)據(jù)的吞吐率,達到很好的應用效果。因為6B/10B編碼具有直流平衡的特點,同樣適用于中低速的LVDS傳輸,對LVDS傳輸邏輯上的簡化也有借鑒意義。
參考文獻
[1] 胡博,邢廣義,王蕊.RS422/485串行接口數(shù)據(jù)吞吐率提高技術研究[J].工業(yè)控制計算機,2017,30(11):30-31.
[2] 方煒,任勇峰,儲成群,等.低電壓差分信號遠距離通信電纜參數(shù)估計[J].科學技術與工程,2018,18(19):209-212.
[3] 劉佳寧,文豐,王淑琴,等.基于LVDS的高可靠性長線傳輸設計[J].電子器件,2017,40(5):1209-1213.
[4] 趙俊江,張會新.一種高速大容量圖像存儲裝置的關鍵技術研究[J].現(xiàn)代電子技術,2017,40(12):144-147,151.
[5] 邱永成,謝榮清,郭軼.基于雙CPCI總線的地震數(shù)據(jù)采集接口卡設計[J].電子技術應用,2017,43(5):102-105.
[6] 李健,劉歆瀏.目標二次提取法在高幀頻視頻跟蹤器上的應用[J].兵器裝備工程學報,2017,38(6):66-69.
[7] 李夏如,王慧忠,姜周曙,等.模擬發(fā)控裝置RS422通信單元可靠性設計研究[J].測控技術,2018,37(8):107-110,116.
[8] 呂鳴,滕斌.一種飛機機載數(shù)據(jù)中繼管理單元設計與實現(xiàn)[J].電子技術應用,2018,44(6):52-55.
[9] 郭佳欣,單彥虎,任勇峰,等.一種提高RS422/RS485可靠性通信方法的研究[J].科學技術與工程,2017,17(9):206-213.
作者信息:
任勇峰,王小兵,張凱華
(中北大學 儀器科學與動態(tài)測試教育部重點實驗室,山西 太原030051)