RocketIO及其在高速數(shù)據(jù)傳輸中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:在高速電路系統(tǒng)設(shè)計(jì)中,差分串行通信方式正在取代并行總線方式 ,以滿足系統(tǒng)對高帶寬數(shù)據(jù)通信的需求。RocketIO是Virtex2 Pro以上系列中集成的專用高速串行數(shù)據(jù)收發(fā)模塊,可用于實(shí)現(xiàn)吉比特的數(shù)據(jù)傳輸,適用于多種高速數(shù)據(jù)傳輸協(xié)議。依據(jù)實(shí)際工程應(yīng)用需求,提出了基于RocketIO的高速串行數(shù)據(jù)傳輸系統(tǒng)解決方案,實(shí)現(xiàn)了每通道2.5 Gb/s的傳輸速度。最后介紹了RocketIO在Aurora和PCI Express協(xié)議實(shí)現(xiàn)中的應(yīng)用,并總結(jié)了高速通信系統(tǒng)的共性特征。
引言
隨著電子系統(tǒng)對速度以及精度要求的提高,高速串行數(shù)據(jù)通信模式正在逐步取代傳統(tǒng)的并行總線式結(jié)構(gòu)。并行總線結(jié)構(gòu)由于其固有的缺點(diǎn),在速度上的提升空間已經(jīng)很小。
?、?并行總線在印制電路板上要占用大量的空間,在電路系統(tǒng)日益小型化的今天給系統(tǒng)的設(shè)計(jì)帶來很大困難。如PATA66以上的PATA數(shù)量達(dá)到了80根,使得電路板的布線極為困難。
② 并行總線由于在布線時(shí)很難保證每條線路長度與電氣特征一致,導(dǎo)致信號到達(dá)時(shí)間不同,在較高的工作頻率下很難實(shí)現(xiàn)完全同步,以致出現(xiàn)信號偏移。這使接收器難以確定采樣時(shí)間,容易造成數(shù)據(jù)錯(cuò)誤。
?、?由于寄生電容的影響,在并行的兩條數(shù)據(jù)線中容易產(chǎn)生串?dāng)_,甚至改變信號原有真實(shí)電平。采用地線進(jìn)行屏蔽可以在一定程度上消除串?dāng)_,但同時(shí)也造成總線線路數(shù)目的急劇增加。
?、?并行總線參考電平為地電平,容易受噪聲干擾。同時(shí)由于在總線上“0”、“1”分布不均勻,在信號收發(fā)器之間易造成直流偏置,造成信號噪聲容限降低。
相比而言,高速串行總線采用差分對的形式,并且在發(fā)送端與接收端之間采用點(diǎn)對點(diǎn)的連接結(jié)構(gòu)。差分信號經(jīng)過編碼,消除信號序列中直流分量,從而可以提高噪聲容限。同時(shí),在信號序列中插入時(shí)鐘信息,信號中攜帶時(shí)鐘,解決了信號偏移問題。
在嵌入式應(yīng)用方面,主流的FPGA中都已對差分信號提供了硬件支持,如Xilinx公司推出的Virtex系列FPGA中,相鄰的兩個(gè)I/O口都以差分信號對形式出現(xiàn)。從Virtex2 Pro系列開始,更是在片上集成了固化的RocketIO模塊,以提供高超高速的串行通信支持。本文將從工程應(yīng)用的角度出發(fā)介紹RocketIO的相關(guān)特征,并探討其在高速數(shù)據(jù)傳輸中的應(yīng)用。
1 RocketIO
RocketIO收發(fā)器是在Virtex2 Pro以上系列FPGA中集成的專用串行通信模塊,在使用時(shí)不占用FPGA其他邏輯與片上存儲(chǔ)資源。在Virtex5 LXT和SXT系列FPGA中,RocketIO稱為GTP,每兩個(gè)GTP共用一個(gè)PLL,組成一個(gè)GTP_Dual。其結(jié)構(gòu)框圖如圖1所示。
圖1 GTP_Dual Tile結(jié)構(gòu)框圖
每一個(gè)RocketIO收發(fā)器均具有如下特征:
◆ 具有可配置終端、電壓擺幅與耦合的電流模邏輯串行驅(qū)動(dòng)或緩沖器。
◆ 可編程發(fā)送預(yù)加重和接收均衡,以實(shí)現(xiàn)最優(yōu)信號完整性。
◆ 100 Mb/s~3 Gb/s的線速范圍,線速在100 Mb/s~500 Mb/s區(qū)間時(shí)具有可選的5倍過采樣功能。
◆ 可選的嵌入式PCS功能,例如8位/10位編碼、逗號對齊、通道綁定以及時(shí)鐘校正。
◆ 最小化的確定性數(shù)據(jù)通道延遲。
◆ 對PCI Express、SATA、傳輸?shù)葏f(xié)議的支持。
從應(yīng)用上講,RocketIO處于數(shù)據(jù)傳輸協(xié)議的物理層,用以實(shí)現(xiàn)最基本的數(shù)據(jù)通信環(huán)境。其主要功能可以概括為:將輸入的并行數(shù)據(jù)經(jīng)過編碼,轉(zhuǎn)化為高速的差分串行信號。在實(shí)際應(yīng)用中,輸入時(shí)鐘、PLL參數(shù)設(shè)置以及PCB線路的設(shè)計(jì)與布局是影響數(shù)據(jù)傳輸效果的最重要因素。
1.1 輸入時(shí)鐘
RocketIO有三種時(shí)鐘輸入方式:專用差分時(shí)鐘、共享鄰近GTP_Dual的時(shí)鐘、以及使用FPGA內(nèi)部時(shí)鐘。Rocket I/O GTP時(shí)鐘輸入方式如圖2 所示。
圖2 Rocket I/O GTP時(shí)鐘輸入方式
使用專用差分時(shí)鐘時(shí),差分的時(shí)鐘信號通過輸入差分緩沖器變?yōu)閱味藭r(shí)鐘,輸入到GTP_Dual Tile中的PLL,當(dāng)使用的時(shí)鐘源精度滿足要求時(shí)具有最優(yōu)的時(shí)鐘穩(wěn)定性。
從相鄰GTP_Dual Tile獲得時(shí)鐘時(shí)需要使用GTP專用的時(shí)鐘通路,但此時(shí)GTP_Dual與提供時(shí)鐘的GTP_Dual Tile間隔的GTP_Dual Tile個(gè)數(shù)不能超過兩個(gè),即每對差分輸入時(shí)鐘最多可驅(qū)動(dòng)7個(gè)GTP_Dual Tile。
相比于上述兩種時(shí)鐘輸入方式,從FPGA內(nèi)部獲得時(shí)鐘時(shí)鐘精度最差。這是因?yàn)楣饫w,F(xiàn)PGA內(nèi)部使用的時(shí)鐘經(jīng)過邏輯電路以及BUFG或BUFR緩沖后,會(huì)引入較大的時(shí)間抖動(dòng)。但由于在FPGA內(nèi)部可以靈活變換參考時(shí)鐘頻率,因此在速度與精度要求不太高的場合可采用FPGA內(nèi)部時(shí)鐘。經(jīng)實(shí)驗(yàn)驗(yàn)證,對于誤碼率要求在1‰以下的應(yīng)用,從FPGA內(nèi)部獲得的時(shí)鐘信號可以滿足要求。
1.2 PLL參數(shù)設(shè)置
時(shí)鐘信號輸入到GTP_Dual Tile內(nèi)部后還需要經(jīng)過PLL的進(jìn)一步處理才能使用。PLL可向兩個(gè)RocketIO提供相互獨(dú)立的各種時(shí)鐘信號。PLL內(nèi)部時(shí)鐘變換結(jié)構(gòu)如圖3所示。
圖3 PLL內(nèi)部時(shí)鐘變換結(jié)構(gòu)
需要注意的是,由于此PLL可用參數(shù)(PLL_DIVSEL_FB = [1,2,3,4,5], PLL_DIVSEL_REF = [1,2])有限,為獲得高速串行通信所需頻率,輸入?yún)⒖紩r(shí)鐘CLKIN僅可在有限范圍內(nèi)選擇。因此,參考時(shí)鐘需通過專用的具有相應(yīng)頻率的晶振提供或在FPGA內(nèi)部經(jīng)DCM或PLL變換獲得。
1.3 PCB設(shè)計(jì)
RocketIO產(chǎn)生的高速串行信號速度在1 GHz以上時(shí),已經(jīng)進(jìn)入微波范圍。因此在使用時(shí),其PCB電路的制作也是影響信號傳輸效果的重要因素。
RocketIO的供電必須由專用的電源管理模塊提供,不能與其他模塊電源共享,以減少噪聲引入。即使GTP中同一種電源的不同引腳之間也需要通過濾波電路進(jìn)行隔離,以減少相互之間的影響。為平衡GTP_Dual Tile的負(fù)載,只使用其中的一個(gè)GTP時(shí),兩個(gè)GTP的供電應(yīng)以同樣策略進(jìn)行處理。
在布線時(shí),高速差分對走線應(yīng)當(dāng)有最高的優(yōu)先級,以保證其電氣特性滿足微帶線或帶狀線的要求。走線應(yīng)當(dāng)盡量直、短并具有最少的信號層變化。為減少干擾信號的影響,高速線應(yīng)盡量遠(yuǎn)離其他有可能會(huì)帶來噪聲的信號線,同時(shí)信號線拐角采用45°而避免使用直角。為保證信號的完整性,高速差分信號線的參考平面須保持連續(xù),并盡量以地平面為參考,否則其阻抗特性會(huì)發(fā)生急劇變化,導(dǎo)致信號的反射增強(qiáng)。
2 RocketIO在高速信號傳輸中的應(yīng)用
在多種高速數(shù)據(jù)處理場合都需要對數(shù)據(jù)進(jìn)行高速收發(fā)。以超高速信號采集系統(tǒng)為例,當(dāng)采用ADC08D1500采集芯片時(shí),最高可以實(shí)現(xiàn)單通道3 Gsps的超高速采樣率,數(shù)據(jù)精度為8位。這時(shí)就需要具有足夠高傳輸速率的信號傳輸機(jī)制對信號進(jìn)行轉(zhuǎn)發(fā)。若實(shí)現(xiàn)機(jī)內(nèi)通信,可采用PCI Express傳輸協(xié)議;若實(shí)現(xiàn)系統(tǒng)間通信,則可使用光纖通信協(xié)議或千兆以太網(wǎng)協(xié)議。在工程中,上述協(xié)議都可通過專用的芯片來實(shí)現(xiàn),但也使得系統(tǒng)變得復(fù)雜,同時(shí)使電路板的設(shè)計(jì)空間緊張。而RocketIO對多種高速傳輸協(xié)議的支持,可以使得PCI Express協(xié)議、光纖傳輸協(xié)議或千兆以太網(wǎng)協(xié)議在同一片F(xiàn)PGA內(nèi)實(shí)現(xiàn),提高了系統(tǒng)的集成度,并使得信號的處理機(jī)制更加靈活。在本文的設(shè)計(jì)中,采用了PCI Express傳輸協(xié)議來實(shí)現(xiàn)機(jī)內(nèi)通信,采用Aurora光纖傳輸協(xié)議來實(shí)現(xiàn)系統(tǒng)間通信。系統(tǒng)結(jié)構(gòu)如圖4所示。
圖4 超高速采集系統(tǒng)框圖
2.1 Aurora協(xié)議
Aurora協(xié)議是一種可配置的、簡便的數(shù)據(jù)鏈路層協(xié)議,可以通過使用一條或多條高速串行通道實(shí)現(xiàn)點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸。Aurora協(xié)議可為私有上層協(xié)議或標(biāo)準(zhǔn)上層協(xié)議提供透明接口的串行互聯(lián)協(xié)議,允許任何數(shù)據(jù)分組通過Aurora協(xié)議封裝,并在芯片間、電路板間甚至機(jī)箱之間傳輸。Xilinx還開發(fā)了實(shí)現(xiàn)該協(xié)議的Aurora IP核,當(dāng)使用Virtex5 FPGA提供的RocketIO時(shí),Aurora可實(shí)現(xiàn)每個(gè)物理通道500 Mb/s到3.75 Mb/s的傳輸速率。Aurora可將1~16個(gè)物理通道綁定在一起,形成一個(gè)由16個(gè)通道綁定而成的虛擬鏈路,提供最高60 Gb/s的傳輸波特率[1]。其結(jié)構(gòu)如圖5所示。
圖5 Aurora核結(jié)構(gòu)
Aurora核可以幀模式或流模式傳輸數(shù)據(jù)[4]。Aurora的幀可以是任意大小,并可以在任意時(shí)刻被中斷。有效數(shù)據(jù)之間被自動(dòng)以空閑(idles)序列信號填充,以維持通道的鎖定。幀模式下有可選的數(shù)據(jù)流控制信號,以降低接收數(shù)據(jù)速率,或傳送簡短而優(yōu)先級高的信息。流模式在Aurora核中以一個(gè)無結(jié)尾的幀方式實(shí)現(xiàn)。在數(shù)據(jù)傳輸?shù)拈g隙補(bǔ)以空閑序列信號。
2.2 PCI Express協(xié)議
PCI Express是PCI、PCIX協(xié)議的下一代協(xié)議,是一種廣泛適用于計(jì)算和通信平臺(tái)的高性能通用互聯(lián)結(jié)構(gòu)。同Aurora協(xié)議相似,PCI Express協(xié)議采用點(diǎn)到點(diǎn)的串行鏈接,單通道可實(shí)現(xiàn)2.5 Gb/s的傳輸速率,最高可使用16個(gè)通道實(shí)現(xiàn)40 Gb/s的高速通信。Xilinx公司開發(fā)的集成的PCIE IP核(Integrated Endpoint Block)可實(shí)現(xiàn)最高8個(gè)RocketIO通道的綁定,以此為物理層基礎(chǔ)實(shí)現(xiàn)20 Gb/s的傳輸速率。PCI Express協(xié)議包含傳輸層、數(shù)據(jù)鏈路層和物理層,其在FPGA上基于RocketIO實(shí)現(xiàn)的結(jié)構(gòu)框架如圖6所示。
圖6 Xilinx PCIE IP核結(jié)構(gòu)框圖
2.3 高速信號傳輸系統(tǒng)的共性
RocketIO可應(yīng)用于多種高速數(shù)據(jù)處理應(yīng)用的場合,這是由于高速信號傳輸系統(tǒng)結(jié)構(gòu)都可以概括為三個(gè)組成部分,并且傳輸協(xié)議分層實(shí)現(xiàn)的方式使得系統(tǒng)協(xié)議與硬件系統(tǒng)之間具有一定的獨(dú)立性。
圖7 高速信號傳輸系統(tǒng)框架圖
高速信號傳輸系統(tǒng)的實(shí)現(xiàn)方式多種多樣,但一般均由上層協(xié)議、高速收發(fā)器以及傳輸接口組成。其結(jié)構(gòu)框架如圖7所示。
上層協(xié)議:根據(jù)不同的任務(wù)需要,為實(shí)現(xiàn)高速信號傳輸制定的傳輸協(xié)議多種多樣,包含的層數(shù)也不同。如PCI Express協(xié)議具有物理層、數(shù)據(jù)鏈路層以及傳輸層,Aurora協(xié)議具有物理層和數(shù)據(jù)鏈路層,10 Gb/s以太網(wǎng)協(xié)議(XAUI)包含物理層和數(shù)據(jù)鏈路層。用戶程序可使用這些傳輸協(xié)議實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。
高速收發(fā)器:高速收發(fā)器是所有傳輸協(xié)議都必須具備的物理層,是實(shí)現(xiàn)高速信號傳輸?shù)幕A(chǔ)。一般實(shí)現(xiàn)串并轉(zhuǎn)換、時(shí)鐘數(shù)據(jù)恢復(fù)、線路編碼、線路綁定等功能,可為多種上層協(xié)議提供硬件支持。Xilinx公司推出的RocketIO與Altera公司推出的Rapid IO等都可看作高速收發(fā)器。
傳輸接口:在高速的信號傳輸系統(tǒng)中傳輸接口與高速收發(fā)器之間通過差分線連接,可實(shí)現(xiàn)全雙工的雙向傳輸。接口形式與具體應(yīng)用相關(guān),如實(shí)現(xiàn)PCI Express傳輸協(xié)議的PCIE接口、實(shí)現(xiàn)光線傳輸協(xié)議的光線接口以及實(shí)現(xiàn)高速以太網(wǎng)通信的網(wǎng)絡(luò)接口等。
其中相同的高速收發(fā)器可以應(yīng)用于使用不同傳輸協(xié)議的系統(tǒng)中,所連接的接口根據(jù)不同應(yīng)用而有不同形式。如RocketIO既可用于Aurora光纖通信協(xié)議,也可用于PCI Express協(xié)議。而在Aurora協(xié)議中,RocketIO與光纖接口相連,在PCI Express協(xié)議中,RocketIO與PCIE接口相連。
結(jié)語
綜上所述,RocketIO通過提供高速的串并轉(zhuǎn)換、時(shí)鐘與復(fù)位管理、線路編解碼等功能,為實(shí)現(xiàn)高速的串行數(shù)據(jù)傳輸提供了良好的物理層基礎(chǔ)。RocketIO對多種高速傳輸協(xié)議的支持使得其在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用,也使得用戶在選擇使用成熟的IP核之外,可以根據(jù)實(shí)際需要利用RocketIO開發(fā)專用模塊,實(shí)現(xiàn)高效、穩(wěn)定的數(shù)據(jù)傳輸。