文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.180457
中文引用格式: 李北國(guó),楊圣龍,李輝景. 基于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://theprogrammingfactory.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] 李治華,趙冬青,甄國(guó)涌,等.高可靠性遠(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] 郭柳柳,甄國(guó)涌,劉東海.基于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.
作者信息:
李北國(guó)1,楊圣龍2,李輝景2
(1.北京航天長(zhǎng)征飛行器研究所,北京100076;
2.中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051)