PCI Express (PCIe)是嵌入式和其它系統(tǒng)類型的背板間通信的一個非常理想的協(xié)議,。然而,在嵌入式環(huán)境中,,背板連接器引腳通常很昂貴,。因此,采用點對點連接的星型結(jié)構(gòu)的PCIe時鐘分配方案就變得并不理想,。本文將討論如何使用一個多點信號來分配PCIe時鐘,,而且仍滿足PCIe第二代規(guī)范嚴(yán)格的抖動要求。
PCIe計時
PCIe基本規(guī)范1.1和2.0為信令速率2.5Gbps和5.0Gbps的時鐘分配定義了三個不同模型,,見圖1,、圖2和圖3。
共用時鐘架構(gòu)作為最常使用的方法有很多理由,。首先,,大多數(shù)支持PCIe接口的商用芯片只適用于這種架構(gòu)。其次,,這種架構(gòu)是唯一可以直接支持展頻計時(Spread Spectrum clocking,,簡稱SSC)的架構(gòu)。SSC在減少電磁干擾峰化方面起著非常重要的作用,,因此可以簡化符合系統(tǒng)電磁輻射限制的工作(見圖4),。最后,這種架構(gòu)最容易形成概念和設(shè)計,。
共用時鐘架構(gòu)最大的缺點在于需要為系統(tǒng)中每個PCIe端點分配基準(zhǔn)時鐘,。頻率為100MHz或125MHz的時鐘以及PCIe規(guī)范嚴(yán)格的抖動要求使得這一架構(gòu)變得尤其復(fù)雜。對2.5Gbps工作的限制為86ps——106采樣的一系列樣本的峰-峰相位抖動,。而5.0Gbps工作的限制為3.1ps(均方根抖動值),。然而,要在5.0Gbps工作,,收發(fā)器首先要在2.5Gbps協(xié)商,,如果兩端都可以,再提高到5.0Gbps,。這就是說如果系統(tǒng)支持任何5.0Gbps鏈接,,則基準(zhǔn)時鐘就必須同時滿足兩者的抖動指標(biāo)。
獨立的數(shù)據(jù)時鐘架構(gòu)不會受到上述限制,,但卻大幅增加了時鐘系統(tǒng)設(shè)計的復(fù)雜性,,且在不使用單邊帶信令時不支持SSC。
基準(zhǔn)時鐘抖動的管理規(guī)范是PCIe基本規(guī)范1.1和2.0,,而檢驗抖動達(dá)標(biāo)的方法詳細(xì)列在PCIe抖動建模修訂版1.0D和PCIe抖動和BER修訂版1.0中,。機(jī)電規(guī)范提供了機(jī)械尺寸信息、電信號定義和功能,。其中一些,,如卡機(jī)電(Card Electromechanical,簡稱CEM)1.1和CEM2.0規(guī)范也為基準(zhǔn)時鐘,、Tx鎖相環(huán)(Phase-Locked Loop,,簡稱PLL)、Rx PLL和介質(zhì)提供了抖動預(yù)算,。嚴(yán)格來講,,CEM規(guī)范只申請了PC和服務(wù)器ATX,,以及基于ATX的尺寸。其它已出版的機(jī)電規(guī)范覆蓋了其它尺寸,,如用于移動計算平臺的Mini Card Electromechanical Specification 1.2,。
對于大多數(shù)嵌入式系統(tǒng),上述這些規(guī)范可以全部或部分用來規(guī)定嵌入式系統(tǒng)PCIe時鐘分配方案提供指南,。例如,,許多CEM文件規(guī)定了對基準(zhǔn)時鐘分配Host ClockSignal Level(HCSL)協(xié)議的使用。然而,,許多嵌入式系統(tǒng)希望使用低電壓正射極耦合邏輯(Low Voltage Positive Emitter Coupled Logic,,簡稱LVPECL)或多點低電壓差分信號(Multipoint-Low-Voltage Differential Signaling,簡稱M-LVDS)信令,,以實現(xiàn)時鐘分配網(wǎng)絡(luò)更遠(yuǎn)的距離和/或噪聲容限,。
許多嵌入式系統(tǒng)需要在其背板之間分配包括時鐘在內(nèi)的大量高速信號。為了解決這些背板上經(jīng)常出現(xiàn)的繁重電氣負(fù)載問題,,這些信號需要有非常強(qiáng)大的驅(qū)動器和高邊緣速率,。這帶來了干擾和其它信號完整性的危險,尤其是在背板比最差設(shè)計點的負(fù)載更低時,。另一個設(shè)計上的挑戰(zhàn)在于PCIe詳細(xì)規(guī)定了100MHz或125MHz的基準(zhǔn)時鐘,,這是一個很難在高負(fù)載長背板上順利分配的頻率。
除了PCIe規(guī)范嚴(yán)格的抖動限制和需要更長的信號距離,,嵌入式系統(tǒng)通常還受到可能通過背板連接器和背板本身的信號量的限制,。當(dāng)定制系統(tǒng)時,確定連接器引腳排列是最關(guān)鍵的任務(wù)之一,。
建議的共用時鐘分配方案
由于時鐘頻率和抖動限制,,最常見的共用時鐘架構(gòu)設(shè)計利用點對點差分信號對來分配基準(zhǔn)時鐘,其中一個差分信號對將抵達(dá)系統(tǒng)的每個PCIe端點,。如果一張卡上有多個PCIe端點,,就可以從背板獲得一個基準(zhǔn)時鐘輸入,并利用零延遲緩沖器(Zero Delay Buffers,,簡稱ZDB)提供卡上時鐘分配網(wǎng)絡(luò),。然而,即使這樣,,由于PCIe 5.0Gbps運行的抖動限制,,設(shè)計起來也是非常困難的。
假設(shè)我們能設(shè)計出這樣的卡上分配方案,,我們?nèi)孕枰峁腜CIe主到系統(tǒng)上每張卡的點對點連接,。在嵌入式系統(tǒng)中,這需要在主卡插槽上增加大量連接器引腳,,并在背板上增加大量有特殊布線要求的線跡,。這還要給主卡插槽插入與其它插槽截然不同的引腳排列,。
一個消除這些限制的解決辦法是降除主卡上的PCIe基準(zhǔn)時鐘,并利用一個M-LVDS多點信號在背板之間進(jìn)行分配,,然后將其提高到目標(biāo)卡所需的頻率,。盡管理論上非常簡單,但實現(xiàn)PCIe抖動限制卻很棘手(見圖5,,注意綠色信號線不起作用),。
這一解決方案可提供一個M-LVDS對,,用來驅(qū)動或接收符合PCIe的基準(zhǔn)時鐘,。如圖5所示,在許多嵌入式系統(tǒng)中,,根據(jù)應(yīng)用的”與/或”插槽進(jìn)行分配,,每張卡都可作為主操作或端點操作。顯然,,如圖所示,,只用于其中一種模式操作的卡將被簡化。系統(tǒng)中的一張卡將作為主,,利用其板上晶振生成滿足PCIe限制的基準(zhǔn)時鐘,。這個時鐘將利用內(nèi)部時鐘分配網(wǎng)絡(luò)驅(qū)動所有板上PCIe器件。該時鐘也將到達(dá)非PLL除法器電路,,將100MHz或125MHz向下降除為25MHz的背板頻率,,然后將除降了的基準(zhǔn)時鐘驅(qū)動到系統(tǒng)的其余卡上。
系統(tǒng)中其它所有的卡將禁用板上時鐘發(fā)生器,,形成基準(zhǔn)時鐘線跡的三態(tài)驅(qū)動器,,并接收來自背板的基準(zhǔn)時鐘。隨后,,這將通過基于PLL的ZDB提高到板上所需和分配的基準(zhǔn)時鐘頻率,,并將劃分了的基準(zhǔn)時鐘驅(qū)動到系統(tǒng)的其它卡上。系統(tǒng)其它所有的卡將失去對板上時鐘發(fā)電器的使用,,形成基準(zhǔn)時鐘線跡三態(tài)驅(qū)動器,,并接收來自背板的基準(zhǔn)時鐘。這將通過基于PLL的ZDB提高到板上和分配所需的基準(zhǔn)時鐘頻率,。接收和提高來自背板的基準(zhǔn)時鐘的電路通常在主卡上,,如果需要,可以用來生成所需的另一個基準(zhǔn)時鐘頻率,。為了實現(xiàn)PCIe所需的低抖動,,IDT FemtoClock PLL技術(shù)可用于時鐘合成器和ZDB。
像這種設(shè)計的最主要難點之一在于,,PLL雖然可以過濾掉頻率高于PLL本身環(huán)路帶寬的噪聲信號,,但在低于PLL環(huán)路帶寬的低頻部分,,卻增加了很多在調(diào)制頻率附近的附加抖動。另外,,由于PLL無法完全跟蹤基準(zhǔn)時鐘輸入的相位和頻率變化,,從而引起跟蹤偏移。像這種包含兩個以上用于頻率生成和轉(zhuǎn)換的級聯(lián)型PLL的背板PCIe方案必須謹(jǐn)慎對待,,以盡量降低相位抖動和PLL跟蹤偏移,。
PCIe抖動的測量
在深入分析這個解決方案的性能之前,需要先討論PCIe抖動性能的分析過程,。PCIe抖動工作組關(guān)注的一個首要問題是確定一個恰當(dāng)?shù)幕鶞?zhǔn)時鐘,。為了這個目的,需要考慮基準(zhǔn)時鐘的Tx和Rx PLL及相位插值器的過濾效果,。同時,,為了避免對基準(zhǔn)時鐘規(guī)格不足,這些PLL的峰值效應(yīng)也需要考慮,。這一過程分為四個主要步驟:
-
確定每個周期累積的相位誤差,。串行數(shù)據(jù)傳輸不像并行數(shù)據(jù)傳輸那樣關(guān)心時鐘的Cycle-to-Cycle抖動和Period抖動,串行數(shù)據(jù)傳輸更關(guān)心累積相位誤,。因此,,我們必須首先確定每個時鐘周期的累積相位誤差。
-
將離散傅立葉變換(Discrete Fourier Transform,,簡稱DFT)用于累積相位誤差數(shù)據(jù),,從而將時域的分析轉(zhuǎn)變到頻域進(jìn)行分析。
-
將系統(tǒng)轉(zhuǎn)移函數(shù)用于累積相位誤差數(shù)據(jù)的DFT,。
- 執(zhí)行逆DFT,,使過濾后的累積相位誤差數(shù)據(jù)轉(zhuǎn)回到時域內(nèi),這便是最終結(jié)果,。
同時還要注意,,通過設(shè)定系統(tǒng)轉(zhuǎn)移函數(shù)s=jω,可以在復(fù)雜的頻域?qū)崿F(xiàn)PLL系統(tǒng)的過濾分析,。該分析對連續(xù)系統(tǒng)很有用,,但由于采用相位檢測器和反饋除法器等數(shù)字元件,大多數(shù)現(xiàn)代PLL方案不是純粹的模擬系統(tǒng),,因而z域數(shù)字分析會更精確,。但是,PCI抖動工作組的初步研究表明,,受s域分析影響的誤差最小,,因此s域分析可用于建模。然而,,當(dāng)基頻低于PLL環(huán)路帶寬十倍時,,s域近似值會顯著背離真值,。所以系統(tǒng)設(shè)計師在選擇PLL時必須時刻謹(jǐn)記這一點。
抖動測量技巧
測量方法不當(dāng)很容易得到兩倍以上于正確方法的抖動測量值,。這里有一些技巧:
-
從被測器件到示波器都使用屏蔽同軸電纜,,并在示波器的輸入端做好恰當(dāng)?shù)钠ヅ洹?
-
如果使用高阻抗探頭,可使用低電容探頭和接地夾,,而非電線,。
-
確保你使用了與樣本量一致的最高采樣率。
-
使示波器屏幕上的縱坐標(biāo)最大,,以便精確地測量電壓,。
-
使顯示器、開關(guān)式電源和手機(jī)遠(yuǎn)離被測器件,??尚袝r使用線性電源,。
- 當(dāng)執(zhí)行差分測量時,,確保兩條電纜已經(jīng)相互糾偏。
IDT解決方案分析
IDT的工程師通過菊鏈三個特性描述板以代表子卡:ICS841S32I板,,然后是ICS8743008I板,,最后一個也是ICS8743008I板,創(chuàng)建了解決方案的原型,,見圖5,。在第二個ICS8743008I輸出時進(jìn)行測量。卸載來自示波器的時鐘周期數(shù)據(jù),,然后由抖動分析腳本進(jìn)行后處理,。該腳本可進(jìn)行必要的頻域和時域分析。
2.5Gbps分析方法的結(jié)果為18.91ps,。這一結(jié)果符合4.5倍的裕量的86ps的PCIe峰-峰相位抖動指標(biāo),。對于5.0Gbps操作,PCIe規(guī)定了rms相位抖動,,而非峰-峰相位抖動,。這些結(jié)果也超出了規(guī)范:0.52ps rms低頻帶和1.47ps高頻帶與3.1ps規(guī)范限制之比。
對于5.0Gbps工作,,PCIe為頻域分析規(guī)定了兩個轉(zhuǎn)移函數(shù)和兩個頻率范圍,。第一個轉(zhuǎn)移函數(shù)的極頻率為5MHz和16MHz,第二個轉(zhuǎn)移函數(shù)的極頻率為8MHz和16MHz,。抖動分析所得的兩個頻段為10KHz-1.5MHz(低頻帶),,1.5MHz-Nyquist(高頻帶)。Nyquist表示你的分析達(dá)到了基準(zhǔn)時鐘頻率的一半,。例如,,在100MHz時,,頻域分析將達(dá)到50MHz。分析腳本會顯示每個頻率分析頻帶間兩個轉(zhuǎn)移函數(shù)間的最差情況,。
結(jié)束語
PCIe標(biāo)準(zhǔn)最初用于定義PC系統(tǒng),,但由于其低引腳數(shù)和可擴(kuò)展的高性能,很快成為幾乎所有應(yīng)用領(lǐng)域選擇的I/O接口,。高速的基準(zhǔn)時鐘給希望利用PCIe元件的嵌入式系統(tǒng)工程師們提出了嚴(yán)峻的挑戰(zhàn),。他們需要分配、選擇兩個不同的,、符合規(guī)范的基準(zhǔn)時鐘速度,。
其中一個測試解決方案有助于系統(tǒng)利用支持100MHz和125MHz基準(zhǔn)時鐘的元件,并通過一個M-LVDS差分對將其分配到系統(tǒng)的所有卡上,。這一解決方案也可以對卡進(jìn)行設(shè)置,,因此這些卡可以在其應(yīng)用指令下作為主或端點操作,而且能插入系統(tǒng)的任何插槽,。另外,,這一解決方案降低了背板上基準(zhǔn)時鐘的工作頻率,放寬了該信號的路由限制和串?dāng)_性能,。只要滿足2.5Gbps和5.0Gbps操作PCIe規(guī)范嚴(yán)格的抖動要求,,所有這些都可以用一個設(shè)計實現(xiàn)。