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