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