Hi,我是小杜。PCIe作為高速傳輸總線,使用差分信號線傳輸數(shù)據(jù),支持多通道鏈路。但由于設(shè)計(jì)需求和布局限制,可能需要在設(shè)備之間或主板上調(diào)整PCIe通道走向,因此可能會產(chǎn)生信號極性和通道順序的問題,如處理不當(dāng)會造成數(shù)據(jù)解析錯(cuò)誤、損害信號質(zhì)量等后果。PCIe規(guī)范考慮到這一點(diǎn),提出了通道極性翻轉(zhuǎn)和通道順序翻轉(zhuǎn)的解決方案,小杜來講一下此過程。小杜經(jīng)驗(yàn)尚淺,如有錯(cuò)誤,還請批評指正。
信號極性翻轉(zhuǎn)
PCIe使用差分信號對來傳輸數(shù)據(jù),即通過兩根電氣線傳輸,每根線攜帶相同的信號,但電壓極性相反,稱為正極(D+)和負(fù)極(D-)。通常發(fā)射端的D+直接連接到接收器的D+,D-同理。如下圖所示,發(fā)射端Tx,中間連接器Connector和接收端Rx的D+、D-一一對應(yīng)。
但由于布局布線等原因,Tx的D+可能和接受端的D-連接。對于Rx來說,它們并不知道和對端的電氣線具體是如何連接的,正負(fù)極接反會導(dǎo)致Rx解析出相反的數(shù)據(jù),比如1010解析為0101(所有bit都相反)。
PCIe協(xié)議考慮到了這一點(diǎn),提供了在訓(xùn)練階段各通道Rx自動識別并調(diào)整其極性的方法。當(dāng)鏈路訓(xùn)練進(jìn)入到Polling階段時(shí),Rx可以通過識別TS1 OS的TS1 OS Identifier Symbol(TS1 OS識別符)來判斷通道當(dāng)前極性,以Symbol 10到15為例,當(dāng)識別到4Ah(0100_1010)時(shí)表示通道極性正常,當(dāng)識別到B5h(1011_0101)時(shí)則表明D+接到了D-上,此時(shí)Rx需要自動按相反極性解析收到的數(shù)據(jù)。只有當(dāng)鏈路所有的通道都正確地受到4Ah后才會進(jìn)一步解析訓(xùn)練序列中攜帶的信息。
通道位置翻轉(zhuǎn)
考慮另一種情況,如果Tx端從上到下是Lane3 ~ Lane0,而Rx端是Lane0~Lane3,這種情況稱為通道位置反轉(zhuǎn),此時(shí)#Lane0的引腳會接到#Lane3的引腳上。由于TLP和DLLP的傳輸對通道順序有要求,比如STP和SDP必須放置在Lane0,因此鏈路訓(xùn)練時(shí)一側(cè)需要根據(jù)各Lane受到的訓(xùn)練序列來翻轉(zhuǎn)其通道順序,以實(shí)現(xiàn)Tx和Rx的通道順序匹配,當(dāng)通道順序翻轉(zhuǎn)時(shí)需要翻轉(zhuǎn)所有通道。
一些PCIe金手指有防呆口設(shè)計(jì),可以避免通道順序翻轉(zhuǎn)的情況,但對于焊在主板上的PCIe芯片,可能會出現(xiàn)兩端通道順序相反的情況。如果不進(jìn)行通道位置翻轉(zhuǎn),就需要使用PCB導(dǎo)孔換層來解決,這會降低高速信號質(zhì)量,所以推薦PCIe設(shè)備支持通道位置翻轉(zhuǎn)功能。
當(dāng)然,信號極性翻轉(zhuǎn)和通道順序翻轉(zhuǎn)可能會同時(shí)出現(xiàn),如下圖所示,Tx/Connector/Rx之間通道順序相反,4條Lane的極性也相反。????????????????????????????????????????????????????
通過上述說明可以看出即使出現(xiàn)了通道極性和順序的問題,PCIe鏈路訓(xùn)練也可以自動完成通道間的匹配,這通常對用戶來說是無感的。只有確保各通道連接正確,才能正常解析數(shù)據(jù),繼續(xù)后續(xù)的鏈路訓(xùn)練步驟。感謝你耐心地看到這里。
-
信號
+關(guān)注
關(guān)注
11文章
2772瀏覽量
76531 -
總線
+關(guān)注
關(guān)注
10文章
2857瀏覽量
87893 -
PCIe
+關(guān)注
關(guān)注
15文章
1200瀏覽量
82340 -
負(fù)極
+關(guān)注
關(guān)注
0文章
65瀏覽量
9442
原文標(biāo)題:【PCIe】鏈路訓(xùn)練 - 通道極性和順序翻轉(zhuǎn)
文章出處:【微信號:小杜的芯片驗(yàn)證日記,微信公眾號:小杜的芯片驗(yàn)證日記】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論