基于FPGA的高速通信系統(tǒng)研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
遠(yuǎn)程通信系統(tǒng)和遠(yuǎn)程監(jiān)控系統(tǒng)對(duì)信號(hào)傳輸有兩方面的要求:一方面要求接口靈活且有較高的數(shù)據(jù)傳輸帶寬;另一方面要求系統(tǒng)的傳輸距離遠(yuǎn)。傳統(tǒng)接口如UART,USB,以太網(wǎng)等在傳輸帶寬和傳輸距離上均無法滿足要求。
低壓差分信號(hào)(LVDS)是一種低擺幅的差分信號(hào)技術(shù)。LVDS的恒流源模式及低擺幅輸出使傳輸速度可以從數(shù)百M(fèi)b/s到2 Gb/s以上。差分傳輸方式使LVDS信號(hào)對(duì)共模輸入噪聲有更強(qiáng)的抵抗能力。LVDS技術(shù)功耗低,100Ω的負(fù)載電阻功耗僅有1.2 mW。這些特點(diǎn)使得LVDS技術(shù)廣泛應(yīng)用在許多要求高速度與低功耗的領(lǐng)域。
隨著半導(dǎo)體工藝進(jìn)步,現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)的性能和集成度在不斷提高,同時(shí)成本在下降。FPGA片內(nèi)資源豐富且靈活性強(qiáng)。通過配置邏輯資源和I/O,可以生成支持各種標(biāo)準(zhǔn)的接口,適合完成接口間的通信工作。FPGA的可重構(gòu)性使相同的硬件環(huán)境可以實(shí)現(xiàn)不同的功能,節(jié)約了系統(tǒng)升級(jí)和更改的成本。
1 系統(tǒng)構(gòu)成及原理
高速數(shù)據(jù)傳輸系統(tǒng)的原理框圖如圖1所示。整個(gè)系統(tǒng)由發(fā)送板、接收板和傳輸線三部分組成。
發(fā)送板主要由接口電路、FPGA和電纜驅(qū)動(dòng)電路組成,完成的功能是將輸入的各種信號(hào)轉(zhuǎn)換為串行數(shù)據(jù)幀通過傳輸鏈路進(jìn)行傳輸。接收板主要由接收均衡電路、時(shí)鐘恢復(fù)電路、FPGA和接口電路組成,實(shí)現(xiàn)將串行數(shù)據(jù)幀接收并恢復(fù)成原始信號(hào)的功能。傳輸線選用同軸電纜。與雙絞線相比同軸電纜的抗干擾能力強(qiáng)、傳輸距離遠(yuǎn),與光纜相比同軸電纜的成本低。同軸電纜適合本系統(tǒng)這種傳輸速率低于200 Mb/s,傳輸距離小于300 m的應(yīng)用場(chǎng)合。
系統(tǒng)的輸入信號(hào)包括串口信號(hào)、網(wǎng)絡(luò)信號(hào)和并行視頻信號(hào)等。分別選用MAX232,RTL8201,SN74LVC4245等芯片組成接口電路,將輸入信號(hào)轉(zhuǎn)換為FPGA支持的LVTTL/LVCMOS電平信號(hào),起到保護(hù)器件和增加信號(hào)驅(qū)動(dòng)能力的作用。
接收板FPGA首先完成系統(tǒng)輸入信號(hào)的接收工作,再將異步時(shí)鐘域的信號(hào)轉(zhuǎn)換到統(tǒng)一的系統(tǒng)時(shí)鐘下,接下來將信號(hào)并串轉(zhuǎn)換并添加起始位、停止位和校驗(yàn)位組成特定的幀格式,然后對(duì)其進(jìn)行8 B/10 B編碼,最后通過差分I/O以LVDS電平輸出。接收板FPGA接收到串行信號(hào)后將信號(hào)解碼、解幀,抽取出原始數(shù)據(jù)進(jìn)行恢復(fù),最后通過相應(yīng)的I/O將恢復(fù)后的信號(hào)輸出給各接口。
從FPGA直接輸出的LVDS信號(hào)在100 Mb/s傳輸速率下傳輸距離不足10 m,需要使用電纜驅(qū)動(dòng)電路增加LVDS信號(hào)的驅(qū)動(dòng)能力,同時(shí)使用接收均衡電路補(bǔ)償通過電纜傳輸后衰減的信號(hào),達(dá)到加強(qiáng)系統(tǒng)長距離傳送能力的目的。
如果使用1根同軸電纜傳輸時(shí)鐘,其余傳輸數(shù)據(jù),會(huì)因?yàn)闊o法保證這些電纜嚴(yán)格等長導(dǎo)致接收數(shù)據(jù)的建立時(shí)間和保持時(shí)間無法滿足后級(jí)電路的要求。另一方面,經(jīng)過傳輸后時(shí)鐘信號(hào)的Jitter會(huì)增加,使FPGA內(nèi)部的PLL無法鎖定時(shí)鐘。本系統(tǒng)電纜上傳輸?shù)亩际菙?shù)據(jù)信號(hào),接收端同步時(shí)鐘通過時(shí)鐘恢復(fù)電路從串行數(shù)據(jù)中還原。
2 系統(tǒng)的硬件設(shè)計(jì)
2.1 FPGA部分電路設(shè)計(jì)
系統(tǒng)選用Xilinx公司Spartan3系列的FPGA:S3C500E。它有10 476個(gè)邏輯單元,232個(gè)I/O,4個(gè)時(shí)鐘管理模塊(DCM),存儲(chǔ)器包括360 Kb的塊RAM和73 Kb的離散RAM。所有I/O可以組成92組LVDS差分對(duì),最高輸入輸出速率高到622 Mb/s,所以系統(tǒng)不需要額外的電路實(shí)現(xiàn)LVDS接口。DCM模塊可以將輸入時(shí)鐘靈活的倍頻或降頻,最高工作頻率達(dá)到311 MHz。以上參數(shù)和性能不僅滿足當(dāng)前的設(shè)計(jì)需求,而且為系統(tǒng)的升級(jí)保留了充足的設(shè)計(jì)余量。FPGA外圍電路包括時(shí)鐘部分和配置部分。時(shí)鐘使用電路板上的晶振提供,通過GCLK腳與FPGA相連。GCLK是專用時(shí)鐘引腳,這個(gè)腳的驅(qū)動(dòng)能力強(qiáng),到所有邏輯單元的延時(shí)基本相同。配置電路采用主動(dòng)SPI模式。相比其他模式,主動(dòng)SPI模式的外圍電路簡單、體積小、成本低。而且SPI FLASH的容量大,除了存儲(chǔ)配置文件,還可以存儲(chǔ)其他用戶數(shù)據(jù)。S3C500E的配置文件大小為2 Mb,本系統(tǒng)采用存儲(chǔ)量為16 Mb的M25P16作為配置存儲(chǔ)器。
2.2 傳輸部分電路設(shè)計(jì)
傳輸部分設(shè)計(jì)包括選擇同軸電纜和設(shè)計(jì)相應(yīng)的發(fā)送接收電路。本系統(tǒng)選用的同軸電纜型號(hào)為SVY-50-3,成本低、性能好。這款電纜的特征阻抗為50 Ω,速率150 MHz時(shí)信號(hào)傳輸100 m的最大衰減為18.01 dB。它具有良好的屏蔽特性,可以在復(fù)雜的電磁環(huán)境中正常工作。電纜驅(qū)動(dòng)電路和接收均衡電路分別選用National Semiconductor公司的芯片CLC005和CLC012。CLC005支持LVDS電平輸入,最高傳輸速率達(dá)到622 Mb/s,輸出信號(hào)峰一峰值從O.7~2 V。CLC012可以自動(dòng)均衡頻率在50~650 MHz的信號(hào)。時(shí)鐘恢復(fù)器件選用CLC016,它的輸入信號(hào)來自CLC-012,輸出時(shí)鐘和數(shù)據(jù)接FPGA,恢復(fù)的時(shí)鐘在數(shù)據(jù)上升沿有效。CLC005和CLC012用于特征阻抗為75 Ω的傳輸系統(tǒng),針對(duì)本系50 Ω特征阻抗的同軸電纜,需要改動(dòng)外圍電阻配置,否則會(huì)因?yàn)樽杩共黄ヅ湟鹦盘?hào)反射,最終導(dǎo)致信號(hào)傳輸質(zhì)量下降。相應(yīng)的配置方式如圖2所示。
通過測(cè)試,此組傳輸器件可以驅(qū)動(dòng)LVDS信號(hào)通過SVY-50-3型號(hào)電纜傳輸至少200 m。信號(hào)經(jīng)過傳輸后,在電纜末端衰減嚴(yán)重,噪聲和抖動(dòng)也較嚴(yán)重。此時(shí)信號(hào)眼圖如圖3所示,可以看出信號(hào)質(zhì)量差。直接接收此信號(hào),會(huì)產(chǎn)生信號(hào)電平誤判,而且信號(hào)的抖動(dòng)將導(dǎo)致后級(jí)電路無法正常工作。接收均衡器CLC012自動(dòng)為信號(hào)損耗提供補(bǔ)償后,信號(hào)上的噪聲和抖動(dòng)均得到了改善,信號(hào)的眼圖如圖4所示。
LVDS驅(qū)動(dòng)器由恒流源構(gòu)成,因此需要做終端匹配。通常情況下在輸入端并聯(lián)100 Ω電阻從而滿足互聯(lián)系統(tǒng)要求的差分阻抗。在強(qiáng)噪聲環(huán)境下,交流耦合連接時(shí)可以采用戴維南終端匹配方式提供1.2 V的偏置電壓,同時(shí)滿足100 Ω差分阻抗的設(shè)計(jì)要求。具體方法是將LVDS的+/-端通過130 Ω電阻上拉至VCC,同時(shí)下拉82 Ω電阻到地,如圖5所示,電阻精度要求在1%。
2.3 電路PCB設(shè)計(jì)
在PCB設(shè)計(jì)過程中,要注意電路板的布局。模擬電路和數(shù)字電路需要分開,使用單點(diǎn)接地的方式相連。將邊沿速率變化快的VTTL/LVCMOS信號(hào)與LVDS信號(hào)布在不同信號(hào)層上,并用電源和底層隔開,減小耦合到LVDS線路上的串?dāng)_。LVDS走線要遵循以下規(guī)則:
(1)差分對(duì)兩根信號(hào)從芯片扇出后就盡量靠近(緊耦合),這樣有助于消除反射,確保耦合的噪聲是共模形式。
(2)對(duì)內(nèi)信號(hào)的布線長度要保持一致,以減小信號(hào)延時(shí),長度匹配控制在10 mil以內(nèi)。
(3)對(duì)內(nèi)信號(hào)保持固定的線間距,避免因?yàn)榫€間距變化導(dǎo)致差分阻抗不連續(xù)。
(4)差分對(duì)間盡量遠(yuǎn)離,減少線間串?dāng)_,必要時(shí)在差分對(duì)間放置隔離用的接地過孔。
(5)盡量減少差分信號(hào)線上過孔的個(gè)數(shù),避免走90°拐角,使用圓弧或者45°折線代替。
(6)LVDS信號(hào)不能跨平面分割,否則會(huì)因?yàn)槿鄙賲⒖计矫娑鴮?dǎo)致阻抗不連續(xù),要給LVDS信號(hào)設(shè)置完整的參考平面。
(7)匹配電阻盡可能靠近接收端。
3 系統(tǒng)的邏輯設(shè)計(jì)
3.1 時(shí)鐘部分設(shè)計(jì)
時(shí)鐘信號(hào)由電路板上40 MHz晶振提供。通過數(shù)字時(shí)鐘管理單元DCM鐘倍頻得到120 MHz的系統(tǒng)的工作時(shí)鐘。使用DCM模塊時(shí),注意DCM的輸入和輸出需要通過BUFG單元與全局時(shí)鐘資源相連。全局時(shí)鐘資源使用全銅層工藝實(shí)現(xiàn),并設(shè)計(jì)了專用時(shí)鐘緩沖與驅(qū)動(dòng)結(jié)構(gòu),使全局時(shí)鐘到達(dá)芯片內(nèi)部所有邏輯單元的時(shí)延和抖動(dòng)都為最小。DCM在時(shí)鐘鎖定后使能LOCK信號(hào),表示時(shí)鐘倍頻工作完成,使用這個(gè)信號(hào)作為FPGA內(nèi)部其他邏輯的復(fù)位。
3.2 異步時(shí)鐘域變換
系統(tǒng)輸入信號(hào)工作在不同的異步時(shí)鐘域,需要在FPGA內(nèi)部將信號(hào)變換到同一個(gè)時(shí)鐘域。
串口信號(hào)速度低,可以使用系統(tǒng)時(shí)鐘高速采集的方式。根據(jù)奈奎斯特抽樣定律,抽樣頻率大于2倍信號(hào)最高頻率,就可以從抽樣信號(hào)中無失真地恢復(fù)原信號(hào)。本系統(tǒng)使用高于5倍串口波特率的時(shí)鐘去采集串口數(shù)據(jù)。經(jīng)過誤碼儀的大量測(cè)試,串口數(shù)據(jù)能夠被正確接收和恢復(fù)。
視頻信號(hào)是并行信號(hào),采用高速采集的方法會(huì)增加數(shù)據(jù)量,不適合本系統(tǒng)。本系統(tǒng)采用雙口FIFO完成異步時(shí)鐘域轉(zhuǎn)換。S3C500E片內(nèi)的Block RAM資源可以靈活的生成雙口FIFO,與普通邏輯單元生成的雙口FIFO相比,它的穩(wěn)定性高,最高讀寫速度快,產(chǎn)生亞穩(wěn)定狀態(tài)的概率小。雙口FIFO的輸入端連接系統(tǒng)輸入信號(hào)的時(shí)鐘和數(shù)據(jù);在輸出端連接系統(tǒng)時(shí)鐘數(shù)據(jù)。雙口FIFO的讀取時(shí)鐘速度必須高于寫入速度,以避免FIFO存滿后溢出導(dǎo)致有效數(shù)據(jù)丟失。另一方面,慢時(shí)鐘域向快時(shí)鐘域轉(zhuǎn)換的時(shí)候,F(xiàn)IFO會(huì)出現(xiàn)讀取空的狀態(tài),此時(shí)將取出無效數(shù)據(jù)(這些數(shù)據(jù)是FIFO中最后一個(gè)數(shù)據(jù)的重復(fù))。無效數(shù)據(jù)通過串行數(shù)據(jù)幀傳輸?shù)浇邮斩?,?huì)導(dǎo)致恢復(fù)后輸出信號(hào)出現(xiàn)誤碼。所以系統(tǒng)將FIFO的空標(biāo)志empty信號(hào)添加到數(shù)據(jù)幀,用于識(shí)別無效數(shù)據(jù)。
3.3 數(shù)據(jù)組幀及編碼
同步傳輸需要將原始數(shù)據(jù)組成數(shù)據(jù)幀再進(jìn)行發(fā)送,即在數(shù)據(jù)間添加起始位、停止位和校驗(yàn)位。數(shù)據(jù)幀的起始位過長會(huì)影響傳輸效率,過短會(huì)增加接收端識(shí)別的難度。本系統(tǒng)選用80 b為一幀,起始位為8 b,停止位為2 b,奇校驗(yàn)位為1 b。接收端邏輯通過對(duì)多個(gè)數(shù)據(jù)幀分析后,定位數(shù)據(jù)幀的起始位。由于每幀數(shù)據(jù)長度固定,所以找到某一幀的起始位后可以周期性的計(jì)算出接下來各幀的起始位置,不再需要反復(fù)做識(shí)別工作。
數(shù)據(jù)組幀后信號(hào)的平均位速率可能低于CLC012的最低工作頻率,不能直接用于傳輸,還需要對(duì)其進(jìn)行8B/10B編碼。8B/10B技術(shù)是將8個(gè)數(shù)據(jù)位經(jīng)過某種映射的機(jī)制轉(zhuǎn)化為10個(gè)數(shù)據(jù)位的字碼,可使發(fā)送的“O”、“1”數(shù)量保持一致,連續(xù)的“1”或“0”基本不超過5位。8 B/10 B編碼技術(shù)保證了傳輸?shù)腄C平衡,增加了信息傳輸?shù)目煽啃?。系統(tǒng)使用Xilinx公司提供的8 B/10 B編碼和解碼IP核,減少了系統(tǒng)的開發(fā)周期,增加了系統(tǒng)的穩(wěn)定性。8 B/10 B編碼及解碼IP的模塊原理圖如圖6和圖7所示。
4 結(jié)語
介紹了一種基于FPGA的高速通信系統(tǒng),通過電纜驅(qū)動(dòng)器和接收均衡器,拓展了LVDS信號(hào)的傳輸距離。經(jīng)過測(cè)試,使用同軸電纜的傳輸距離達(dá)到200 m,單個(gè)通道傳輸速率達(dá)到120 Mb/s。FPGA的可重構(gòu)性使系統(tǒng)靈活多變,可以適應(yīng)不同的應(yīng)用需求。