串行總線技術(shù)(二)-串行總線中的先進設計理念及SerDes/PMA介紹字節(jié)分割/鏈路聚合下面以PCIe為例對字節(jié)分割加以討論,如圖所示。
PCIe使用鏈路和線路來發(fā)送串行數(shù)據(jù)。鏈路是一個邏輯實體,能夠具有單個線路或多個線路。當邏輯鏈路包括一個線路時,TLP和DLLP通過單一的線路發(fā)送,每次發(fā)送一字節(jié)。
當鏈路包括多個線路時,TLP和DLLP分布在多個線路中,此時不是在不同的線路中發(fā)送不同的TLP而是所有的線路共同發(fā)送TLP在一個x4 PCIe鏈路(擁有4條線路)中,第一字節(jié)通過線路0、第二字節(jié)通過線路1、第三字節(jié)通過線路2、第四字節(jié)通過線路3、第五字節(jié)又回到線路0進行傳輸。這種傳輸機制被稱為字節(jié)分割,字節(jié)分割在連續(xù)的線路上持續(xù)進行,直到最后一字節(jié)被發(fā)送。
正如我們所注意到的,可以通過使用更寬的鏈路來增加帶寬。一個X4鏈路發(fā)送數(shù)據(jù)的帶寬是xl鏈路的4倍。雖然線路是并行使用的,寬鏈路需要更多的引腳,其與并行總線結(jié)構(gòu)也是有本質(zhì)不同的。
寬鏈路中每個獨立的線路仍然是以串行方式工作的。每個線路都有自己的差分傳輸信號線和獨立的數(shù)據(jù)恢復電路,都具有串行傳輸所具有的優(yōu)點。它們是獨立的串行傳輸通道,通過使用字節(jié)分割機制合并起來作為一個邏輯實休使用。字節(jié)分割是MAC的功能。但是并不是所有的串行協(xié)議都使用字節(jié)分割,SATA和USB沒有使用字節(jié)分割技術(shù)。
如果希望增加SATA硬盤的傳輸帶寬,需要使用多個相互獨立的SATA驅(qū)動器,使用不同的事務層包 (FIS ) 進行通信,如圖所示。USB也是采用類似的機制,每個USB設備采用單線路連接。
通道綁定與去偏移前而我們討論了字節(jié)分割技術(shù),它將一個TLP分布到多個線路中進行傳輸。當接收電路從不同的線路收到這些分布傳輸?shù)臄?shù)據(jù)后,對其正確合路處理會遇到一些實際閑難,在電路板上,不同的傳輸路徑會帶來不同的傳輸延遲。
當接收電路收到來自不同線路的數(shù)據(jù)時,它們經(jīng)過的延遲存在差異并且處于不同的時鐘域。接收電路需要將不同線路上收到的數(shù)據(jù)進行級聯(lián),合并得到原始的TLP,此時所接收的數(shù)據(jù)之間已經(jīng)失去了發(fā)送時相互之間的字節(jié)同步關(guān)系,需要使用通道綁定技術(shù)在接收端重新恢復不同線路之間的字節(jié)對準關(guān)系,如圖所示。
在所有的線路上傳輸?shù)臄?shù)據(jù)流中有一種特殊的COMMA字符。在鏈路訓練階段,在所打線路上都會發(fā)送包含COMMA字符的用于訓練的有序字符集合。與TLP和DLLP不同,訓練字符集合不是以字節(jié)分割方式發(fā)送的。通道綁定邏輯在1個線路(例如,線路0)中査找COMMA,接著它在其他線路中定位COMMA字符并記錄它們的相對位置。
一旦它鎖定了COMMA字符出現(xiàn)的位置,它就停止搜索COMMA字符并記錄下這些相對位置信息。通道綁定邏輯使用這些相對位置信息來對準存在偏移的接收數(shù)據(jù)字節(jié)流。通道綁定邏輯會始終保持基線路(線路0)字節(jié)位置不變。
對于其他線路,它會根據(jù)所檢測到的COMMA的相對位置寫入或讀出數(shù)據(jù),在此期間這些相對位置信息會保持不變。即使輸入數(shù)據(jù)相對于通道綁定邏輯發(fā)生了延遲偏移,從通道綁定邏輯輸出的數(shù)據(jù)仍然是對準的,TLP和DLLP能夠被正確處理。
通道綁定也被稱為去延遲偏移操作。通道綁定邏輯通常屬于MAC層功能,只應用于包含多個線路、采用字節(jié)分割技術(shù)的鏈路中。
極性翻轉(zhuǎn)串行數(shù)據(jù)比特通過TX+和TX-信號線發(fā)送。信號線在印制電路板(PCB)上布線時,TX+應該連接收端的RX+,TX-應該連接收端的RX-。但隨著PCB板的層數(shù)不斷增加,布線密度不斷增大,走線距離可能較長,有時還可能要通過連接器,所以經(jīng)常因為疏忽而發(fā)生TX+連接收端的RX-、TX-連接收端的RX+的情況。發(fā)生這種情況后,有時可以通過重新布線加以解決,但有時重新布線的代價會比較高。
在PCIe中,使用了一種機制來解決極性連接錯誤問題。在鏈路訓練階段,接收端查找常規(guī)的訓練練字符集合或者反相的訓練字符集合。如果發(fā)生了極性翻轉(zhuǎn),那么接收的串行比特會發(fā)生逐比特翻轉(zhuǎn)(1變?yōu)?,0變?yōu)?)。
如果鏈路訓練邏輯檢測到了逐比特翻轉(zhuǎn)的訓練字符,那說明出現(xiàn)連線錯誤。發(fā)送電路無法獲知是否發(fā)生了連接極性錯誤,接收電路檢測到這一錯誤并通過逐比特取反在不進行硬件重新設計和PCB重新加工的情況下解決了這一問題,如圖所示。
線路翻轉(zhuǎn)在多線路鏈路(例如,x8 PCIe有8條線路)中,數(shù)據(jù)包按照字節(jié)分割方式進行傳輸。所有的線路通過電路板連接到接收設備。正確的連接方式是TX線路0連接到RX線路0,TX線路1連接到RX線路1,以此類推。
在實際設計和布線時,可能會因為疏忽造成收發(fā)之間沒有正確對應的情況。這些線路在多層PCB上布線時,會在不同層次之間穿過,會進行90°彎曲,這些都可能導致連接失誤。在某些情況下,常規(guī)連接會導致布線閑難,此時也會有意識地希望能夠進行錯序連接。PCIe采用了一種名為線路切換的技術(shù)來解決這種無意或有意的板級錯序連接。
如圖所示,其基本思路是在鏈路訓練過程中發(fā)現(xiàn)錯序連接并進行數(shù)據(jù)重排。
屬于一個鏈路的多個線路被編號為0、1、2、3、4、5、6、7等。當信號線兩端試圖發(fā)現(xiàn)線路編號時(在訓練字符集中的特定區(qū)域內(nèi)寫入了所屬線路的編號),它們各自都有期望的編號值。線路0希望收到的訓練字符集合中的編號為0,線路7希望收到的編號為7。
如果接收電路收到的編號與期望值不同,它會記錄下來其實際連接的對端發(fā)送電路的編號。信號線兩端的電路都可以根據(jù)實際連接的通道編號調(diào)整本端的實際編號,但需要注意的是,只能有一端可以進行調(diào)整,不能兩端同時進行,否則會繼續(xù)出錯。
雙方選擇的用于解決錯序問題的一端在發(fā)送數(shù)據(jù)之前先要切換發(fā)送數(shù)據(jù)的通路(例如,線路0的數(shù)據(jù)切換到線路7上,線路7的數(shù)據(jù)切換到線路0上)。同時它還要切換接收通路RX通路0上的數(shù)據(jù)與通路7連接,通路7與通路0連接,剩余的通路依次切換)。正如我們所能看到的,這里沒有邏輯修改,通過內(nèi)部的連接重定位解決了板級連接存在的問題。
鎖相環(huán) PLLPLL在數(shù)字系統(tǒng)中有很多應用,常見的典型重要應用如下:
數(shù)據(jù)時鐘恢復(Clock Data Recovery,CDR)
去除時鐘偏移
作為倍頻器使用
CDR
在很多高速串行數(shù)據(jù)傳輸應用中,數(shù)據(jù)在傳輸過程中沒有伴隨著時鐘的傳輸。然而,在數(shù)據(jù)流中存在著足夠的數(shù)據(jù)跳變(0到1和1到0的跳變),接收端電路可以據(jù)此提取與數(shù)據(jù)同步的時鐘。在接收端,可以使用參考時鐘為時鐘提取提供幫助。在沒有參考時鐘的情況下也可以提取接收時鐘的。下面我們將針對這兩種情況對PLL電路加以討論。
不帶參考時鐘的CDR(見下圖)
如果接收端接收的比特流速率為f,那么接收端的邊沿檢測器檢測到的數(shù)據(jù)跳變頻率為2f,VCO產(chǎn)生的自由震蕩時鐘頻率為2f。
帶參考時鐘的CDR (見下圖)
這種方式就不需要過多介紹,常見的傳輸方式。
使用PLL去除時鐘偏移
在SoC中,時鐘樹被用于將時鐘信號分配給物理上分布在芯片各個區(qū)域的觸發(fā)器。在時鐘樹的通路上,分布著帶有延遲的驅(qū)動器。由于時鐘分布路徑上存在延遲,葉節(jié)點上的時鐘與根節(jié)點上的時鐘相比,存在相移(相位滯后)。此時,可以使用PLL消除葉節(jié)點上時鐘的相移使之和根節(jié)點上的時鐘相位對準,如圖所示。
PLL還可用于產(chǎn)生與輸人時鐘存在指定相移的輸出時鐘,例如,產(chǎn)生和輸入時鐘存在90°相移的輸出時鐘。
使用PLL實現(xiàn)倍頻器
PLL可用于根據(jù)時鐘源產(chǎn)生更高頻率的時鐘信號。將輸岀時鐘信號除以N作為PLL的反饋信號與時鐘源相比較,可以得到N倍于時鐘源的輸出時鐘信號,同時二者具有相同的相位。
串行總線的PMA層功能PMA層主要實現(xiàn)模擬電路功能。PMA層電路也被稱為SerDes(Serializer & Deserializer),是一個非常特殊的電路。我們的目標是從電路的系統(tǒng)設計層面對其加以介紹,以便對串行總線技術(shù)形成完整的理解。
發(fā)送均衡
采用串行傳輸機制時,數(shù)據(jù)以比特流的方式在差分對(TX+ TX-)上傳輸。在線路上傳輸?shù)臄?shù)據(jù)波形可以看成是大量不同頻率、不同幅度的正弦波疊加作用的結(jié)果。
當數(shù)據(jù)速率很高時,存在一個占主導地位的高頻正弦波分量。在高速傳輸時,差分傳輸線路的通路特性與低通濾波器(RC濾波器)接近,但相對于低頻成分,高頻成分的衰減更大一些。這意味著在接收端,接收信號中的不同的頻率成分所占的比例與發(fā)送時不同。接收到的信號與發(fā)送端信號相比會發(fā)生畸變,造成ISI(碼間串擾),這會使得CDR恢復的數(shù)據(jù)中存在誤碼。
什么是碼間串擾?
如果我們發(fā)送一個階躍函數(shù)波形(在一個時鐘周期內(nèi)為1的脈沖信號),在接收端波形會發(fā)生變化。接收脈沖會展寬并進入相鄰時鐘周期中。從第N個時鐘周期展寬到第N+1個時鐘周期的信號與第N+1個時鐘周期的信號波形疊加,使得第N+1個周期內(nèi)的波形發(fā)生畸變,這種畸變可能會造成對該時鐘周期邏輯值的判決發(fā)生錯誤,這被稱為符號間的串擾,即碼間串擾(IS1)。
前有很多種技術(shù)可以解決傳輸線頻率響應的問題。可以通過采用發(fā)送端均衡技術(shù),或采用接收端均衡技術(shù)加以解決。
發(fā)送端預加重技術(shù)
發(fā)送驅(qū)動時,對高頻成分的增益大于低頻成分,頻率越高增益越大。信號到達接收端時,所有的頻率成分得到的總體增益相同。
發(fā)送端后加重技術(shù)
另一種技術(shù)是后加重技術(shù)。采用后加重技術(shù)時,邊沿翻轉(zhuǎn)(0到1或1到0)之后的比特被正常放大,但此后的其他比特(沒有邊沿翻轉(zhuǎn)的比特)增益相對降低。由于信號的高頻成分主要出現(xiàn)在信號翻轉(zhuǎn)部分,這樣做等效于為高頻成分提供了更大的增益。當數(shù)據(jù)到達接收端時,所有比特位的最終等效增益是相同的。PCIe和SATA都使用了后加重傳輸技術(shù)。
接收均衡
在接收端,可以為高頻成分提供相對于低頻成分更大的增益。針對高頻成分給予補償?shù)慕Y(jié)果是整個傳輸系統(tǒng)為所有頻率成分提供了相同的增益。經(jīng)過補償后,接收波形與發(fā)送波形更加相似。接收器均衡技術(shù)有利于減少1SI。
端接電阻
TX+和TX-信號是一對傳輸線,在發(fā)送端和接收端需要進行傳輸線阻抗匹配,以避免產(chǎn)生信號反射,使發(fā)送信號產(chǎn)生畸變。當信號發(fā)生反射時,它與原始的發(fā)送信號發(fā)生疊加,使發(fā)送信號增強或減弱。如果反射的信號強度較大,可能會使發(fā)送信號產(chǎn)生較大的畸變從而導致接收錯誤。終端匹配的目的就是減少或消除接收端對發(fā)送信號的反射。
編輯:jq
-
電阻
+關(guān)注
關(guān)注
86文章
5561瀏覽量
172740 -
pcb
+關(guān)注
關(guān)注
4326文章
23161瀏覽量
399989 -
串行數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
52瀏覽量
16594 -
cdr
+關(guān)注
關(guān)注
1文章
50瀏覽量
18146
原文標題:串行總線技術(shù)(二)-串行總線中的先進設計理念及SerDes/PMA介紹
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論