GMII、SGMII和SerDes的區(qū)別和聯(lián)系?
GMII和SGMII區(qū)別,上一篇已經(jīng)介紹了,這一篇重點(diǎn)介紹SGMII和SerDes區(qū)別。
GMII和SGMII
SGMII和SerDes
終于到了今天的豬腳-SerDes,為什么拿SGMII和SerDes進(jìn)行對比,主要原因是,SerDes是一個(gè)串行接口,和SGMII很像,和GMII幾乎沒有什么交集,所以兩者對比就沒有什么實(shí)際意義,所以只進(jìn)行SGMII和SerDes進(jìn)行對比。
由于SerDes在PCIe部分起著非常重要的作用,所以這部分詳細(xì)內(nèi)容會(huì)放到PCI-e部分詳解,這里只是簡單介紹一下:
SerDes,是SERializer(串行器)和DESerializer(解串器)的簡稱,是一種點(diǎn)對點(diǎn)的高速串行通信技術(shù),串口協(xié)議跟IIC、SPI等總線協(xié)議還是有很大差別的,最大的特點(diǎn)就是點(diǎn)對點(diǎn)收發(fā)、沒有隨路時(shí)鐘,它的速率是隱含在協(xié)議里的,雙方必須按照約定好的波特率進(jìn)行數(shù)據(jù)的發(fā)送和接受才能正確的完成通信,SPI則是主機(jī)向從機(jī)發(fā)送時(shí)鐘,從機(jī)在這個(gè)時(shí)鐘的上升沿采樣數(shù)據(jù)、下降沿發(fā)送數(shù)據(jù),最開始人們?yōu)榱颂?a href="http://www.1cnz.cn/tags/高通/" target="_blank">高通信速率的思路有兩條:提高隨路時(shí)鐘頻率、增加數(shù)據(jù)通路位寬,這都很好理解,舉個(gè)栗子就是四線SPI(Qspi),但逐漸地這種思路就遇到瓶頸!
第一、時(shí)鐘頻率的不斷增加,時(shí)鐘抖動(dòng)和偏斜的因素變得更加明顯,也增加了時(shí)鐘質(zhì)量的要求,為了充分利用時(shí)鐘,工程師們還想到了利用下降沿,沒錯(cuò),就是DDR!第二、數(shù)據(jù)總線的增加意味著管腳數(shù)的增加,這會(huì)引起PCB布局布線的災(zāi)難。人們又開始把思路回到不用時(shí)鐘線的串口協(xié)議上。先看看串口收發(fā)器的偽代碼!
//串口收發(fā)器 SerialTransceiver
module serialTR(
input sys_clk,
input rst_n,
//可配置單雙工,雙工模式
input [1:0] I_rxtx_en, //收發(fā)使能,高有效
output [1:0] O_rxtx_done, //收發(fā)完成脈沖信號(hào)
input RX, //串口總線
output TX,
//數(shù)據(jù)位寬可配置
input [7:0] data2tx, //待發(fā)送數(shù)據(jù)
output [7:0] data2rx //待接收數(shù)據(jù)
);
//串口接收 ---> 串轉(zhuǎn)并
always@()begin
if(!rst_n)
//寄存器復(fù)位
else if(I_rxtx_en[1])
//1、下降沿檢測,獲取起始位
//2、3、4、5、6、7、8、9波特率定時(shí)器,采樣數(shù)據(jù)
//9、10接收校驗(yàn)位和結(jié)束位
//11、12、產(chǎn)生完成脈沖信號(hào)
end
//串口發(fā)送 ---> 并轉(zhuǎn)串
always@(!rst_n)begin
if(!rst_n)
//復(fù)位
else if(I_rxtx_en[0])
//1、構(gòu)建數(shù)據(jù)格式
//2~12 按位發(fā)送
//13、14產(chǎn)生完成脈沖信號(hào)
end
endmodule
這里想說明的是:
1、串口的單雙工和數(shù)據(jù)位寬都是可以配置的,按照自己的需求去設(shè)置;2、串口協(xié)議也是有時(shí)鐘的,只不過這個(gè)時(shí)鐘是隱含在協(xié)議里,除了常見的9600、38400、115200,自己也可以去配置特殊模式的串口,關(guān)鍵是雙方都要遵守相同的協(xié)議,那么SerDes呢?
相同的,SerDes也是收發(fā)兩條線,準(zhǔn)確地說,是兩組,因?yàn)樗遣罘中问?,即tx_p、tx_n,rx_p、rx_n;在數(shù)據(jù)端也是可以配置成不同的數(shù)據(jù)位寬和單雙工模式;
不同的,就是在于SerDes的時(shí)鐘是隱含在數(shù)據(jù)中!這就需要額外的電路去完成數(shù)據(jù)和時(shí)鐘的“融合”與“解析”,而這正是PCS和PMA的作用,其內(nèi)部采用的編碼技術(shù)和信號(hào)補(bǔ)償技術(shù)正是為了完美的將時(shí)鐘“融合”進(jìn)串行數(shù)據(jù)(發(fā)送端),再將時(shí)鐘從串行數(shù)據(jù)中“解析出來”(接收端)。
SERDES主要由物理介質(zhì)相關(guān)( PMD)子層、物理媒介附加(PMA)子層和物理編碼子層( PCS )所組成。PMD是負(fù)責(zé)串行信號(hào)傳輸?shù)?a href="http://www.1cnz.cn/v/tag/2364/" target="_blank">電氣塊。PMA負(fù)責(zé)串化/解串化,PCS負(fù)責(zé)數(shù)據(jù)流的編碼/解碼。在PCS的上面是上層功能。針對FPGA 的SERDES ,PCS提供了ASIC塊和FPGA之間的接口邊界。
Xilinx將這個(gè)SerDes硬核進(jìn)行了封裝,成為GigabitTransceiver,即GT,而它在BANK里的位置和數(shù)量都是固定的,從這個(gè)角度來看這也算是它不靈活的不足所在吧。
接下來就是SGMII和SerDes的區(qū)別
圖1 SGMII的MAC側(cè)和PHY側(cè)
剛看到上圖時(shí),感覺很奇怪,PCS為什么還存在于MAC中?GMII規(guī)范中PCS只存在于PHY中,見下圖。
圖2 GMII在OSI模型中的位置
實(shí)際上SGMII對應(yīng)的MAC和PHY的劃分是將SGMII接口斷開,一端歸為MAC,一端歸為PHY;同樣,GMII對應(yīng)的MAC和PHY的劃分是將GMII接口斷開,一端歸為MAC,一端歸為PHY。下圖是將圖1整理后的圖。
圖3 整理后的SGMII信號(hào)接收和發(fā)送流程
上圖可以看出,SGMII接口就是使用了SerDes技術(shù)的GMII接口,SerDes上跑的是10b信號(hào),在接收端,PCS Transmit將GMII的8b信號(hào)編碼為10b信號(hào),經(jīng)過Serializer串行化后在SerDes高速路上傳輸?shù)絇CS Receive模塊,它將10b信號(hào)解碼為8b信號(hào)送至MAC Receive Rate Adaptation模塊。因此SGMII相對于GMII多了個(gè)S,這個(gè)S就是SerDes技術(shù),它提供了一個(gè)高速傳輸通道。
在交換芯片中經(jīng)常可以看到1個(gè)Port可以被配置為SGMII/SerDes模式,個(gè)人理解的是SGMII相對于SerDes多了一個(gè)速率協(xié)商(比如上圖中的PHY Receive RateAdaptation模塊),當(dāng)使能了SGMII模式,就是使能了PHY Receive Rate Adaptation模塊,當(dāng)使能了SerDes模式,就是禁用了或者未使用PHY Receive RateAdaptation模塊,這樣猜測的原因是在光模塊或者電模塊選型時(shí),發(fā)現(xiàn)SerDes接口的光模塊或電模塊總是僅支持1000Mbps速率;而SGMII接口的電模塊總是能支持10/100/1000Mbps速率,但是沒看到能支持這種猜測的文章。
下圖是SerDes的發(fā)送和接收結(jié)構(gòu)。
圖4 SerDes的發(fā)送和接收結(jié)構(gòu)
SerDes通道傳輸?shù)?0b信號(hào),因此在SerDes發(fā)送端,需要上圖的PCS實(shí)現(xiàn)8b/10b編碼,之后是串行化以上高速跑道;
在SerDes接收端,需要上圖的PCS實(shí)現(xiàn)10b/8b解碼,之后是解串行化,以下高速跑道。
在進(jìn)行電路設(shè)計(jì)時(shí),當(dāng)交換的1個(gè)Port配置為SerDes模式,它能接光模塊和電模塊,但是速率是不可協(xié)商的,當(dāng)接光模塊,光模塊也僅是進(jìn)行光電或電光的轉(zhuǎn)換,以在光纖中傳輸,并不涉及到PCS等概念;當(dāng)配置為SGMII模式,它只能接電模塊,因?yàn)殡娔K內(nèi)部是有PHY和變壓器的,所以此時(shí)的設(shè)計(jì)模式就是MAC+PHY+變壓器的常規(guī)模式。
總結(jié)一下:
其實(shí),大多數(shù)MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),
SerDes直接外接光模塊,而不需要PHY層芯片,此時(shí)時(shí)鐘速率仍舊是625MHz,不過此時(shí)跟SGMII接口不同,SGMII接口速率被提高到1.25Gbps是因?yàn)椴迦肓丝刂菩畔?,而SerDes端口速率被提高是因?yàn)檫M(jìn)行了8B/10B變換,本來8B/10B變換是PHY芯片的工作,在SerDes接口中,因?yàn)橥饷娌唤覲HY芯片,此時(shí)8B/10B變換在MAC芯片中完成了。8B/10B變換的主要作用是擾碼,讓信號(hào)中不出現(xiàn)過長的連“0”和連“1”情況,影響時(shí)鐘信息的提取
所以感覺是mac芯片用加2bit控制信息的功能模塊去完成了8B/10B變換,這樣SerDes信號(hào)就可以直接出去了。
SerDes通道和SerDes接口是兩個(gè)概念,SGMII也是需要SerDes通道(SERDES lane)的。
而SGMII需要插入2bit控制信號(hào)變成10b是因?yàn)镾GMII需要控制信來實(shí)現(xiàn)10/100/1000速率協(xié)商,而SerDes是固定速率(1000BASE-x)。
PHY收到mac sgmii的10b后,將控制信號(hào)去除后,將數(shù)據(jù)發(fā)送出去前還是會(huì)加擾碼完成8B/10B變換。
-
Mac
+關(guān)注
關(guān)注
0文章
1116瀏覽量
52581 -
SerDes
+關(guān)注
關(guān)注
7文章
208瀏覽量
35574 -
PCI-e總線
+關(guān)注
關(guān)注
1文章
2瀏覽量
7127
發(fā)布評(píng)論請先 登錄
淺析以太網(wǎng)接口及串口轉(zhuǎn)以太網(wǎng)技術(shù)

評(píng)論