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