文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.180457
中文引用格式: 李北國,楊圣龍,李輝景. 基于FPGA的LVDS高可靠性傳輸優(yōu)化設計[J].電子技術應用,2018,44(8):78-81,85.
英文引用格式: Li Beiguo,Yang Shenglong,Li Huijing. High reliability transmission optimization design of LVDS based on FPGA[J]. Application of Electronic Technique,2018,44(8):78-81,85.
0 引言
LVDS(Low Voltage Differential Signal)信號比傳統(tǒng)TTL接口有很低的電壓擺幅、較高的噪聲容限能力,且功耗僅為幾毫瓦,抗干擾性相對其他總線接口也具有一定優(yōu)越性[1]。但由于其低電壓差分傳輸導致其正常通信距離僅為5 m左右,同時在面對空間復雜的電磁環(huán)境時會導致信號傳輸誤碼,降低傳輸可靠性。本設計通過對傳輸接口增加驅(qū)動器和自適應均衡器,極大地提高了LVDS信號通信距離;同時在鏈路中采用了10B6B的編碼方式,在維持直流平衡的基礎上還可檢測并糾錯1 bit的數(shù)據(jù),一定程度上減小了數(shù)據(jù)傳輸?shù)?a class="innerlink" href="http://ihrv.cn/tags/誤碼率" title="誤碼率" target="_blank">誤碼率,保證了LVDS信號在惡劣環(huán)境中高速遠距離傳輸時的可靠性。
1 硬件電路的優(yōu)化設計
工程應用中采用一般LVDS接口進行數(shù)據(jù)傳輸時,在傳輸距離為5 m時信號已經(jīng)發(fā)生嚴重衰減和畸變[2],無法正常區(qū)分高低電平,從而導致傳輸時產(chǎn)生很高的誤碼率。
在LVDS鏈路傳輸時,誤碼和丟數(shù)產(chǎn)生原因可從以下方面進行分析:
(1)發(fā)送端信號驅(qū)動能力不足,距離較長時信號衰減嚴重;
(2)線路中直流不失衡,導致誤碼產(chǎn)生;
(3)時鐘同步錯誤,接收端解出的時鐘與發(fā)送端嵌入的時鐘不一致,導致數(shù)據(jù)接收錯誤。
通過以上分析,首先在硬件設計方面對LVDS接口電路進行優(yōu)化。在數(shù)據(jù)發(fā)送端,使用SN65LV1023A串化器將FPGA輸出的并行數(shù)據(jù)轉(zhuǎn)化為串行輸出,其次在發(fā)送端增加LMH0001SQ高速驅(qū)動器,增強信號驅(qū)動能力;在接收端則采用LMH0073SQ自適應均衡器,補償信號在遠距離傳輸時出現(xiàn)的衰減,恢復其發(fā)生畸變的信號,最后通過SN65LV1224BDBR解串器,將串行數(shù)據(jù)轉(zhuǎn)化為并行數(shù)據(jù),經(jīng)地面測試臺PCI接口將數(shù)據(jù)送至上位機進行分析和處理。系統(tǒng)總體設計框圖如圖1所示。
1.1 發(fā)送端電路的優(yōu)化設計
在LVDS發(fā)送端,由于串行器SN65LV1023A輸出僅為100 mV左右的低壓差分信號,故需其在差分輸出端增加LMH0001SQ驅(qū)動器來提高驅(qū)動能力。LMH0001SQ高速驅(qū)動器最高傳輸速率可達 540 Mb/s,差分輸入門檻電壓為100 mV,功耗僅為125 mW[3]。輸出端電壓可通過REF引腳外接電阻進行調(diào)節(jié)。本設計使用750 Ω的外接電阻,得到約800 mV的差分電壓輸出,加上直流偏置電壓,使得輸出電壓在1.6 V~2.4 V之間,提高了數(shù)據(jù)遠距離傳輸?shù)尿?qū)動能力。發(fā)送端驅(qū)動器設計如圖2所示。
由于LMH0001SQ差分線輸入電阻需要與串行器SN65LV1023A進行阻抗匹配,因此PCB設計時100 Ω電阻要緊貼引腳;同時輸出端增加了SMDA03LC接口保護芯片,可防止輸出端電路發(fā)生不可逆故障對后級電路造成影響,保證了LVDS接口的安全性以及可靠性。
1.2 接收端電路的優(yōu)化設計
LVDS信號在高速傳輸過程中由于導體的趨膚效應,信號會產(chǎn)生一定損耗,損耗程度與信號頻率的平方根和電纜長度之積成正比[4]。為保證信號傳輸可靠性,需要在接收端補償信號[5]。LMH0074SQ均衡器是針對78 Mb/s~540 Mb/s的傳輸速率,能夠自適應補償400 m belden 1694A 和第5類非屏蔽雙絞線傳輸?shù)膿p耗,該均衡器抖動性極低,功耗僅為208 mW。
接收端均衡器設計如圖3所示。使用時在LMH0074均衡器AEC+和AEC-引腳之間跨接一個1 μF的電容,用來控制均衡環(huán)路的增益和帶寬[6]。由于輸出端具有50 Ω的差分輸出,為防止信號發(fā)生振鈴或反射,可在差分線間匹配精度為1%的100 Ω電阻,布線時應盡量靠近解串器。均衡器最大程度地還原了衰減和畸變信號,提高了線纜傳輸質(zhì)量,減少了誤碼和丟數(shù)現(xiàn)象。
2 10B6B編碼邏輯設計
為進一步提高LVDS數(shù)據(jù)傳輸?shù)目煽啃?,基于?,4)線性分組碼的編碼思想,在傳統(tǒng)的10B8B編碼基礎上改進并設計了一種10B6B編碼方式,在允許降低傳輸有效帶寬的情況下,設計4 bit監(jiān)督位來糾錯4 bit信息位,極大地降低了LVDS數(shù)據(jù)傳輸?shù)恼`碼率,很好地改善了直流平衡的狀況。
2.1 10B6B編碼原理
根據(jù)線性分組碼的編碼原理,(n,k)分組碼要求2r-1≥n(r=n-k),才能用r個監(jiān)督位構造r個監(jiān)督關系式來指示一位誤碼的n種可能位置,進而實現(xiàn)差錯控制。因為LVDS數(shù)據(jù)每次傳輸10 bit數(shù)據(jù),所以至少需要4 bit監(jiān)督位,因此該編碼方式核心是用4 bit監(jiān)督位構造4個監(jiān)督關系式用來指示誤碼的10種位置。這4 bit監(jiān)督位產(chǎn)生的4個監(jiān)督關系式理論上可以產(chǎn)生16種校正子碼組,根據(jù)實際需要選擇合適的校正子碼組來生成更適合傳輸?shù)拇a型。
2.2 10B6B發(fā)送端邏輯設計
改進后的10B6B編碼設定的校正子與誤碼位置關系如表1所示,其中S1、S2、S3、S4表示由監(jiān)督關系方程式計算得到的校正子。由表1可知,當誤碼位置在a6、a8、a0、a2、a3時,校正子S1=1;否則S1=0。因此有:
編碼時取a9、a8、a7、a6、a5、a4為信息碼元,取a3、a2、a1、a0為監(jiān)督碼元,信息碼元隨機,而監(jiān)督碼元由以下監(jiān)督方程唯一確定:
由上述方程式可得到表2所示的64個許用碼組。
LVDS數(shù)據(jù)傳輸交替?zhèn)鬏斢行?shù)據(jù)和無效數(shù)據(jù)。有效數(shù)據(jù)每個字節(jié)需傳輸兩次,第一次傳輸?shù)? bit,第二次傳輸高4 bit,由LVDS最高兩位a9、a8作為高低位標識。0000011111作為無效數(shù)據(jù)在數(shù)據(jù)線空閑時發(fā)送,用來鎖定發(fā)送時鐘。LVDS數(shù)據(jù)位具體定義如表3所示。
線上空閑時發(fā)送無效數(shù)據(jù)為0000011111,且編碼時要考慮1 bit誤碼的無效碼冗余,即表4所示的無效冗余碼接收時均當做無效碼處理。由于0100011111與表2中許用碼組沖突,因此在編碼時不用01這個碼組。
2.3 10B6B接收端解碼設計
當接收端收到數(shù)據(jù)時,首先根據(jù)校正子方程式計算出校正子,根據(jù)表1即可對應出數(shù)據(jù)誤碼位置,對該位置進行編碼生成糾錯碼,如表5所示。要注意的是當數(shù)據(jù)接收為表4中數(shù)據(jù)時,此時全部認為無效碼,不予進行校正計算。生成糾錯碼后與接收的原始LVDS數(shù)據(jù)進行異或運算,即可糾正傳輸數(shù)據(jù)過程中的一位誤碼。
本系統(tǒng)還可對誤碼數(shù)據(jù)量進行統(tǒng)計,當糾錯碼為0000000011時,說明出現(xiàn)兩位或以上的錯位,此時字節(jié)錯誤統(tǒng)計自增1;當糾錯碼為不為0000000000時,說明數(shù)據(jù)出現(xiàn)一位錯誤,此時數(shù)據(jù)位錯誤統(tǒng)計自增1,方便對誤碼量進行數(shù)據(jù)統(tǒng)計。
3 時鐘同步邏輯設計
數(shù)據(jù)發(fā)送前,收發(fā)兩端都需要對時鐘進行同步鎖定。初始化時串化器SN65LV1023A和解串器SN65LV1224B均為三態(tài)輸出,當芯片供電電壓穩(wěn)定到2.45 V時,解串器啟動鎖相環(huán)跟蹤并鎖定本地時鐘,完成數(shù)據(jù)串行器和數(shù)據(jù)解串器的同步[7]。
本設計同步模式式采用隨機同步和快速同步相結(jié)合的方式,設備上電后,串化器SN65LV1023A鎖定發(fā)送時鐘TCLK,F(xiàn)PGA將其SYNC1和SYNC2引腳電平拉低,此時串化器向接收端發(fā)送同步碼,當解串器檢測到LVDS輸入端的邊沿轉(zhuǎn)換時,它就會根據(jù)FPGA提供的REFCLK參考時鐘嘗試鎖定到嵌入在數(shù)據(jù)流中的時鐘信息[8]。由于串化器SYNC引腳與解串器的LOCK為開環(huán)狀態(tài),因此不能準確判斷同步時間,所以設置在25 μs的等待時間后,解串器與串行器完成同步,將解出的RCLK時鐘送給FPGA后,LOCK引腳自動拉低,即可開始數(shù)據(jù)傳輸。
在進行數(shù)據(jù)發(fā)送時,當某個字節(jié)數(shù)據(jù)重復發(fā)送時,則解串器可能進入誤鎖定狀態(tài),錯誤地將數(shù)據(jù)上升沿識別為開始/停止位,這種現(xiàn)象稱為重復多重轉(zhuǎn)換(RMT)[9]。解串器中的電路檢測到這種假鎖狀態(tài)時,電路就會阻止LOCK引腳輸出有效,直到這種假鎖狀態(tài)發(fā)生改變。當解串器檢測到4個連續(xù)周期的上升沿(停止/啟動位)在同一位置時,解串器將重新鎖定時鐘,否則仍為失鎖狀態(tài)。
本設計數(shù)據(jù)傳輸采用有效數(shù)和無效數(shù)混合發(fā)送的方式,既可以保證LVDS線路時刻都有數(shù)據(jù)持續(xù)傳送,不會因為由于有效數(shù)據(jù)發(fā)送不連續(xù)而造成失鎖,也可減少由于內(nèi)嵌時鐘位鎖定錯誤所造成的丟數(shù)的情況。同時設置最高兩位為標識位,當最高位為“10”和“11”時為有效數(shù)據(jù)的低4位和高4位,否則為無效數(shù)。這種高位固定值的傳輸方式由于每次在12 bit后有固定周期的跳變,極大程度地降低了嵌入時鐘位誤鎖定的可能。
4 數(shù)據(jù)可靠性驗證
對硬件優(yōu)化效果進行測試,在沒有增加驅(qū)動器和均衡器雙絞線長度為3.5 m時,數(shù)據(jù)接收正常;當線纜長度增加時,誤碼率也隨之上升,當測試傳輸電纜網(wǎng)長度增加為48 m時,誤碼率已高達64.830 245%,已完全不能保證數(shù)據(jù)的可靠傳輸。
在增加驅(qū)動器和均衡器硬件優(yōu)化后,采用6段8 m的屏蔽雙絞線組成48 m的電纜網(wǎng)進行測試,修改采編器程序中LVDS數(shù)據(jù)發(fā)送時鐘,使實際傳輸速率為100 Mb/s、200 Mb/s、300 Mb/s、400 Mb/s時,分別對采用10B6B編碼方式前后進行誤碼測試,結(jié)果如表6所示。
分析測試結(jié)果可知:當傳輸速率低于100 Mb/s時,硬件電路能保證傳輸?shù)目煽啃?;當傳輸速率大?00 Mb/s時,誤碼率隨著速率的增大而增加。在邏輯設計上加入10B6B編碼后,在允許降低傳輸有效帶寬的情況下,傳輸速率為400 Mb/s時可保證遠程LVDS數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
5 結(jié)束語
針對LVDS傳輸過程中的可靠性問題,從硬件和邏輯編碼方式兩方面進行了優(yōu)化,設計的10B6B編碼可對數(shù)據(jù)中存在1 bit誤碼數(shù)據(jù)進行檢測糾錯,保障了數(shù)據(jù)的可靠性。在測試“遞增數(shù)”、“遞增數(shù)”、“全0數(shù)”、“全1數(shù)”4種碼型數(shù)據(jù)時,可實現(xiàn)400 Mb/s速率下48 m的零誤碼遠距離可靠傳輸,此設計系統(tǒng)已成功應用于航天飛行器中。
參考文獻
[1] 李輝景,王淑琴,任勇峰,等.基于CRC校驗的高速長線LVDS傳輸設計[J].電子器件,2015(6):1346-1351.
[2] 李治華,趙冬青,甄國涌,等.高可靠性遠程數(shù)據(jù)傳輸系統(tǒng)設計[J].電子器件,2017,40(2):490-494.
[3] 鄢玲玲,文豐,李輝景.一種基于LVDS高速傳輸?shù)慕涌趦?yōu)化設計[J].電測與儀表,2016,53(20):80-83.
[4] 宋丹.某多通道采編存儲器的研制[D].太原:中北大學,2014.
[5] 王紅旭.高速數(shù)字電路設計技術的應用研究[D].西安:西安電子科技大學,2006.
[6] 吳聰達.高速數(shù)字設計中的信號完整性研究[D].西安:西安電子科技大學,2005.
[7] 郭柳柳,甄國涌,劉東海.基于LVDS傳輸電纜均衡器的可靠性分析[J].電子技術應用,2014,40(10):40-42.
[8] 易敏,蘇淑靖.基于LVDS的高可靠性數(shù)據(jù)傳輸設計[J].微電子學與計算機,2014,31(9):131-134.
[9] 范丹,何永強,方晉賢.高速LVDS接口電路設計[J].儀表技術,2010(4):7-12.
作者信息:
李北國1,楊圣龍2,李輝景2
(1.北京航天長征飛行器研究所,北京100076;
2.中北大學 儀器科學與動態(tài)測試教育部重點實驗室,山西 太原030051)