本篇主要介紹PCIe總線相關(guān)的信號(hào)。
PCIe總線相關(guān)的信號(hào)主要分為以下幾類:
輔助信號(hào)線
數(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#信號(hào)
該信號(hào)為全局復(fù)位信號(hào),由處理器系統(tǒng)提供(RC),處理器系統(tǒng)需要為PCIe插槽和PCIe設(shè)備提供該復(fù)位信號(hào)。PCIe設(shè)備使用該信號(hào)復(fù)位內(nèi)部邏輯。當(dāng)該信號(hào)有效時(shí),PCIe設(shè)備將進(jìn)行復(fù)位操作。PCIe總線定義了多種復(fù)位方式,其中Cold Reset和Warm Reset這兩種復(fù)位方式的實(shí)現(xiàn)與該信號(hào)有關(guān)。
為了支持熱插拔,在原理圖設(shè)計(jì)時(shí),在該引腳和GND之間接一個(gè)1000pF的電容,熱插拔時(shí)能進(jìn)行復(fù)位。
1.2、REFCLK+和REFCLK-信號(hào)
在一個(gè)處理器系統(tǒng)中,可能含有許多PCIe設(shè)備,這些設(shè)備可以作為Add-In card與PCIe插槽連接,也可以作為內(nèi)置模塊,與處理器系統(tǒng)提供的PCIe鏈路直接相連,而不需要經(jīng)過(guò)PCIe插槽。PCIe設(shè)備與PCIe插槽都具有REFCLK+和REFCLK-信號(hào),其中PCIe插槽使用這組信號(hào)與處理器系統(tǒng)同步。
在一個(gè)處理器系統(tǒng)中,通常采用專用邏輯向PCIe插槽提供REFCLK+和REFCLK-信號(hào)。其中100MHz的時(shí)鐘源由晶振提供,并經(jīng)過(guò)一個(gè)“一推多”的差分時(shí)鐘驅(qū)動(dòng)器生成多個(gè)同相位的時(shí)鐘源,與PCIe插槽一一對(duì)應(yīng)連接。
PCIe的REFCLK+/-使用的是LPHCSL電平。
V3.0中關(guān)于Refclk的說(shuō)明如下:
V4.0中關(guān)于Refclk的說(shuō)明如下:
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ū)動(dòng)器產(chǎn)生的參考時(shí)鐘信號(hào)到每一個(gè)PCIe插槽(MCH、ICH和Swith)的距離差在15英寸之內(nèi)。通常信號(hào)的傳播速度接近光速,約為6 in/ns,由此可見(jiàn),不同PCIe插槽間REFCLK+和REFCLK-信號(hào)的傳送延時(shí)差最大約為2.5ns。
當(dāng)PCIe設(shè)備作為Add-In卡連接在PCIe插槽時(shí),可以直接使用PCIe插槽提供的REFCLK+和REFCLK-信號(hào),也可以使用獨(dú)立的參考時(shí)鐘,只要這個(gè)參考時(shí)鐘在100MHz±300ppm范圍內(nèi)即可。內(nèi)置的PCIe設(shè)備與Add-In卡在處理REFCLK+和REFCLK-信號(hào)時(shí)使用的方法類似,但是PCIe設(shè)備可以使用獨(dú)立的參考時(shí)鐘,而不使用REFCLK+和REFCLK-信號(hào)。
在PCIe設(shè)備配置空間的Link Control Register中,含有一個(gè)“Common Clock Configuration”位。當(dāng)該位為1時(shí),表示該設(shè)備與PCIe鏈路的對(duì)端設(shè)備使用“同相位”的參考時(shí)鐘;如果為0,表示該設(shè)備與PCIe鏈路的對(duì)端設(shè)備使用的參考時(shí)鐘是異步的。
在PCIe設(shè)備中,“Common Clock Configuration”位的缺省值為0,此時(shí)PCIe設(shè)備使用的參考時(shí)鐘與對(duì)端設(shè)備沒(méi)有任何聯(lián)系,PCIe鏈路兩端設(shè)備使用的參考時(shí)鐘可以異步設(shè)置。這個(gè)異步時(shí)鐘設(shè)置方法對(duì)于使用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í)僅需要差分信號(hào)線即可,而不需要參考時(shí)鐘,從而極大降低了連接難度。
1.3、WAKE#信號(hào)
當(dāng)PCIe設(shè)備進(jìn)入休眠狀態(tài),主電源已經(jīng)停止供電時(shí),PCIe設(shè)備使用該信號(hào)向處理器系統(tǒng)提交喚醒請(qǐng)求,使處理器系統(tǒng)重新為該P(yáng)CIe設(shè)備提供主電源Vcc。在PCIe總線中,WAKE#信號(hào)是可選的,因此使用WAKE#信號(hào)喚醒PCIe設(shè)備的機(jī)制也是可選的。值得注意的是產(chǎn)生該信號(hào)的硬件邏輯必須使用輔助電源Vaux供電。
WAKE#是一個(gè)Open Drain信號(hào),一個(gè)處理器的所有PCIe設(shè)備可以將WAKE#信號(hào)進(jìn)行線與后,統(tǒng)一發(fā)送給處理器系統(tǒng)的電源控制器。當(dāng)某個(gè)PCIe設(shè)備需要被喚醒時(shí),該設(shè)備首先置WAKE#信號(hào)有效,然后再經(jīng)過(guò)一段延時(shí)之后,處理器系統(tǒng)開(kāi)始為該設(shè)備提供主電源Vcc,并使用PERST#信號(hào)對(duì)該設(shè)備進(jìn)行復(fù)位操作。此時(shí)WAKE#信號(hào)需要始終保持為低,當(dāng)主電源Vcc上電完成之后,PERST#信號(hào)也將置為無(wú)效并結(jié)束復(fù)位,WAKE#信號(hào)也將隨之置為無(wú)效,結(jié)束整個(gè)喚醒過(guò)程。
PCIe設(shè)備除了可以使用WAKE#信號(hào)實(shí)現(xiàn)喚醒功能外,還可以使用Beacon信號(hào)實(shí)現(xiàn)喚醒功能。與WAKE#信號(hào)實(shí)現(xiàn)喚醒功能不同,Beacon使用In-band信號(hào),即差分信號(hào)D+和D-實(shí)現(xiàn)喚醒功能。Beacon信號(hào)DC平衡,由一組通過(guò)D+和D-信號(hào)生成的脈沖信號(hào)組成。這些脈沖信號(hào)寬度的最小值為2ns,最大值為16us。當(dāng)PCIe設(shè)備準(zhǔn)備退出L2狀態(tài)(該狀態(tài)為PCIe設(shè)備使用的一種低功耗狀態(tài))時(shí),可以使用Beacon信號(hào),提交喚醒請(qǐng)求。
1.4、SMCLK和SMDAT信號(hào)
SMCLK和SMDAT信號(hào)與x86處理器的SMBus(System Mangement Bus)相關(guān)。SMBus于1995年由Intel提出,SMBus由SMCLK和SMDAT信號(hào)組成。SMBus源于I2C總線,但是與I2C總線存在一些差異。
SMBus的最高總線頻率為100KHz,而I2C總線可以支持400KHz和2MHz的總線頻率。此外SMBus上的從設(shè)備具有超時(shí)功能,當(dāng)從設(shè)備發(fā)現(xiàn)主設(shè)備發(fā)出的時(shí)鐘信號(hào)保持低電平超過(guò)35ms時(shí),將引發(fā)從設(shè)備的超時(shí)復(fù)位。在正常情況下,SMBus的主設(shè)備使用的總線頻率最低為10KHz,以避免從設(shè)備在正常使用過(guò)程中出現(xiàn)超時(shí)。
在SMbus中,如果主設(shè)備需要復(fù)位從設(shè)備時(shí),可以使用這種超時(shí)機(jī)制。而I2C總線只能使用硬件信號(hào)才能實(shí)現(xiàn)這種復(fù)位操作,在I2C總線中,如果從設(shè)備出現(xiàn)錯(cuò)誤時(shí),單純通過(guò)主設(shè)備是無(wú)法復(fù)位從設(shè)備的。
SMBus還支持Alert Response機(jī)制。當(dāng)從設(shè)備產(chǎn)生一個(gè)中斷時(shí),并不會(huì)立即清除該中斷,直到主設(shè)備向0b0001100地址發(fā)出命令。
1.5、JTAG信號(hào)
JTAG(Joint Test Action Group)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,與IEEE 1149.1兼容,主要用于芯片內(nèi)部測(cè)試。目前絕大多數(shù)器件都支持JTAG測(cè)試標(biāo)準(zhǔn)。JTAG信號(hào)由TRST#、TCK、TDI、TDO和TMS信號(hào)組成。其中TRST#為復(fù)位信號(hào);TCK為時(shí)鐘信號(hào);TDI和TDO分別與數(shù)據(jù)輸入和數(shù)據(jù)輸出對(duì)應(yīng);而TMS信號(hào)為模式選擇。
1.6、PRSNT1#和PRSNT2#信號(hào)
PRSNT1#和PRSNT2#信號(hào)與PCIe設(shè)備的熱插拔相關(guān)。在基于PCIe總線的Add-in卡中,PRSNT1#和PRSNT2#信號(hào)直接相連,而在處理器主板中,PRSNT1#信號(hào)接地,而PRSNT2#信號(hào)通過(guò)上拉電阻接為高。
當(dāng)Add-In卡沒(méi)有插入時(shí),處理器主板的PRSNT2#信號(hào)由上拉電阻接為高,而當(dāng)Add-In卡插入時(shí)主板的PRSNT2#信號(hào)將與PRSNT1#信號(hào)通過(guò)Add-In卡連通,此時(shí)PRSNT2#信號(hào)為低。處理器主板的熱插拔控制邏輯將捕獲這個(gè)“低電平”,得知Add-In卡已經(jīng)插入,從而觸發(fā)系統(tǒng)軟件進(jìn)行相應(yīng)地處理。
Add-In卡拔出的工作機(jī)制與插入類似。當(dāng)Add-in卡連接在處理器主板時(shí),處理器主板的PRSNT2#信號(hào)為低,當(dāng)Add-In卡拔出后,處理器主板的PRSNT2#信號(hào)為高。處理器主板的熱插拔控制邏輯將捕獲這個(gè)“高電平”,得知Add-In卡已經(jīng)被拔出,從而觸發(fā)系統(tǒng)軟件進(jìn)行相應(yīng)地處理。
不同的處理器系統(tǒng)處理PCIe設(shè)備熱拔插的過(guò)程并不相同,在一個(gè)實(shí)際的處理器系統(tǒng)中,熱拔插設(shè)備的實(shí)現(xiàn)也遠(yuǎn)比上圖中的示例復(fù)雜得多。值得注意的是,在實(shí)現(xiàn)熱拔插功能時(shí),Add-in Card需要使用“長(zhǎng)短針”結(jié)構(gòu)。
PRSNT1#和PRSNT2#信號(hào)使用的金手指長(zhǎng)度是其他信號(hào)的一半。因此當(dāng)PCIe設(shè)備插入插槽時(shí),PRSNT1#和PRSNT2#信號(hào)在其他金手指與PCIe插槽完全接觸,并經(jīng)過(guò)一段延時(shí)后,才能與插槽完全接觸;當(dāng)PCIe設(shè)備從PCIe插槽中拔出時(shí),這兩個(gè)信號(hào)首先與PCIe插槽斷連,再經(jīng)過(guò)一段延時(shí)后,其他信號(hào)才能與插槽斷連。系統(tǒng)軟件可以使用這段延時(shí),進(jìn)行一些熱拔插處理。
2、數(shù)據(jù)信號(hào)
PCIe鏈路使用“端到端的數(shù)據(jù)傳送方式”,發(fā)送端和接收端中都含有TX(發(fā)送邏輯)和RX(接收邏輯),PCIe總線鏈路的一個(gè)數(shù)據(jù)通路(Lane)中,由兩組差分信號(hào),共4根信號(hào)線組成,TXn/TXp和RXn/RXp,x1就包含一個(gè)Lane,x2就包含兩個(gè)Lane。
3、電源
PCIe接口的電源包括+12V、+3.3V、+3.3Vaux三種。每一種電源的供電能力將在后面的文章《PCIx系列之“PCIe總線電源管理”》中有詳細(xì)說(shuō)明。
以上就是針對(duì)PCIe總線的信號(hào)介紹,后續(xù)會(huì)針對(duì)電源管理、復(fù)位、AC耦合電容、硬件電路設(shè)計(jì)等方面介紹PCIe總線。
評(píng)論