CodingBox दस्तावेज़

MII, RMII, GMII, RGMII: PHY से समानांतर इंटरफ़ेस

पैरेलल मीडिया-इंडिपेंडेंट इंटरफ़ेस MAC को कॉपर PHY चिप से PCB के मुट्ठी भर सेंटीमीटर के ऊपर जोड़ते हैं — राउटर, छोटे स्विच, एक्सेस पॉइंट, इंडस्ट्रियल कंट्रोलर और RJ45 वाले हर एम्बेडेड बोर्ड के अंदर। ये कभी ट्रांसीवर केज तक नहीं पहुँचते, लेकिन जो भी वहाँ तक पहुँचता है उसके लिए ये रेफ़रेंस पॉइंट हैं: SGMII “सीरियलाइज़ किया गया GMII” है, XGMII “10G पर GMII” है, और कॉपर SFP के भीतर का PHY अंदर ही अंदर इनमें से एक बोलता है। यह पेज MII, RMII, GMII और RGMII के लिए पिन, क्लॉक और टाइमिंग, RGMII डिले प्रॉब्लम, इन-बैंड स्टेटस, MDIO मैनेजमेंट, और हर इंटरफ़ेस से पैदा होने वाली ख़राबियाँ बताता है।

MII (IEEE 802.3 Clause 22)

आइटमवैल्यू
रेट10 और 100 Mb/s
डेटा4-bit TXD[3:0], 4-bit RXD[3:0]
क्लॉकTX_CLK और RX_CLK PHY से: 25 MHz (100M), 2.5 MHz (10M)
कंट्रोलTX_EN, TX_ER, RX_DV, RX_ER, CRS (कैरियर सेंस), COL (कॉलिज़न)
मैनेजमेंटMDC, MDIO (शेयर्ड)
सिग्नल गिनती16 डेटा/कंट्रोल + 2 मैनेजमेंट
लेवल5 V / 3.3 V TTL
रीचकुछ cm; प्रति MAC एक PHY

अब भी माइक्रोकंट्रोलर और FPGA पर मिलता है; पिन गिनती के लिए इसकी जगह RMII ने ले ली।

RMII (RMII Consortium spec v1.2)

आइटमवैल्यू
रेट10 और 100 Mb/s
डेटा2-bit TXD[1:0], RXD[1:0]
क्लॉकएक REF_CLK 50 MHz, MAC और PHY दोनों शेयर करते हैं; सोर्स ऑसिलेटर, MAC, या PHY हो सकता है (PHY-clock-out मोड)
कंट्रोलTX_EN, CRS_DV (कैरियर सेंस + डेटा वैलिड मल्टीप्लेक्स्ड), RX_ER (ऑप्शनल)
सिग्नल गिनती7–9
10 Mb/s मोडहर निबल 50 MHz पर 10× रिपीट होता है
रीचcm

50 MHz रेफ़रेंस-क्लॉक टोपोलॉजी क्लासिक RMII बग है: जब PHY एक्सटर्नल क्लॉक की उम्मीद करता है और SoC यह उम्मीद करता है कि PHY उसे ड्राइव करे, तो नतीजा एक डेड इंटरफ़ेस होता है जबकि लिंक LED सेहतमंद दिखती है।

GMII (Clause 35)

आइटमवैल्यू
रेट1000 Mb/s; 10/100 के लिए MII सिग्नलिंग पर फ़ॉलबैक
डेटा8-bit TXD[7:0], RXD[7:0]
क्लॉकट्रांसमिट के लिए MAC से GTX_CLK 125 MHz; रिसीव के लिए PHY से RX_CLK 125 MHz; PHY से TX_CLK सिर्फ़ 10/100 फ़ॉलबैक में इस्तेमाल होता है
कंट्रोलTX_EN, TX_ER, RX_DV, RX_ER, CRS, COL
सिग्नल गिनती24 + मैनेजमेंट
लेवल2.5 V (कई पर 3.3 V टॉलरेंट)
रीचcm; 125 MHz सिंगल-डेटा-रेट पर टाइमिंग बजट टाइट

आज ज़्यादातर ऑन-चिप या FPGA इंटरफ़ेस; बोर्ड पर इसकी जगह RGMII ने ले ली।

RGMII (Reduced GMII, HP/Marvell specification v1.3 and v2.0)

आइटमवैल्यू
रेट10/100/1000
डेटा4-bit TXD[3:0] और RXD[3:0] डबल डेटा रेट: राइज़िंग एज पर लो निबल, फ़ॉलिंग एज पर हाई निबल
क्लॉकTXC 125 MHz (MAC से), RXC 125 MHz (PHY से); 100M / 10M के लिए 25 / 2.5 MHz
कंट्रोलTX_CTL (राइज़िंग एज पर TX_EN, फ़ॉलिंग पर TX_EN xor TX_ER), RX_CTL (RX_DV / RX_DV xor RX_ER)
सिग्नल गिनती12
लेवल2.5 V (v1.3), 1.5 V HSTL या 1.8 V (v2.0 ऑप्शन); कुछ PHY पर 3.3 V
रीच≤ 10–15 cm मैच्ड-लेंथ ट्रेस

डिले की समस्या

RGMII को चाहिए कि क्लॉक रिसीवर पर डेटा एज के 1.5–2.0 ns बाद पहुँचे (सेटअप/होल्ड विंडो)। इसे हासिल करने के तीन तरीक़े हैं:

मोडडिले कौन जोड़ता हैडिवाइस-ट्री phy-modeनोट्स
PCB डिले (v1.3)~5 cm एक्स्ट्रा क्लॉक ट्रेसrgmiiक्लासिक, नाज़ुक
PHY में इंटरनल डिले (RGMII-ID, v2.0)PHY TX और RX क्लॉक पर 2 ns जोड़ता हैrgmii-idआज सबसे आम
MAC/SoC में इंटरनल डिलेSoC इसे जोड़ता हैMAC-साइड डिले रजिस्टर के साथ rgmii
मिश्रितसिर्फ़ एक दिशा में PHYrgmii-txid, rgmii-rxidजब सिर्फ़ एक साइड इसे सपोर्ट करे

डिले को दो बार जोड़ना (PCB और PHY) या बिल्कुल न जोड़ना RGMII की पहचानी हुई ख़राबी पैदा करता है: 1G पर लिंक अप है लेकिन CRC एरर आते हैं या ट्रैफ़िक नहीं चलता, जबकि 100M काम करता है (100M का पीरियड 40 ns है और स्क्यू बर्दाश्त कर लेता है)। PHY के डिले रजिस्टर या phy-mode को बदलकर ठीक करें।

इन-बैंड स्टेटस

आइडल रहने पर, PHY RXD[3:0] पर लिंक, स्पीड और डुप्लेक्स ड्राइव करता है ताकि MAC बिना MDIO रीड के अपना क्लॉक डिवाइडर दोबारा कॉन्फ़िगर कर सके: RXD[0] लिंक, RXD[2:1] स्पीड (00 = 10, 01 = 100, 10 = 1000), RXD[3] डुप्लेक्स। कुछ MAC इसे नज़रअंदाज़ करके MDIO पोलिंग पर निर्भर रहते हैं; बेमेल उम्मीदों से ऐसा लिंक मिलता है जो PHY पर अप है और MAC पर डाउन।

TBI और RTBI

Ten-Bit Interface: MAC/PCS और एक्सटर्नल SerDes या ऑप्टिकल PHY के बीच 8b/10b-कोडेड 1000BASE-X सिंबल (125 MHz पर 10 bit, RTBI में DDR पर 5 bit)। बोर्ड पर अब पुराना पड़ चुका; इसका सीरियल उत्तराधिकारी 1000BASE-X/SGMII है (SGMII और सीरियल गीगाबिट)।

तुलना

इंटरफ़ेसपिन (डेटा + ctrl)क्लॉकअधिकतम रेटवोल्टेजसामान्य इस्तेमाल
MII16PHY से 25 MHz100M3.3/5 VMCU, लेगेसी
RMII7–9शेयर्ड 50 MHz100M3.3 Vएम्बेडेड SoC + PHY
SMII2–3/पोर्ट125 MHz100M3.3 Vमल्टी-पोर्ट PHY (Cisco)
GMII24125 MHz (MAC tx / PHY rx)1G2.5 VFPGA, ऑन-चिप
RGMII12125 MHz DDR1G2.5/1.8/1.5 Vबोर्ड पर SoC ↔ PHY
SGMII4 (2 पेयर)1.25 GBd एम्बेडेड1G (रेप्लिकेशन से 10/100)CMLSoC ↔ PHY, SFP केज

PHY मैनेजमेंट: MDIO/MDC

आइटमClause 22Clause 45
एड्रेसिंग5-bit PHY एड्रेस, 5-bit रजिस्टर (32 रजिस्टर)5-bit पोर्ट, 5-bit डिवाइस (PMA/PMD, PCS, PHY XS, DTE XS, AN, वेंडर), 16-bit रजिस्टर
मुख्य रजिस्टर0 control (रीसेट, स्पीड, AN enable, लूपबैक), 1 status (लिंक, AN complete), 2–3 PHY ID (OUI + मॉडल), 4 AN advertisement, 5 link-partner ability, 9/10 1000BASE-T control/status, 17+ vendor (RGMII डिले, LED)1.x PMA, 3.x PCS, 7.x AN, 30.x/31.x विक्रेता
स्पीडMDC ≤ 2.5 MHz (व्यवहार में अक्सर तेज़)वही
Linux टूलmii-tool -v eth0, phytool read eth0/1/0, ethtool eth0; phylib, phylink के ज़रिए ड्राइवरphytool read eth0/1:1/0

इसकी तुलना प्लगेबल मॉड्यूल से करें, जिन्हें MDIO पर नहीं बल्कि I²C पर मैनेज किया जाता है (टू-वायर इंटरफ़ेस)। कॉपर SFP का इंटरनल PHY इसका अपवाद है: कई डिज़ाइन में इसके MDIO रजिस्टर मॉड्यूल के I²C पर एक सेकंडरी एड्रेस के ज़रिए पहुँच में होते हैं, और विक्रेता इसी तरह 10/100 फ़ॉलबैक और ऑटो-नेगोशिएशन बर्ताव सेट करते हैं।

आम PHY और उनके इंटरफ़ेस

PHY फ़ैमिलीइंटरफ़ेससामान्य बोर्ड
Marvell 88E1111 / 88E1512 / 88E1510GMII, RGMII, SGMII, TBIराउटर, कॉपर SFP मॉड्यूल (88E1111)
Realtek RTL8211F / RTL8201RGMII / RMIISBC, कंज़्यूमर राउटर
Microchip KSZ9031 / KSZ8081 / LAN8720RGMII / RMII / RMIIइंडस्ट्रियल, MCU बोर्ड
TI DP83867 / DP83848RGMII, SGMII / MII, RMIIइंडस्ट्रियल
Broadcom BCM54xxxRGMII, SGMII, QSGMIIएंटरप्राइज़ स्विच (quad/octal PHY)
Marvell 88E1543 / 88E1548QSGMII क्वाड48-पोर्ट एक्सेस स्विच

इंटरफ़ेस के हिसाब से ख़राबियाँ

लक्षणइंटरफ़ेसकारण
कभी लिंक नहीं होता, PHY ID ठीक पढ़ता हैRMIIREF_CLK दिशा/सोर्स मिसमैच
100M काम करता है, 1G पर ट्रैफ़िक नहीं / CRCRGMIIडिले मोड (ID) ग़लत या दोहरा
PHY LED पर लिंक अप, MAC डाउन बताता हैRGMII/SGMIIएक साइड पर इन-बैंड स्टेटस डिसेबल, या MDIO पोलिंग ग़ायब
1G पर आधे पैकेट खो जाते हैंGMII/RGMIIट्रेस लेंथ स्क्यू, ग़लत वोल्टेज लेवल
MDIO पर PHY नहीं मिलताकोई भीग़लत PHY एड्रेस (स्ट्रैपिंग पिन), MDIO पुल-अप ग़ायब
स्पीड 10/100 पर अटकीकोई भीसीमित AN advertisement रजिस्टर, केबल, या 1G सपोर्ट के बिना phy-mode

CodingBox में

इस पेज पर कुछ भी मॉड्यूल के EEPROM से नहीं गुज़रता — सिवाय कॉपर SFP के, जिसका इंटरनल PHY (आमतौर पर 88E1111-क्लास पार्ट) उसी I²C के पीछे बैठा होता है जिसे CodingBox पढ़ता है। जब कोई कॉपर मॉड्यूल 1G पर काम करता है लेकिन 10/100 पर नहीं, तो जवाब उस PHY के कॉन्फ़िगरेशन और होस्ट के SGMII/1000BASE-X मोड में है, A0h पहचान बाइट में नहीं (कॉपर ईथरनेट और DAC, SGMII और सीरियल गीगाबिट)।


अगर आपको इस सामग्री में कोई अशुद्धि या त्रुटि दिखे, तो संबंधित अंश चुनें और Ctrl+Enter दबाकर