學(xué)習(xí)了一段時間后池磁,決定開始一點點更新PCIe這一系列奔害,雖然學(xué)習(xí)了一段時間,有些地方可能總結(jié)的不好或者有紕漏地熄,還請大家不吝指教华临,先行謝過! 還需聲明的是端考,接下來所有的設(shè)計硬件的照片雅潭,是一款xc7z030ffg676-2的ZYNQ開發(fā)板,功能很強(qiáng)大却特。
一扶供、PCIe的傳輸速度與鏈路寬度
PCIe2.0規(guī)范于2007年1月5日推出,將PCIe1.0 2.5GT/s的傳輸速率提高了一倍核偿,每個通道的吞吐率從250MB/s上升到500MB/s诚欠,因此2通道的PCIe可支持高達(dá)1GB的總吞吐量。
二漾岳、PCIe吞吐量計算方法
吞吐量=傳輸速率*編碼方案
以PCIe2.0x2為例轰绵,該系列為2.0版本的PCIe,包含兩個物理信道Lane尼荆,每個通道的吞吐量為:
5GT/s x 8/10 =4.0Gb/s =4000 Mb/s =500MB/s
所以PCIe2.0x2的吞吐量為:500MB/s x 2 = 1GB/s
分析:
PCIe2.0協(xié)議傳輸速率為5.0GT/s左腔,這樣的描述主要說明的是每條PCIe Gen2的lane(SERDES)每秒可以完成5.0Gbit數(shù)據(jù)傳輸?shù)奶匦裕疵恳粭l鏈路上支持每秒5G次傳輸捅儒,每個Lane上傳輸5Gbit液样,但是由于PCIe2.0采用的是8b/10b編碼方案,多出的2bit并不是對上層有意義的信息。
那么PCIe2.0協(xié)議的每一條lane支持5 * 8/10 /8=500MB/s的速率。 PCIe鏈路的電氣接口 PCIe2.0x2接口相對于其他系列亲怠,包含兩對發(fā)送與接收接口: 數(shù)據(jù)部分包含雙向8個接口焰檩,而不是8個雙向接口: PETp0與PETn0:發(fā)送器差分線對,通道0 PETp1與PETn1:發(fā)送器差分線對,通道1 PERp0與PERn0:接收器差分線對,通道0 PERp1與PERn1:接收器差分線對恳啥,通道1 故鏈路寬度為2
A面: 手機(jī)視角:
PCB視角:
B面: 手機(jī)視角:
PCB視角:
三喷面、PCIe的其他輔助電氣接口
Vcc與Vaux(由處理器系統(tǒng)提供)
PCIe設(shè)備使用兩種電源Vcc和Vaux星瘾,額定電壓都為3.3V,其中Vcc為主電源惧辈,PCIe設(shè)備使用的主要邏輯模塊由Vcc進(jìn)行供電琳状,而一些與電源管理相關(guān)的寄存器使用使用Vaux進(jìn)行供電。 在PCIe設(shè)備中盒齿,一些特殊的寄存器通常使用Vaux進(jìn)行供電念逞,因為這樣的話即使設(shè)備的Vcc被移除,這些與電源管理有關(guān)的邏輯狀態(tài)和特殊寄存器的內(nèi)容也不會丟失县昂。這樣可以大大的縮短系統(tǒng)恢復(fù)時間和降低系統(tǒng)功耗肮柜,因為Vaux在大多數(shù)情況下并不會被移除,這樣當(dāng)Vcc恢復(fù)后倒彰,設(shè)備不必恢復(fù)使用Vaux供電的邏輯审洞,從而設(shè)備可以很快的恢復(fù)到正常工作狀態(tài)。(具體應(yīng)用在熱插拔篇會講)
PERST#(#:低電平有效)
該信號為全局復(fù)位信號待讳,由處理器系統(tǒng)提供芒澜,處理器系統(tǒng)需要為PCIe插槽和PCIe設(shè)備提供該信號,PCIe設(shè)備使用該信號復(fù)位內(nèi)部邏輯创淡,當(dāng)該信號有效時痴晦,PCIe設(shè)備將對內(nèi)部邏輯進(jìn)行復(fù)位操作,其中Cold Reset和Warm Reset這兩種復(fù)位方式與該信號有關(guān)琳彩。
REFCLK+和REFCLK-信號
在一個處理器系統(tǒng)中誊酌,通常采用專用邏輯向PCIe插槽提供REFCLK+和REFCLK-信號,如下圖所示露乏,其中100Mhz的時鐘源由晶振提供碧浊,并經(jīng)過一個“一推多”的差分時鐘驅(qū)動器生成多個同相位的時鐘源,與PCIe插槽一一對應(yīng)連接瘟仿。
PCIe插槽參考時鐘其頻率范圍為100Mhz±300ppm箱锐,處理器系統(tǒng)需要為每一個PCIe插槽 、MCH劳较、ICH和Switch提供參考時鐘驹止。
當(dāng)PCIe設(shè)備作為Add-in卡連接在PCIe插槽時,可以直接使用PCIe插槽提供的REFCLK+和REFCLK-信號观蜗,也可以使用獨立的參考時鐘臊恋,只要這個獨立的參考時鐘滿足100Mhz±300ppm的要求即可。
WAKE#
當(dāng)PCIe設(shè)備進(jìn)入休眠狀態(tài)墓捻,主電源已經(jīng)停止供電時捞镰,PCIe設(shè)備使用該信號向處理器系統(tǒng)提供喚醒請求,使處理器系統(tǒng)為該PCIe設(shè)備提供主電源Vcc。
在PCIe總線中岸售,該信號是可選的,因此使用WAKE#信號喚醒PCIe設(shè)備機(jī)制也是可選的厂画,此外凸丸,使用該機(jī)制時,必須使用Vaux進(jìn)行供電袱院。
WAKE#是一個Open Drain信號屎慢,一個處理器的所有PCIe設(shè)備可以將WAKE#進(jìn)行“線與”后,統(tǒng)一發(fā)送給處理器的電源控制器忽洛。當(dāng)某個PCIe設(shè)備需要喚醒時腻惠,該設(shè)備先將WAKE#信號拉低,經(jīng)過一段時間后欲虚,系統(tǒng)處理器開始為該設(shè)備提供主電源Vcc集灌,并使用PERST#對該設(shè)備進(jìn)行復(fù)位操作,再次過程中WAKE#信號需要保持為低電平复哆,當(dāng)主電源Vcc上電完成之后欣喧,PERST#也將置為無效并結(jié)束復(fù)位,WAKE#信號也隨之被置為無效(拉高)梯找。
SMCLK和SMDAT
SMCLK與SMDAT信號與SMBUS(System Management Bus唆阿,系統(tǒng)管理總線)有關(guān),類似于IIC總線锈锤,因為SMBus源自于IIC總線驯鳖。SMbus總線的最高頻率為100Khz,SMBus上的從設(shè)備具有超時功能久免,當(dāng)SMBus總線上的從設(shè)備發(fā)現(xiàn)主設(shè)備發(fā)出的時鐘信號保持低電平超過35ms時浅辙,將引發(fā)從設(shè)備的超時復(fù)位,當(dāng)設(shè)備需要復(fù)位從設(shè)備時妄壶,可以采用這種超時機(jī)制摔握。
SMBus還支持Alert Response機(jī)制,當(dāng)從設(shè)備產(chǎn)生一個中斷時丁寄,并不會立即清除該中斷氨淌,直到主設(shè)備向0b0001100地址發(fā)送指令。
JTAG信號
Joint Test Action Group伊磺,聯(lián)合測試行為組 PRSNT1#和PRSNT2# PRSNT1#與PRSNT2#與PCIe設(shè)備的熱插拔有關(guān)盛正,在PCIe的Add-In卡中PRSNT1#與PRSNT2#直接相連。
在處理器主板中屑埋,PRSNT1#直接接地豪筝,PRSNT2#通過一個上拉電阻接為高電平。
當(dāng)Add-In卡為插入時,PRSNT2#信號由上拉電阻接為高续崖,Add-In卡插入后敲街,主板的PRSNT2#與PRSNT1#接通,此時PRSNT2#信號為低严望,處理器主板的熱插拔控制邏輯捕獲這個低電平多艇,得知Add-In卡已經(jīng)插入,從而觸發(fā)系統(tǒng)復(fù)位軟件進(jìn)行相應(yīng)處理像吻。當(dāng)Add-In卡拔出時峻黍,PRSNT2#信號變?yōu)楦撸幚砥髦靼宀东@這個高電平拨匆,得知Add-In卡已經(jīng)拔出姆涩,從而觸發(fā)系統(tǒng)軟件進(jìn)行相應(yīng)處理。