本篇主要介紹PCIe總線相關(guān)的信號。
PCIe總線相關(guān)的信號主要分為以下幾類:
輔助信號線
數(shù)據(jù)線
1、Auxiliary Signals
The auxiliary signals are provided on the connector to assist with certain system level functionality or implementation. These signals are not required by the PCI Express architecture. The optional low speed signals are defined to use the +3.3V or +3.3Vaux supplies, as they are the lowest common voltage available.
1.1、PERST#信號
該信號為全局復(fù)位信號,由處理器系統(tǒng)提供(RC),處理器系統(tǒng)需要為PCIe插槽和PCIe設(shè)備提供該復(fù)位信號。PCIe設(shè)備使用該信號復(fù)位內(nèi)部邏輯。當(dāng)該信號有效時(shí),PCIe設(shè)備將進(jìn)行復(fù)位操作。PCIe總線定義了多種復(fù)位方式,其中Cold Reset和Warm Reset這兩種復(fù)位方式的實(shí)現(xiàn)與該信號有關(guān)。
為了支持熱插拔,在原理圖設(shè)計(jì)時(shí),在該引腳和GND之間接一個(gè)1000pF的電容,熱插拔時(shí)能進(jìn)行復(fù)位。
1.2、REFCLK+和REFCLK-信號
在一個(gè)處理器系統(tǒng)中,可能含有許多PCIe設(shè)備,這些設(shè)備可以作為Add-In card與PCIe插槽連接,也可以作為內(nèi)置模塊,與處理器系統(tǒng)提供的PCIe鏈路直接相連,而不需要經(jīng)過PCIe插槽。PCIe設(shè)備與PCIe插槽都具有REFCLK+和REFCLK-信號,其中PCIe插槽使用這組信號與處理器系統(tǒng)同步。
在一個(gè)處理器系統(tǒng)中,通常采用專用邏輯向PCIe插槽提供REFCLK+和REFCLK-信號。其中100MHz的時(shí)鐘源由晶振提供,并經(jīng)過一個(gè)“一推多”的差分時(shí)鐘驅(qū)動器生成多個(gè)同相位的時(shí)鐘源,與PCIe插槽一一對應(yīng)連接。
PCIe的REFCLK+/-使用的是LPHCSL電平。
V3.0中關(guān)于Refclk的說明如下:
V4.0中關(guān)于Refclk的說明如下:
Common Refclk Rx architectures are characterized by the Tx and Rx sharing the same Refclk source. A single Refclk source drives both the Generator and the DUT. It is typical that SSC would be applied.
A data clocked Rx architecture is characterized by requiring the receiver’s CDR to track the entirety of the low frequency jitter, including SSC. Since the Tx and Rx do not share a common Refclk, the jitter transfer function includes only the Tx PLL transfer function plus the lowpass characteristics of the CDR.
The 8.0 GT/s PCI Express Base Specification does not explicitly define the requirements for a separate Refclk architecture. This is the identical position taken by the base specification for 2.5 GT/s and 5.0 GT/s.
When tolerancing a PCI Express Rx in a separate Refclk architecture, the generator and DUT are furnished with separate Refclks that each are within ±300 PPM of the nominal frequency of 100 MHz. SSC must be turned off for both Refclk sources. These limitations are required to guarantee proper operation of the buffering and flow control in the Rx.
PCIe插槽需要使用參考時(shí)鐘,其頻率范圍為100MHz±300ppm,單端擺幅為0~0.7V。處理器系統(tǒng)需要為每一個(gè)PCIe插槽、MCH、ICH和Switch提供參考時(shí)鐘。而且要求在一個(gè)處理器系統(tǒng)中,時(shí)鐘驅(qū)動器產(chǎn)生的參考時(shí)鐘信號到每一個(gè)PCIe插槽(MCH、ICH和Swith)的距離差在15英寸之內(nèi)。通常信號的傳播速度接近光速,約為6 in/ns,由此可見,不同PCIe插槽間REFCLK+和REFCLK-信號的傳送延時(shí)差最大約為2.5ns。
當(dāng)PCIe設(shè)備作為Add-In卡連接在PCIe插槽時(shí),可以直接使用PCIe插槽提供的REFCLK+和REFCLK-信號,也可以使用獨(dú)立的參考時(shí)鐘,只要這個(gè)參考時(shí)鐘在100MHz±300ppm范圍內(nèi)即可。內(nèi)置的PCIe設(shè)備與Add-In卡在處理REFCLK+和REFCLK-信號時(shí)使用的方法類似,但是PCIe設(shè)備可以使用獨(dú)立的參考時(shí)鐘,而不使用REFCLK+和REFCLK-信號。
在PCIe設(shè)備配置空間的Link Control Register中,含有一個(gè)“Common Clock Configuration”位。當(dāng)該位為1時(shí),表示該設(shè)備與PCIe鏈路的對端設(shè)備使用“同相位”的參考時(shí)鐘;如果為0,表示該設(shè)備與PCIe鏈路的對端設(shè)備使用的參考時(shí)鐘是異步的。
在PCIe設(shè)備中,“Common Clock Configuration”位的缺省值為0,此時(shí)PCIe設(shè)備使用的參考時(shí)鐘與對端設(shè)備沒有任何聯(lián)系,PCIe鏈路兩端設(shè)備使用的參考時(shí)鐘可以異步設(shè)置。這個(gè)異步時(shí)鐘設(shè)置方法對于使用PCIe鏈路進(jìn)行遠(yuǎn)程連接時(shí)尤為重要。
在一個(gè)處理器系統(tǒng)中,如果使用PCIe鏈路進(jìn)行機(jī)箱到機(jī)箱間的互連,因?yàn)閰⒖紩r(shí)鐘可以異步設(shè)置,機(jī)箱到機(jī)箱之間進(jìn)行數(shù)據(jù)傳送時(shí)僅需要差分信號線即可,而不需要參考時(shí)鐘,從而極大降低了連接難度。
1.3、WAKE#信號
當(dāng)PCIe設(shè)備進(jìn)入休眠狀態(tài),主電源已經(jīng)停止供電時(shí),PCIe設(shè)備使用該信號向處理器系統(tǒng)提交喚醒請求,使處理器系統(tǒng)重新為該P(yáng)CIe設(shè)備提供主電源Vcc。在PCIe總線中,WAKE#信號是可選的,因此使用WAKE#信號喚醒PCIe設(shè)備的機(jī)制也是可選的。值得注意的是產(chǎn)生該信號的硬件邏輯必須使用輔助電源Vaux供電。
WAKE#是一個(gè)Open Drain信號,一個(gè)處理器的所有PCIe設(shè)備可以將WAKE#信號進(jìn)行線與后,統(tǒng)一發(fā)送給處理器系統(tǒng)的電源控制器。當(dāng)某個(gè)PCIe設(shè)備需要被喚醒時(shí),該設(shè)備首先置WAKE#信號有效,然后再經(jīng)過一段延時(shí)之后,處理器系統(tǒng)開始為該設(shè)備提供主電源Vcc,并使用PERST#信號對該設(shè)備進(jìn)行復(fù)位操作。此時(shí)WAKE#信號需要始終保持為低,當(dāng)主電源Vcc上電完成之后,PERST#信號也將置為無效并結(jié)束復(fù)位,WAKE#信號也將隨之置為無效,結(jié)束整個(gè)喚醒過程。
PCIe設(shè)備除了可以使用WAKE#信號實(shí)現(xiàn)喚醒功能外,還可以使用Beacon信號實(shí)現(xiàn)喚醒功能。與WAKE#信號實(shí)現(xiàn)喚醒功能不同,Beacon使用In-band信號,即差分信號D+和D-實(shí)現(xiàn)喚醒功能。Beacon信號DC平衡,由一組通過D+和D-信號生成的脈沖信號組成。這些脈沖信號寬度的最小值為2ns,最大值為16us。當(dāng)PCIe設(shè)備準(zhǔn)備退出L2狀態(tài)(該狀態(tài)為PCIe設(shè)備使用的一種低功耗狀態(tài))時(shí),可以使用Beacon信號,提交喚醒請求。
1.4、SMCLK和SMDAT信號
SMCLK和SMDAT信號與x86處理器的SMBus(System Mangement Bus)相關(guān)。SMBus于1995年由Intel提出,SMBus由SMCLK和SMDAT信號組成。SMBus源于I2C總線,但是與I2C總線存在一些差異。
SMBus的最高總線頻率為100KHz,而I2C總線可以支持400KHz和2MHz的總線頻率。此外SMBus上的從設(shè)備具有超時(shí)功能,當(dāng)從設(shè)備發(fā)現(xiàn)主設(shè)備發(fā)出的時(shí)鐘信號保持低電平超過35ms時(shí),將引發(fā)從設(shè)備的超時(shí)復(fù)位。在正常情況下,SMBus的主設(shè)備使用的總線頻率最低為10KHz,以避免從設(shè)備在正常使用過程中出現(xiàn)超時(shí)。
在SMbus中,如果主設(shè)備需要復(fù)位從設(shè)備時(shí),可以使用這種超時(shí)機(jī)制。而I2C總線只能使用硬件信號才能實(shí)現(xiàn)這種復(fù)位操作,在I2C總線中,如果從設(shè)備出現(xiàn)錯(cuò)誤時(shí),單純通過主設(shè)備是無法復(fù)位從設(shè)備的。
SMBus還支持Alert Response機(jī)制。當(dāng)從設(shè)備產(chǎn)生一個(gè)中斷時(shí),并不會立即清除該中斷,直到主設(shè)備向0b0001100地址發(fā)出命令。
1.5、JTAG信號
JTAG(Joint Test Action Group)是一種國際標(biāo)準(zhǔn)測試協(xié)議,與IEEE 1149.1兼容,主要用于芯片內(nèi)部測試。目前絕大多數(shù)器件都支持JTAG測試標(biāo)準(zhǔn)。JTAG信號由TRST#、TCK、TDI、TDO和TMS信號組成。其中TRST#為復(fù)位信號;TCK為時(shí)鐘信號;TDI和TDO分別與數(shù)據(jù)輸入和數(shù)據(jù)輸出對應(yīng);而TMS信號為模式選擇。
1.6、PRSNT1#和PRSNT2#信號
PRSNT1#和PRSNT2#信號與PCIe設(shè)備的熱插拔相關(guān)。在基于PCIe總線的Add-in卡中,PRSNT1#和PRSNT2#信號直接相連,而在處理器主板中,PRSNT1#信號接地,而PRSNT2#信號通過上拉電阻接為高。
當(dāng)Add-In卡沒有插入時(shí),處理器主板的PRSNT2#信號由上拉電阻接為高,而當(dāng)Add-In卡插入時(shí)主板的PRSNT2#信號將與PRSNT1#信號通過Add-In卡連通,此時(shí)PRSNT2#信號為低。處理器主板的熱插拔控制邏輯將捕獲這個(gè)“低電平”,得知Add-In卡已經(jīng)插入,從而觸發(fā)系統(tǒng)軟件進(jìn)行相應(yīng)地處理。
Add-In卡拔出的工作機(jī)制與插入類似。當(dāng)Add-in卡連接在處理器主板時(shí),處理器主板的PRSNT2#信號為低,當(dāng)Add-In卡拔出后,處理器主板的PRSNT2#信號為高。處理器主板的熱插拔控制邏輯將捕獲這個(gè)“高電平”,得知Add-In卡已經(jīng)被拔出,從而觸發(fā)系統(tǒng)軟件進(jìn)行相應(yīng)地處理。
不同的處理器系統(tǒng)處理PCIe設(shè)備熱拔插的過程并不相同,在一個(gè)實(shí)際的處理器系統(tǒng)中,熱拔插設(shè)備的實(shí)現(xiàn)也遠(yuǎn)比上圖中的示例復(fù)雜得多。值得注意的是,在實(shí)現(xiàn)熱拔插功能時(shí),Add-in Card需要使用“長短針”結(jié)構(gòu)。
PRSNT1#和PRSNT2#信號使用的金手指長度是其他信號的一半。因此當(dāng)PCIe設(shè)備插入插槽時(shí),PRSNT1#和PRSNT2#信號在其他金手指與PCIe插槽完全接觸,并經(jīng)過一段延時(shí)后,才能與插槽完全接觸;當(dāng)PCIe設(shè)備從PCIe插槽中拔出時(shí),這兩個(gè)信號首先與PCIe插槽斷連,再經(jīng)過一段延時(shí)后,其他信號才能與插槽斷連。系統(tǒng)軟件可以使用這段延時(shí),進(jìn)行一些熱拔插處理。
2、數(shù)據(jù)信號
PCIe鏈路使用“端到端的數(shù)據(jù)傳送方式”,發(fā)送端和接收端中都含有TX(發(fā)送邏輯)和RX(接收邏輯),PCIe總線鏈路的一個(gè)數(shù)據(jù)通路(Lane)中,由兩組差分信號,共4根信號線組成,TXn/TXp和RXn/RXp,x1就包含一個(gè)Lane,x2就包含兩個(gè)Lane。
3、電源
PCIe接口的電源包括+12V、+3.3V、+3.3Vaux三種。每一種電源的供電能力將在后面的文章《PCIx系列之“PCIe總線電源管理”》中有詳細(xì)說明。
以上就是針對PCIe總線的信號介紹,后續(xù)會針對電源管理、復(fù)位、AC耦合電容、硬件電路設(shè)計(jì)等方面介紹PCIe總線。
評論
查看更多