專(zhuān)利名稱(chēng):基于fpga的lvds接口電路和數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字電路領(lǐng)域,具體涉及一種基于FPGA的LVDS接口電路和數(shù)據(jù)傳輸 方法。
背景技術(shù):
LVDS (低電壓差分信號(hào)傳輸)是一種串并/并串轉(zhuǎn)換接口,用于芯片之間的數(shù)據(jù)傳 輸。在發(fā)送端,多路并行的數(shù)據(jù)合并成一路被發(fā)送,而在接收端,將一路數(shù)據(jù)轉(zhuǎn)換成多路接 收。在現(xiàn)有技術(shù)中,由于高速串行數(shù)據(jù)流、被發(fā)送數(shù)據(jù)的偏斜以及鏈路所增加的偏斜,接收 機(jī)很難建立正確的接收字邊界并對(duì)數(shù)據(jù)進(jìn)行重新排列。通常的方法是,LVDS接口電路必須在數(shù)據(jù)流中插入公共字,并按照8B/10B進(jìn)行編 碼。8B/10B也叫做8字節(jié)/10字節(jié)或8B10B。具體地,8B/10B編碼是將一組連續(xù)的8比特 數(shù)據(jù)分解成兩組數(shù)據(jù),一組3比特,一組5比特,經(jīng)過(guò)編碼后分別成為一組4比特的代碼和 一組6比特的代碼,從而組成一組10比特的數(shù)據(jù)發(fā)送出去。相反,解碼是將1組10比特的 輸入數(shù)據(jù)經(jīng)過(guò)變換得到8個(gè)數(shù)據(jù)比特。數(shù)據(jù)值可以統(tǒng)一的表示為DX. Y或KX. Y,其中D表示 為數(shù)據(jù)代碼,K表示為特殊的命令代碼,X表示輸入的原始數(shù)據(jù)的低5位EDCBA,Y表示輸入 的原始數(shù)據(jù)的高3位HGF。8B/10B編碼的特性之一是保證DC平衡。采用8B/10B編碼方式,可使得發(fā)送的 “0,,、“ 1,,數(shù)量保持基本一致,連續(xù)的“ 1 ”或“0,,不超過(guò)5比特,即每5個(gè)連續(xù)的“ 1 ”或“0,, 后必須插入一比特的“0”或“ 1 ”,從而保證信號(hào)DC平衡,就是說(shuō),在鏈路超時(shí)的情況下不致 發(fā)生DC失調(diào)。通過(guò)8B/10B編碼,可以保證傳輸?shù)臄?shù)據(jù)串在接收端能夠被正確復(fù)原。除此 之外,利用一些特殊的代碼(例如在PCI-Express總線中為K碼),可以幫助接收端進(jìn)行還 原工作,并且可以在早期發(fā)現(xiàn)數(shù)據(jù)位的傳輸錯(cuò)誤,抑制錯(cuò)誤繼續(xù)發(fā)生。接收機(jī)檢查公共字,控制專(zhuān)用數(shù)據(jù)重排列電路,以獲取重新排列的數(shù)據(jù)。在8B/10B 方案中,數(shù)據(jù)傳輸?shù)男市∮?0%。此外,公共字之間的間隔會(huì)影響接收機(jī)的效率和訓(xùn)練時(shí)間。如果間隔較短,接收機(jī) 能夠在特定時(shí)間內(nèi)檢查更多的公共字,并快速完成訓(xùn)練過(guò)程。但是,數(shù)據(jù)流中的公共字過(guò)多 會(huì)使效率變低。如果間隔較長(zhǎng),則效率會(huì)較高,但訓(xùn)練時(shí)間又會(huì)較長(zhǎng)。圖1是示出了現(xiàn)有技術(shù)中的一種LVDS接口電路的框圖,用于將并行數(shù)據(jù)轉(zhuǎn)變?yōu)?串行數(shù)據(jù)。如圖1所示,LVDS接口電路10包括DPRAM 110、公共字插入器120、字節(jié)組合器 130、8B/10B 編碼器 140、第一 PLL 150、第二 PLL 160 和 LVDS-TX 接口 170。圖 2 是示出了 圖1中的LVDS接口電路的信號(hào)時(shí)序圖,其描述了 LVDS接口電路10中各處信號(hào)的時(shí)序。下 面結(jié)合附圖1來(lái)描述傳統(tǒng)的LVDS接口電路。假設(shè)需要傳輸?shù)臄?shù)據(jù)是頻率為30. 72MHz的16比特?cái)?shù)據(jù),如圖1所示,ifft_ dataout[15:0]是頻率為30. 72MHz的15比特?cái)?shù)據(jù),write_en是寫(xiě)使能信號(hào),write elk是 寫(xiě)時(shí)鐘信號(hào),DPRAM是雙口 RAM,用于數(shù)據(jù)的緩存。在傳統(tǒng)方案中,由于需要在數(shù)據(jù)中插入特 殊的字符,也就是K字,并且K字的插入是有規(guī)律性的,可以控制讀DPRAM的使能信號(hào)readen,這樣得到了從DPRAM讀取的數(shù)據(jù)q_out [150],由于要保證DPRAM讀寫(xiě)在一定時(shí)間內(nèi)讀 取的數(shù)據(jù)是一樣的,并且由于需要插入K字(或者是讀使能的特性),假設(shè)插入K字的間隔 是M,這樣讀寫(xiě)時(shí)鐘的關(guān)系是read elk = (M+l)/M*write elk,其中add_k是指示加入K字 的位置,這樣得到了頻率為30. 72MHZ的ant_i_data[15:0]數(shù)據(jù)。通過(guò)字節(jié)組合器130,得 到頻率為61. 44MHz的8比特?cái)?shù)據(jù)ant丄data_t [70]。commen_en指示K字的位置,以便 8B/10B完成數(shù)據(jù)的編碼,得到10比特?cái)?shù)據(jù)ant_i_data_tt[9:0]。最后,通過(guò)LVDS-TX接口 170發(fā)送。在這里,通過(guò)以下兩組示例參數(shù)來(lái)對(duì)比傳輸效率和訓(xùn)練時(shí)間。第一組參數(shù)公共字之間的間隔為60且線路速率為633. 6Mbps。此時(shí),由于假設(shè)插入K字的間隔是60,也就是每59個(gè)數(shù)據(jù)插入一個(gè)K字(和數(shù)據(jù) 位寬沒(méi)有關(guān)系),這樣通道效率(用于傳輸有效數(shù)據(jù)量)是59/60;由于插入K字后的數(shù)據(jù) 需要8B/10B編碼,所以會(huì)消耗20%的信道資源,那么用于傳輸有效數(shù)據(jù)的效率是80%,也 就是0.8 ;這樣考慮到K字、8B/10B編碼,總的效率是1x0. 8x(59/60) ^ 80%o上述過(guò)程是將8比特的數(shù)據(jù)插入K字,然后進(jìn)行8B/10B編碼得到10比特的 數(shù)據(jù),最后經(jīng)過(guò)并串轉(zhuǎn)換,以高速的串行數(shù)據(jù)發(fā)送。假設(shè)插入K字間隔是60,這樣在 8B/10B編碼后,并行的10比特?cái)?shù)據(jù),每隔59個(gè)數(shù)據(jù)會(huì)有一個(gè)10比特的K字,在并串轉(zhuǎn) 換后,在10比特X60 = 600比特的串行數(shù)據(jù)中,必然含有一個(gè)K字,由于串行數(shù)據(jù)是 633. 6Mbps,所以每隔10x60x (1/633. 6Mbps)的時(shí)間必定含有一個(gè)K字,由于在接收端,當(dāng)在 10x60x (1/633. 6Mbps)的時(shí)間間隔內(nèi),如果沒(méi)有檢測(cè)到K字,需要平移一次采樣窗口。又因 為并行的數(shù)據(jù)是10比特,所以采樣窗口最多平移10次,在接收端必定可以采樣到K字,完 成該過(guò)程。因此,需要消耗的訓(xùn)練時(shí)間最大是:10xl0x60x (1/633. 6Mbps) = 9.4ns。第二組參數(shù)公共字之間的間隔為10且線路速率為633. 6Mbps。此時(shí),按照上文所述的計(jì)算過(guò)程可以得出,傳輸效率為1x0. 8x(9/10) ^ 72%。相 應(yīng)地,訓(xùn)練時(shí)間為 ΙΟχΙΟχΙΟχ(1/633. 6Mbps) = 1.57ns。從以上分析可以看出,難以在效率和訓(xùn)練時(shí)間之間保持平衡?,F(xiàn)有技術(shù)中存在的另一個(gè)問(wèn)題是,時(shí)鐘的設(shè)計(jì)方案十分復(fù)雜。參見(jiàn)圖1,由于發(fā)送 至LVDS-TX接口 170的數(shù)據(jù)是10比特,所以訓(xùn)練時(shí)間小于10個(gè)公共字間隔。此外,該方案 中采用了兩個(gè)鎖相環(huán)(PLL)電路。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于FPGA的LVDS接口電路數(shù)據(jù)傳輸方法,該電路和方 法能夠高效和穩(wěn)定地接收高速數(shù)據(jù),并減小訓(xùn)練時(shí)間和簡(jiǎn)化時(shí)鐘的設(shè)計(jì)方案。本發(fā)明的一個(gè)方面提供了一種基于FPGA的低電壓差分信號(hào)傳輸接口電路,包括 字節(jié)組合器,用于將輸入的多路低速并行數(shù)據(jù)轉(zhuǎn)換成一路高速并行數(shù)據(jù)作為輸出;時(shí)鐘比 特添加器,向所述一路高速并行數(shù)據(jù)添加時(shí)鐘比特;低電壓差分信號(hào)傳輸接口,將添加時(shí)鐘 比特之后的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)進(jìn)行發(fā)送;以及鎖相環(huán),用于向低電壓差分信號(hào)傳輸 接口提供時(shí)鐘信號(hào)。優(yōu)選地,時(shí)鐘比特添加器將時(shí)鐘比特添加到所述一路高速并行數(shù)據(jù)中的每個(gè)字節(jié) 之前或之后。優(yōu)選地,所述時(shí)鐘比特是“ 10”或“01 ”。
本發(fā)明的另一個(gè)方面提供了一種低電壓差分信號(hào)傳輸方法,包括將輸入的多路 低速并行數(shù)據(jù)轉(zhuǎn)換成一路高速并行數(shù)據(jù);向所述一路高速并行數(shù)據(jù)添加時(shí)鐘比特;以及將 添加時(shí)鐘比特之后的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)進(jìn)行發(fā)送。優(yōu)選地,將時(shí)鐘比特添加到所述一路高速并行數(shù)據(jù)中的每個(gè)字節(jié)之前或之后。優(yōu) 選地,所述時(shí)鐘比特是“ 10”或“01 ”。本發(fā)明的LVDS接口電路節(jié)省了 FPGA管腳的數(shù)目,使PCB設(shè)計(jì)得以簡(jiǎn)化。另外,在 保持高傳輸速率的同時(shí)減小了訓(xùn)練時(shí)間。
通過(guò)下文結(jié)合附圖的詳細(xì)描述,本發(fā)明的上述和其他特征將會(huì)變得更加明顯,其 中圖1是示出了現(xiàn)有技術(shù)中的一種LVDS接口電路的框圖;圖2是示出了圖1中的LVDS接口電路的信號(hào)時(shí)序圖;圖3是示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于FPGA的LVDS接口電路的框圖;圖4是示出了圖3中的LVDS接口電路的信號(hào)時(shí)序圖。圖5是示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的LVDS數(shù)據(jù)傳輸方法的流程圖。
具體實(shí)施例方式下面,通過(guò)結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例的描述,本發(fā)明的原理和實(shí)現(xiàn)將會(huì)變 得明顯。應(yīng)當(dāng)注意的是,本發(fā)明不應(yīng)局限于下文所述的具體實(shí)施例。圖3是示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于FPGA的LVDS接口電路的框圖,用于 將并行數(shù)據(jù)轉(zhuǎn)變?yōu)榇袛?shù)據(jù)。如圖3所示,LVDS接口電路30包括字節(jié)組合器310、時(shí)鐘比 特添加器320、LVDS-TX接口 330和PLL340。字節(jié)組合器310將多路低速的并行數(shù)據(jù)轉(zhuǎn)換 成一路高速的并行數(shù)據(jù),以便后續(xù)的處理。為了進(jìn)行說(shuō)明,以兩路并行數(shù)據(jù)作為示例。如圖 3所示,字節(jié)組合器將頻率為30. 72MHz的兩路8比特?cái)?shù)據(jù)合并為一路頻率為61. 44MHz的8 比特?cái)?shù)據(jù)。時(shí)鐘比特添加器320在頻率為61. 44MHz的8比特?cái)?shù)據(jù)的最高位前添加時(shí)鐘比 特“10”,從而將8比特?cái)?shù)據(jù)轉(zhuǎn)換為10比特?cái)?shù)據(jù)。LVDS-TX接口 330將10比特的并行數(shù)據(jù) 轉(zhuǎn)換為串行數(shù)據(jù)發(fā)送。PLL 340提供了三個(gè)時(shí)鐘信號(hào)C0-C2。較高頻率的(614.4MHz)時(shí)鐘 信號(hào)CO完成對(duì)高速串行數(shù)據(jù)的處理,較低頻率的(61.44MHz)時(shí)鐘信號(hào)C2完成對(duì)低速并行 數(shù)據(jù)的處理。時(shí)鐘信號(hào)Cl的占空比是10%,在并串轉(zhuǎn)換過(guò)程中用作使能信號(hào)。圖4是示出了圖3中的LVDS接口電路的信號(hào)時(shí)序圖,其描述了 LVDS接口電路 30中各處信號(hào)的時(shí)序。其中,假定需要發(fā)送的數(shù)據(jù)是頻率為30. 72MHz的16比特?cái)?shù)據(jù), clk30d72是發(fā)送數(shù)據(jù)的參考時(shí)鐘,datain[15:0]是需要傳輸?shù)?6比特?cái)?shù)據(jù);cllc61d44是 LVDS接口的工作時(shí)鐘,是61. 44MHz,data be [7:0]是字節(jié)組合器得到的61. 44MHz的數(shù)據(jù), clock bits就是兩個(gè)時(shí)鐘比特,data ca[9:0]是加入時(shí)鐘比特之后的10比特?cái)?shù)據(jù)。圖5是示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的LVDS數(shù)據(jù)傳輸方法的流程圖。方法500從 步驟501處開(kāi)始。在步驟503,將多路低速的并行數(shù)據(jù)轉(zhuǎn)換成一路高速的并行數(shù),即對(duì)并行 數(shù)據(jù)流進(jìn)行字節(jié)組合。在步驟505,按照上文所述的方式添加時(shí)鐘比特“10”。在步驟507, 通過(guò)LVDS接口發(fā)送數(shù)據(jù)添加有時(shí)鐘比特的串行數(shù)據(jù)。最后,方法在步驟509處結(jié)束。
如上所述,在本發(fā)明的基于FPGA的LVDS接口電路中,數(shù)據(jù)流中不使用公共字,并 且不采用8B/10B編碼。相反,本發(fā)明在數(shù)據(jù)流中插入兩個(gè)時(shí)鐘比特“10”,用于接收機(jī)中的 數(shù)據(jù)恢復(fù)。具體說(shuō)來(lái),在每個(gè)時(shí)鐘周期,LVDS接口電路30中的時(shí)鐘比特添加器320將少于 8比特的并行用戶數(shù)據(jù)與這兩個(gè)時(shí)鐘比特相組合,形成10比特的數(shù)據(jù)流,并通過(guò)LVDS-TX 接口 330發(fā)送該數(shù)據(jù)流。例如,當(dāng)輸入信號(hào)為8比特、速率為61. 44MHz時(shí),時(shí)鐘比特添加器 320將8比特輸入信號(hào)和2比特的時(shí)鐘信號(hào)相組合,形成每周期10比特、速率為61. 44MHz 的數(shù)據(jù)流。時(shí)鐘比特(以關(guān)聯(lián)的兩個(gè)比特“10”為例)的具體實(shí)現(xiàn)是將8比特的數(shù)據(jù)在最高 位的左邊加“1”,在最低位的右端加“0”,從而組成一個(gè)10比特的并行數(shù)據(jù),以代替8B/10B 的功能。在接收端,根據(jù)時(shí)鐘比特的規(guī)律性,每10個(gè)比特必定含有一組“10”。該時(shí)鐘比特 具有兩個(gè)功能其一,防止在數(shù)據(jù)中出現(xiàn)連續(xù)的較長(zhǎng)的“0”或“1”;其二,在接收端根據(jù)時(shí)鐘 比特完成對(duì)動(dòng)態(tài)相位的調(diào)整。具體地,接收機(jī)可以周期性地檢測(cè)該時(shí)鐘比特。如果接收機(jī)沒(méi)有檢測(cè)到該時(shí)鐘比 特,則接收機(jī)會(huì)控制數(shù)據(jù)重排列單元,直到其檢測(cè)到給定時(shí)間上的時(shí)鐘比特為止。然后,信 道訓(xùn)練結(jié)束,數(shù)據(jù)得以重新排列。此外,根據(jù)上面的分析可知,本發(fā)明也可以使用時(shí)鐘比特“01”來(lái)實(shí)現(xiàn)。該時(shí)鐘比 特可以添加到每個(gè)字節(jié)之前或之后。根據(jù)上文的分析可知,上述情況下的效率為1x0.8 = 80%,并且訓(xùn)練時(shí)間為 IOxlOx(1/614. 4Mbps) =0. 16ns。因此,在數(shù)據(jù)傳輸效率保持在80%的同時(shí),本發(fā)明的訓(xùn)練 時(shí)間很短??梢?jiàn),本發(fā)明在保持較高效率的同時(shí),使訓(xùn)練時(shí)間極大地縮短。另外,本發(fā)明的 基于FPGA的LVDS接口電路中僅采用了一個(gè)PLL電路,使得時(shí)鐘的設(shè)計(jì)方案得以簡(jiǎn)化。盡管以上已經(jīng)結(jié)合本發(fā)明的優(yōu)選實(shí)施例示出了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將 會(huì)理解,在不脫離本發(fā)明的精神和范圍的情況下,可以對(duì)本發(fā)明進(jìn)行各種修改、替換和改 變。因此,本發(fā)明不應(yīng)由上述實(shí)施例來(lái)限定,而應(yīng)由所附權(quán)利要求及其等價(jià)物來(lái)限定。
權(quán)利要求
1.一種基于FPGA的低電壓差分信號(hào)傳輸接口電路,包括字節(jié)組合器,用于將輸入的多路低速并行數(shù)據(jù)轉(zhuǎn)換成一路高速并行數(shù)據(jù)作為輸出;時(shí)鐘比特添加器,向所述一路高速并行數(shù)據(jù)添加時(shí)鐘比特;低電壓差分信號(hào)傳輸接口,將添加時(shí)鐘比特之后的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)進(jìn)行發(fā) 送;以及鎖相環(huán),用于向低電壓差分信號(hào)傳輸接口提供時(shí)鐘信號(hào)。
2.如權(quán)利要求1所述的低電壓差分信號(hào)傳輸接口電路,其中,時(shí)鐘比特添加器將時(shí)鐘 比特添加到所述一路高速并行數(shù)據(jù)中的每個(gè)字節(jié)之前。
3.如權(quán)利要求1所述的低電壓差分信號(hào)傳輸接口電路,其中,時(shí)鐘比特添加器將時(shí)鐘 比特添加到所述一路高速并行數(shù)據(jù)中的每個(gè)字節(jié)之后。
4.如權(quán)利要求2或3所述的低電壓差分信號(hào)傳輸接口電路,其中,所述時(shí)鐘比特是 “10” 或 “01”。
5.一種低電壓差分信號(hào)傳輸方法,包括將輸入的多路低速并行數(shù)據(jù)轉(zhuǎn)換成一路高速并行數(shù)據(jù);向所述一路高速并行數(shù)據(jù)添加時(shí)鐘比特;以及將添加時(shí)鐘比特之后的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)進(jìn)行發(fā)送。
6.如權(quán)利要求5所述的方法,其中,向所述一路高速并行數(shù)據(jù)添加時(shí)鐘比特的步驟包 括將時(shí)鐘比特添加到所述一路高速并行數(shù)據(jù)中的每個(gè)字節(jié)之前。
7.如權(quán)利要求5所述的方法,其中,向所述一路高速并行數(shù)據(jù)添加時(shí)鐘比特的步驟包 括將時(shí)鐘比特添加到所述一路高速并行數(shù)據(jù)中的每個(gè)字節(jié)之后。
8.如權(quán)利要求6或7所述的低電壓差分信號(hào)傳輸接口電路,其中,所述時(shí)鐘比特是 “10” 或 “01”。
全文摘要
本發(fā)明提供了一種基于FPGA的低電壓差分信號(hào)傳輸接口電路,包括字節(jié)組合器,用于將輸入的多路低速并行數(shù)據(jù)轉(zhuǎn)換成一路高速并行數(shù)據(jù)作為輸出;時(shí)鐘比特添加器,向所述一路高速并行數(shù)據(jù)添加時(shí)鐘比特;低電壓差分信號(hào)傳輸接口,將添加時(shí)鐘比特之后的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)進(jìn)行發(fā)送;以及鎖相環(huán),用于向低電壓差分信號(hào)傳輸接口提供時(shí)鐘信號(hào)。本發(fā)明還提供了一種低電壓差分信號(hào)傳輸方法。本發(fā)明能夠高效和穩(wěn)定地接收高速數(shù)據(jù),并減小訓(xùn)練時(shí)間和簡(jiǎn)化時(shí)鐘的設(shè)計(jì)方案。
文檔編號(hào)H03K19/0175GK102104375SQ20091020087
公開(kāi)日2011年6月22日 申請(qǐng)日期2009年12月21日 優(yōu)先權(quán)日2009年12月21日
發(fā)明者何虎剛, 李優(yōu)杏 申請(qǐng)人:上海貝爾股份有限公司