(五)之一文搞懂 GMII 與 RGMII)
歡迎關(guān)注飛翔硬件雜談如果你在做千兆以太網(wǎng)相關(guān)的硬件設(shè)計(jì)一定繞不開兩個(gè)名字GMII和RGMII。它們都是 MAC 與 PHY 之間的接口標(biāo)準(zhǔn)一個(gè)引腳多但簡單直白一個(gè)引腳少卻暗藏玄機(jī)。RGMII 到底省在了哪里又是如何做到少一半引腳同樣的帶寬的本文帶你一次看透。一、先說背景MAC 和 PHY 之間聊什么在以太網(wǎng)硬件架構(gòu)中MAC媒體訪問控制層負(fù)責(zé)數(shù)據(jù)鏈路層的協(xié)議處理PHY物理層芯片負(fù)責(zé)物理信號的編解碼和線路驅(qū)動。兩者之間需要一個(gè)接口來傳遞數(shù)據(jù)和控制信號。這個(gè)接口需要解決三個(gè)問題傳數(shù)據(jù)TX 方向發(fā)出去的數(shù)據(jù)RX 方向收進(jìn)來的數(shù)據(jù)傳時(shí)鐘雙方需要一個(gè)共同的時(shí)鐘節(jié)拍來對齊數(shù)據(jù)傳控制告訴對方數(shù)據(jù)有效出錯(cuò)了等狀態(tài)信息GMII 和 RGMII 就是兩種不同的接線方案解決的是同一個(gè)問題但思路不同。二、GMIIIEEE 標(biāo)準(zhǔn)的正經(jīng)方案GMIIGigabit Media Independent Interface是 IEEE 802.3 標(biāo)準(zhǔn)中定義的千兆以太網(wǎng) MAC-PHY 接口。核心參數(shù)參數(shù)值數(shù)據(jù)位寬8 bit時(shí)鐘頻率125 MHz信號方式SDR單沿采樣僅上升沿帶寬125 MHz × 8 bit 1 Gbps引腳數(shù)數(shù)據(jù)控制約 24 pin速率支持10 / 100 / 1000 Mbps引腳構(gòu)成以 TX 側(cè)為例TXD[7:0] 8 條數(shù)據(jù)線TX_CLK發(fā)送時(shí)鐘TX_EN發(fā)送使能高電平表示數(shù)據(jù)有效TX_ER發(fā)送錯(cuò)誤高電平表示數(shù)據(jù)出錯(cuò)RX 側(cè)對稱RXD[7:0]、RX_CLK、RX_DV數(shù)據(jù)有效、RX_ER接收錯(cuò)誤。再加上管理接口 MDC/MDIO總共約 24 個(gè)引腳。GMII 的特點(diǎn)優(yōu)點(diǎn)時(shí)序簡單只在時(shí)鐘上升沿采樣建立/保持時(shí)間窗口充足整個(gè)周期 8nsPCB 布線約束寬松。缺點(diǎn)引腳多。TX 側(cè) 11 個(gè)信號引腳RX 側(cè) 11 個(gè)加上管理接口一共二十多個(gè)。對于引腳緊張的主控芯片來說這是個(gè)不小的負(fù)擔(dān)。三、RGMIIHP 提出的精簡方案RGMIIReduced Gigabit Media Independent Interface由惠普HP提出是目前千兆以太網(wǎng)中最廣泛使用的 MAC-PHY 接口。它不是 IEEE 正式標(biāo)準(zhǔn)而是行業(yè)事實(shí)標(biāo)準(zhǔn)。核心參數(shù)參數(shù)值數(shù)據(jù)位寬4 bit時(shí)鐘頻率125 MHz信號方式DDR雙沿采樣上升沿下降沿帶寬125 MHz × 4 bit × 2 1 Gbps引腳數(shù)數(shù)據(jù)控制約 12 pin速率支持10 / 100 / 1000 Mbps引腳構(gòu)成以 TX 側(cè)為例TXD[3:0]4 條數(shù)據(jù)線TX_CLK發(fā)送時(shí)鐘TX_CTL發(fā)送控制一根線復(fù)用 EN 和 ERRX 側(cè)對稱RXD[3:0]、RX_CLK、RX_CTL。加上 MDC/MDIO總共約 12 個(gè)引腳。引腳數(shù)直接砍掉一半。問題是少了一半的引腳帶寬怎么沒變四、核心揭秘RGMII 如何用更少引腳實(shí)現(xiàn)相同功能RGMII 省引腳靠的是兩大機(jī)制DDR 雙沿采樣 控制信號復(fù)用。機(jī)制一DDR 雙沿采樣——數(shù)據(jù)線減半8→4這是省引腳的主要原因TXRX 合計(jì)省下8 個(gè)引腳。GMII 的做法SDR 單沿時(shí)鐘 125 MHz每個(gè)周期 8ns。GMII只在時(shí)鐘上升沿采樣一次每次采 8 bit。所以一個(gè)周期傳 8 bit需要 8 條數(shù)據(jù)線。TX_CLK: ___| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|___ ↑ 采樣 ↑ 采樣 TXD[7:0]: | D0[7:0] | D1[7:0] |RGMII 的做法DDR 雙沿同樣的 125 MHz 時(shí)鐘但 RGMII上升沿和下降沿各采樣一次。每次采 4 bit一個(gè)周期采 2 次 4 × 2 8 bit。TX_CLK: ___| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|___ ↑ ↓ ↑ 上升沿 下降沿 上升沿 TXD[3:0]: |D0[3:0]|D0[7:4]|D1[3:0]|一個(gè) 8 bit 字節(jié)怎么拆上升沿采樣低 4 位D[3:0]下降沿采樣高 4 位D[7:4]兩半拼起來正好是完整的 8 bit 字節(jié)。時(shí)鐘頻率沒變數(shù)據(jù)線少了一半但每個(gè)周期傳輸?shù)臄?shù)據(jù)量完全一樣。通俗類比GMII 是一條 8 車道公路每個(gè)綠燈放行一次RGMII 是一條 4 車道公路但每個(gè)綠燈和紅燈切換時(shí)都放行一次。同樣的時(shí)間段內(nèi)通過的車輛數(shù)相同。機(jī)制二控制信號復(fù)用——控制引腳合并2→1這個(gè)機(jī)制省下2 個(gè)引腳TX 側(cè) 1 個(gè) RX 側(cè) 1 個(gè)。GMII 的做法TX_EN發(fā)送使能和TX_ER發(fā)送錯(cuò)誤是兩個(gè)獨(dú)立引腳各自獨(dú)占一根線電平始終有效。TX_EN: ─────████████████────── ← 獨(dú)占引腳 1 TX_ER: ─────────────────────── ← 獨(dú)占引腳 2RGMII 的做法合并為一根TX_CTL線利用 DDR 的思路分時(shí)復(fù)用上升沿時(shí)刻TX_CTL的值 TX_EN下降沿時(shí)刻TX_CTL的值 TX_ERTX_CTL: ────████────████────── ← 合為 1 根引腳 ↑EN1 ↓ER0 ↑EN1 上升沿 下降沿 上升沿RX 側(cè)同理RX_DVRX_ER→ 合并為RX_CTL一根線。五、引腳賬本到底省了多少下面以 TXRX 合計(jì)不含 MDC/MDIO 管理接口做一筆賬信號類別GMIIRGMII節(jié)省省引腳機(jī)制數(shù)據(jù)線TXDRXD1688DDR 雙沿采樣控制線EN/ER DV/ER422上升沿/下降沿復(fù)用時(shí)鐘線TX_CLKRX_CLK220不變合計(jì)221210—一個(gè)千兆以太網(wǎng)接口從 22 個(gè)引腳降到 12 個(gè)省了將近一半。對于多網(wǎng)口設(shè)備如交換機(jī)、路由器這個(gè)節(jié)省更加可觀。8 口交換機(jī)就能省下 80 個(gè)引腳直接降低芯片封裝成本和 PCB 層數(shù)。六、RGMII 的代價(jià)不是免費(fèi)的午餐RGMII 省了引腳但也帶來了額外約束1. 需要 2ns 時(shí)鐘延遲DDR 要求在數(shù)據(jù)信號的中間采樣因此時(shí)鐘需要相對數(shù)據(jù)延遲約 2ns四分之一周期。這個(gè)延遲可以通過兩種方式實(shí)現(xiàn)PHY 芯片內(nèi)部延遲大多數(shù) PHY 芯片支持內(nèi)部延遲模式設(shè)備樹中配置為rgmii-id或rgmii-txid/rgmii-rxid這是最常用的方式PCB 走線延遲繞線約1.5~2 英寸≈3.8~5cm對應(yīng)延遲約 1.5~2nsFR4 板材信號速度≈15cm/ns物理上實(shí)現(xiàn)延遲2. 時(shí)序約束更嚴(yán)格雙沿采樣意味著建立/保持時(shí)間窗口只有半個(gè)周期約 4ns對 PCB 布線等長控制和信號完整性要求更高。數(shù)據(jù)線和時(shí)鐘線需要嚴(yán)格等長走線長度差通??刂圃?±50mil 以內(nèi)。3. 不是 IEEE 正式標(biāo)準(zhǔn)RGMII 由 HP 提出最新規(guī)范為 RGMII v2.02002屬行業(yè)事實(shí)標(biāo)準(zhǔn)GMII 定義于 IEEE 802.3z-1998 Clause 35Wikipedia4. 10/100M 模式下的退化在 100 Mbps 和 10 Mbps 模式下RGMII 退化為 SDR 模式只在上升沿采樣數(shù)據(jù)速率減半以匹配較低帶寬需求時(shí)鐘分別降到 25 MHz 和 2.5 MHz。七、實(shí)際選型建議場景推薦原因新設(shè)計(jì)千兆以太網(wǎng)RGMII引腳少主流 PHY 均支持是當(dāng)前行業(yè)標(biāo)準(zhǔn)引腳非常充裕追求最簡時(shí)序GMII無需時(shí)鐘延遲布線約束最寬松需要兼容老芯片看 MAC 支持部分早期 MAC 只支持 GMII多網(wǎng)口設(shè)備交換機(jī)等RGMII引腳節(jié)省效果成倍放大八、總結(jié)RGMII 就是 GMII 的精簡版——用 DDR 雙沿采樣把數(shù)據(jù)線砍掉一半再通過控制信號分時(shí)復(fù)用合并掉冗余引腳在引腳數(shù)減半的前提下實(shí)現(xiàn)了和 GMII 完全相同的千兆帶寬。維度GMIIRGMII數(shù)據(jù)位寬8 bit4 bit信號方式SDR 單沿DDR 雙沿引腳數(shù)~24~12時(shí)鐘延遲無需需 2ns時(shí)序復(fù)雜度簡單較高標(biāo)準(zhǔn)來源IEEE 802.3行業(yè)事實(shí)標(biāo)準(zhǔn)應(yīng)用現(xiàn)狀早期芯片主流方案歡迎關(guān)注