PCI Express(PCIe)是一個嵌入式系統(tǒng)普遍采用的接口,提供一些關(guān)鍵的優(yōu)勢包括自動檢測,通道配置,強大的誤差檢測和糾正,高通道到通道的偏差容許量和低功耗。因為該接口的能力和多功能性,設(shè)計師有時需要調(diào)試錯誤的PCIe連接。Reginald介紹了設(shè)計人員改如何去解決這個問題。
當(dāng)調(diào)試1個PCIe通道,沒有顯示鏈接的跡象,設(shè)計人員可以采取幾個步驟來解決這個問題。首先,確認(rèn)沒有任何鏈路終端設(shè)備是停留在復(fù)位狀態(tài)。下一步,探測信號線,并確保它們是正確的水平。此外,檢查是否有根據(jù)數(shù)據(jù)手冊規(guī)定的參考時鐘提供給兩個設(shè)備。非擴頻時鐘必須限制在PCIe ± 300ppm。如果需要用到擴頻時鐘,它必須是向下擴頻,而且這兩個系統(tǒng)必須工作在一個共同的時鐘之下。
另一個步驟是檢查是否有用不正確的或有損壞的旁路電容,確保電容器處于75至200 nF而且完好。最重要的是驗證一個鏈接的最內(nèi)層和最外層的通道。對于多通道連接,PCIe通訊協(xié)定允許從最高的通道或者最低的通道開始進行自動向下協(xié)商鏈接。鏈路寬度減少到x1并檢查是否能鏈接上。如果寄存器訪問或鏈接的分離是不可能的,則移除其余鏈接的旁路電容。
減少信號速度需要從一個變量的方程中得出。雖然是罕見的,但有些Gen1的設(shè)備連接到Gen2的設(shè)備時會有錯誤產(chǎn)生。為了解決這些不兼容的的終端設(shè)備,PCIe設(shè)備供應(yīng)商通常提供一些特殊的特性來使得Gen2轉(zhuǎn)換并自動協(xié)調(diào)速度回到Gen1的默認(rèn)值來鏈接。
如果在采取這些步驟之后仍然沒有連接,這意味著通道的距離構(gòu)成問題。當(dāng)工作在遠(yuǎn)距離中(15’’至20’’或更長),如果通道均衡設(shè)置比較差,也沒有更高級別的管理器和系統(tǒng)計時器限制重試,PCIe-Gen2設(shè)備會在在Gen1和Gen2速率上自動來回循環(huán)的進協(xié)商。如果該鏈接是15’’或更長的距離,改變接收器均衡水平和(或者)發(fā)送器預(yù)加重可能能有效的解決問題。
另外一個步驟是檢查接收器偵測的特定設(shè)備的屏蔽寄存器。忽略接收器的偵測并允許該設(shè)備立即發(fā)送鏈接協(xié)議。發(fā)送鏈接系列信號到Rx會初始化適當(dāng)?shù)逆溄游帐謪f(xié)議。
如果這些步驟不起作用,可能有必要在兩個不連接的設(shè)備間安置一個邏輯分析儀。當(dāng)沒有邏輯分析儀時,在一些PCIe交換器中有一種內(nèi)部的調(diào)試偵測工具可以跟蹤鏈接的狀態(tài),執(zhí)行基本觸發(fā)以及提供有價值的的芯片狀態(tài)和鏈接狀態(tài)。
部分連接
因為為了設(shè)置均衡器達(dá)到更長的連接,解決邊緣系統(tǒng)時鐘和傳統(tǒng)協(xié)議錯誤的問題,系統(tǒng)工作在Gen1而不是在Gen2連接,那么請嘗試增加通道的均衡。確認(rèn)時鐘源滿足Gen2抖動的要求也可以解決此問題。即使是Gen2,首先保證連接能在Gen1的速率上鏈接,因此未能在Gen2上鏈接往往是通道質(zhì)量和均衡需求的結(jié)果。鑒于這一事實,設(shè)計人員應(yīng)該:
* 確保鏈接的兩端都是適用于Gen2
* 確認(rèn)PCIe參考時鐘抖動在變動規(guī)范內(nèi)
* 確認(rèn)強制工作在Gen1是否是穩(wěn)固的連接
* 測試特定寄存器,盡可能調(diào)整寄存器去降低空閑的電氣的閥值。
* 如果此鏈接長度是10’’至15’’或者更多,整Rx和Tx均衡器(如圖示1和2所示)
圖1:一個接收器Rx信號在均衡之前阻止的范圍。
圖2: 在均衡調(diào)整之后的Rx信號,最后,設(shè)計人員應(yīng)該仔細(xì)的檢查正誤表,那么答案可能就在那里。