0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺析PCIE總線信號(hào)分布及使用情況

電子工程師 ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-10-18 08:41 ? 次閱讀

PCI-Express簡(jiǎn)稱PCI-E于2001年春季由Intel公司提出。隨后在2001年底,包括Intel、AMD、DELL、IBM在內(nèi)的20多家業(yè)界主導(dǎo)公司開(kāi)始起草新技術(shù)的規(guī)范,并在2002年底完成,對(duì)其正式命名為PCIExress。

PCI-Express的接口根據(jù)總線帶寬不同而有所差異,包括X1、X4、X8以及X16(X2)模式用于內(nèi)部接口而非插槽模式。較短的PCI-Express卡可以插入較長(zhǎng)的PCI-Express插槽中使用。

PCI-E1X的網(wǎng)卡

PCI-E4X的雙端口網(wǎng)卡

PCI-E16X的顯卡

PCI-Express接口連接器

PCIe電源有+12V、+3.3Vcc和+3.3Vaux。其中+12V主要給PCIe設(shè)備(如顯卡)提供更大的供電能力(PCIe3.0的插槽最大有150w)。

PCIe設(shè)備使用兩種電源信號(hào)供電,分別是Vcc與Vaux,其額定電壓為3.3V。其中Vcc為主電源,PCIe設(shè)備使用的主要邏輯模塊均使用Vcc供電,而一些與電源管理相關(guān)的邏輯使用Vaux供電。在PCIe設(shè)備中,一些特殊的寄存器通常使用Vaux供電,如StickyRegister,此時(shí)即使PCIe設(shè)備的Vcc被移除,這些與電源管理相關(guān)的邏輯狀態(tài)和這些特殊寄存器的內(nèi)容也不會(huì)發(fā)生改變。

在PCIe總線中,使用Vaux的主要原因是為了降低功耗和縮短系統(tǒng)恢復(fù)時(shí)間。因?yàn)閂aux在多數(shù)情況下并不會(huì)被移除,因此當(dāng)PCIe設(shè)備的Vcc恢復(fù)后,該設(shè)備不用重新恢復(fù)使用Vaux供電的邏輯,從而設(shè)備可以很快地恢復(fù)到正常工作狀狀態(tài)。

PCIe鏈路的最大寬度為×32,但是在實(shí)際應(yīng)用中,×32的鏈路寬度極少使用。在一個(gè)處理器系統(tǒng)中,一般提供×16的PCIe插槽,并使用PETp0~15、PETn0~15和PERp0~15、PERn0~15共64根信號(hào)線組成32對(duì)差分信號(hào),其中16對(duì)PETxx信號(hào)用于發(fā)送鏈路,另外16對(duì)PERxx信號(hào)用于接收鏈路。除此之外PCIe總線還使用了下列輔助信號(hào)。

1PERST#信號(hào)

該信號(hào)為全局復(fù)位信號(hào),由處理器系統(tǒng)提供,處理器系統(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ù)位操作。

2REFCLK+和REFCLK-信號(hào)

在一個(gè)處理器系統(tǒng)中,可能含有許多PCIe設(shè)備,這些設(shè)備可以作為Add-In卡與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)連接。

參考時(shí)鐘與PCIE插槽的連接

PCIe插槽需要使用參考時(shí)鐘,其頻率范圍為100MHz±300ppm。處理器系統(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)的傳播速度接近光速,約為6inch/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è)備配置空間的LinkControlRegister中,含有一個(gè)“CommonClockConfiguration”位。當(dāng)該位為1時(shí),表示該設(shè)備與PCIe鏈路的對(duì)端設(shè)備使用“同相位”的參考時(shí)鐘;如果為0,表示該設(shè)備與PCIe鏈路的對(duì)端設(shè)備使用的參考時(shí)鐘是異步的。

在PCIe設(shè)備中,“CommonClockConfiguration”位的缺省值為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í)鐘,從而極大降低了連接難度。

3WAKE#信號(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è)OpenDrain信號(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)求。

4SMCLK和SMDAT信號(hào)

SMCLK和SMDAT信號(hào)與x86處理器的SMBus(SystemMangementBus)相關(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在x86處理器系統(tǒng)中得到了大規(guī)模普及,其主要作用是管理處理器系統(tǒng)的外部設(shè)備,并收集外設(shè)的運(yùn)行信息,特別是一些與智能電源管理相關(guān)的信息。PCI和PCIe插槽也為SMBus預(yù)留了接口,以便于PCI/PCIe設(shè)備與處理器系統(tǒng)進(jìn)行交互。

5JTAG信號(hào)

JTAG(JointTestActionGroup)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,與IEEE1149.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)為模式選擇。

JTAG允許多個(gè)器件通過(guò)JTAG接口串聯(lián)在一起,并形成一個(gè)JTAG鏈。目前FPGA和EPLD可以借用JTAG接口實(shí)現(xiàn)在線編程ISP(In-SystemProgramming)功能。處理器也可以使用JTAG接口進(jìn)行系統(tǒng)級(jí)調(diào)試工作,如設(shè)置斷點(diǎn)、讀取內(nèi)部寄存器和存儲(chǔ)器等一系列操作。除此之外JTAG接口也可用作“逆向工程”,分析一個(gè)產(chǎn)品的實(shí)現(xiàn)細(xì)節(jié),因此在正式產(chǎn)品中,一般不保留JTAG接口。

6PRSNT1#和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ò)上拉電阻接為高。PCIe設(shè)備的熱插拔結(jié)構(gòu)如下圖所示。

PCIE設(shè)備的熱插拔

如上圖所示,當(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)比圖43中的示例復(fù)雜得多。值得注意的是,在實(shí)現(xiàn)熱拔插功能時(shí),Add-inCard需要使用“長(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)行一些熱拔插處理。

以上信號(hào)中,REFCLK-/REFCLK+差分信號(hào);PERST復(fù)位信號(hào);WAKE#信號(hào);PRSNT1#和PRSNT2#信號(hào);這些信號(hào)是必須存在的。

SMCLK;SMDAT;JTAG(TRST#、TCK、TDI、TDO、TMS);這些是擴(kuò)展功能,可有可無(wú)。

下圖為PCIE插槽的管腳信號(hào)排布。

PCIE管腳信號(hào)排布

好啦,以上就是凡億為大家整理的關(guān)于PCIE總線的知識(shí),凡億PCB將持續(xù)為你帶來(lái)更多精彩的PCB設(shè)計(jì)專業(yè)知識(shí)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2859

    瀏覽量

    87914
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1200

    瀏覽量

    82353

原文標(biāo)題:關(guān)于PCIE總線,你必須要知道的信號(hào)分布及使用情況

文章出處:【微信號(hào):FANYPCB,微信公眾號(hào):凡億PCB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    rtthread編譯后如何查看堆??臻g使用情況?

    rtthread編譯后如何查看堆棧空間使用情況,現(xiàn)在只能在編譯完成后看到總大小,有沒(méi)有辦法能看到詳細(xì)的使用情況。 由于RAM只有128K,除去內(nèi)存池32k,想看看剩余的RAM在哪用了
    發(fā)表于 03-05 07:58

    CUBEIDE運(yùn)行完可以看RAM的使用情況,運(yùn)行中可以實(shí)時(shí)查看RAM的使用情況嗎?

    CUBEIDE運(yùn)行完可以看RAM的使用情況,運(yùn)行中可以實(shí)時(shí)查看RAM的使用情況嗎?以及負(fù)載情況? 圖片是運(yùn)行完可以看RAM使用情況,是否可以運(yùn)行中實(shí)時(shí)查看?是不是cubemonito
    發(fā)表于 03-12 07:56

    linux的系統(tǒng)內(nèi)存使用情況查看

    通過(guò)free命令可以查看系統(tǒng)內(nèi)存使用情況
    發(fā)表于 07-15 06:43

    如何查看RAM使用情況?

    嗨, 我正在使用STM32L053 Nucleo,我已經(jīng)為它運(yùn)行了一些代碼,我希望做一個(gè)RAM估計(jì)來(lái)查看當(dāng)前固件的RAM使用情況。如何查看RAM使用情況? 問(wèn)候#記憶
    發(fā)表于 08-05 10:08

    Android應(yīng)用的內(nèi)存使用情況檢查方法

    如何檢查 Android 應(yīng)用的內(nèi)存使用情況
    發(fā)表于 03-30 13:36

    ucosiii堆棧使用情況檢測(cè)使用率100%?

    用OSTaskStkChk函數(shù)檢測(cè)堆棧的使用情況,發(fā)現(xiàn)有兩個(gè)任務(wù)使用情況為100%,堆棧設(shè)置為1024,增大堆棧到2048,依然使用率100%,該任務(wù)代碼很短,一直運(yùn)行,雖然使用率100%,但是程序正常運(yùn)行并未崩潰,請(qǐng)問(wèn)這是由于什么原因造成堆棧檢測(cè)使用率100%?
    發(fā)表于 04-20 22:56

    電池使用情況統(tǒng)計(jì)信息

    電池使用情況信息根據(jù)電池使用情況統(tǒng)計(jì)信息和電源配置文件中的值計(jì)算得出。電池使用情況統(tǒng)計(jì)信息框架可通過(guò)跟蹤設(shè)備組件在不同狀態(tài)下維持的時(shí)間來(lái)自動(dòng)確定電池使用情況統(tǒng)計(jì)信息。當(dāng)組件(WLAN
    發(fā)表于 12-31 07:01

    SoC如何查看內(nèi)存使用情況

    查看系統(tǒng)內(nèi)存: free -h 查看ION內(nèi)存 NPU內(nèi)存使用情況: cat /sys/kernel/debug/ion/bm_npu_heap_dump/summary | head -2VPU
    發(fā)表于 09-19 07:23

    主流GPS芯片使用情況

    主流GPS芯片使用情況
    發(fā)表于 11-27 14:34 ?13次下載

    單片機(jī)整體的CPU使用情況詳細(xì)介紹

    打開(kāi)電腦的任務(wù)管理器,看著跳動(dòng)的 CPU 使用率,發(fā)現(xiàn)很舒服。每一個(gè)線程占用了多少 CPU 清清楚楚,也就能針對(duì)性的確認(rèn)為啥你的電腦跑的慢了。今天這篇筆記不講每個(gè)任務(wù)(或線程)CPU 的使用情況,而是單片機(jī)整體的 CPU 使用情況,先易后難嘛。
    發(fā)表于 11-25 15:58 ?12次下載
    單片機(jī)整體的CPU<b class='flag-5'>使用情況</b>詳細(xì)介紹

    STM32/KEIL/MDK 查看 FLASH 和 RAM 使用情況

    STM32/KEIL/MDK 查看 FLASH 和 RAM 使用情況
    發(fā)表于 12-02 09:06 ?13次下載
    STM32/KEIL/MDK 查看 FLASH 和 RAM <b class='flag-5'>使用情況</b>

    Windows查看電源使用情況

    這里使用Windows自帶的東西查看電源使用情況。1.按Win鍵+R,輸入cmd,回車。2.輸入Powercfg /batteryreport回車。3.根據(jù)提示找到電池報(bào)告文件,雙擊打開(kāi)即可。????...
    發(fā)表于 01-05 14:18 ?0次下載
    Windows查看電源<b class='flag-5'>使用情況</b>

    LPC86x上的開(kāi)關(guān)矩陣使用情況

    電子發(fā)燒友網(wǎng)站提供《LPC86x上的開(kāi)關(guān)矩陣使用情況.pdf》資料免費(fèi)下載
    發(fā)表于 08-17 10:48 ?0次下載
    LPC86x上的開(kāi)關(guān)矩陣<b class='flag-5'>使用情況</b>

    LPC86x ACMP使用情況

    電子發(fā)燒友網(wǎng)站提供《LPC86x ACMP使用情況.pdf》資料免費(fèi)下載
    發(fā)表于 08-17 10:34 ?0次下載
    LPC86x ACMP<b class='flag-5'>使用情況</b>

    LPC86x ADC使用情況

    電子發(fā)燒友網(wǎng)站提供《LPC86x ADC使用情況.pdf》資料免費(fèi)下載
    發(fā)表于 08-16 10:42 ?0次下載
    LPC86x ADC<b class='flag-5'>使用情況</b>