嵌入式系統(tǒng)的PCI Express時(shí)鐘分配
共用時(shí)鐘架構(gòu)作為最常使用的方法有很多理由。首先,大多數(shù)支持PCIe接口的商用芯片只適用于這種架構(gòu)。其次,這種架構(gòu)是唯一可以直接支持展頻計(jì)時(shí)(Spread Spectrum clocking,簡(jiǎn)稱SSC)的架構(gòu)。SSC在減少電磁干擾峰化方面起著非常重要的作用,因此可以簡(jiǎn)化符合系統(tǒng)電磁輻射限制的工作(見(jiàn)圖4)。最后,這種架構(gòu)最容易形成概念和設(shè)計(jì)。
共用時(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――106采樣的一系列樣本的峰-峰相位抖動(dòng)。而5.0Gbps工作的限制為3.1ps(均方根抖動(dòng)值)。然而,要在5.0Gbps工作,收發(fā)器首先要在2.5Gbps協(xié)商,如果兩端都可以,再提高到5.0Gbps。這就是說(shuō)如果系統(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和CEM2.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 ClockSignal 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),尤其是在背板比最差設(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 Buffers,簡(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)中,這需要在主卡插槽上增加大量連接器引腳,并在背板上增加大量有特殊布線要求的線跡。這還要給主卡插槽插入與其它插槽截然不同的引腳排列。
一個(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è)M-LVDS對(duì),用來(lái)驅(qū)動(dòng)或接收符合PCIe的基準(zhǔn)時(shí)鐘。如圖5所示,在許多嵌入式系統(tǒng)中,根據(jù)應(yīng)用的”與/或”插槽進(jìn)行分配,每張卡都可作為主操作或端點(diǎn)操作。顯然,如圖所示,只用于其中一種模式操作的卡將被簡(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)的其余卡上。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論