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