MII، RMII، GMII، RGMII: PHY تک متوازی انٹرفیسز
متوازی میڈیا-انڈیپنڈنٹ انٹرفیسز MAC کو چند سینٹی میٹر PCB پر کاپر PHY چپ سے جوڑتے ہیں — راؤٹرز، چھوٹے سوئچز، ایکسیس پوائنٹس، صنعتی کنٹرولرز اور 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 بٹ TXD[3:0]، 4 بٹ RXD[3:0] |
| کلاکس | PHY سے TX_CLK اور RX_CLK: 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 |
اب بھی مائیکروکنٹرولرز اور FPGAs میں ملتا ہے؛ پن گنتی کے لیے RMII نے اس کی جگہ لی۔
RMII (RMII Consortium spec v1.2)
| آئٹم | قدر |
|---|---|
| ریٹس | 10 اور 100 Mb/s |
| ڈیٹا | 2 بٹ 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 بٹ TXD[7:0]، RXD[7:0] |
| کلاکس | ٹرانسمٹ کے لیے MAC سے GTX_CLK 125 MHz؛ ریسیو کے لیے PHY سے RX_CLK 125 MHz؛ TX_CLK صرف 10/100 فال بیک میں PHY سے استعمال ہوتا ہے |
| کنٹرول | 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 اسپیسفیکیشن v1.3 اور v2.0)
| آئٹم | قدر |
|---|---|
| ریٹس | 10/100/1000 |
| ڈیٹا | 4 بٹ 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 آپشن)؛ بعض PHYs پر 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 | — |
| مخلوط | PHY صرف ایک سمت پر | rgmii-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] ڈوپلیکس۔ بعض MACs اسے نظر انداز کر کے MDIO پولنگ پر بھروسا کرتے ہیں؛ غیر مطابق توقعات ایسا لنک دیتی ہیں جو PHY پر اپ اور MAC پر ڈاؤن ہو۔
TBI اور RTBI
دس بٹ انٹرفیس: MAC/PCS اور بیرونی SerDes یا آپٹیکل PHY کے درمیان 8b/10b-کوڈ شدہ 1000BASE-X سمبلز (125 MHz پر 10 بٹس، DDR کے ساتھ RTBI میں 5 بٹس)۔ بورڈز پر متروک؛ اس کی سیریل جانشین 1000BASE-X/SGMII ہے (SGMII اور سیریل گیگابٹ)۔
موازنہ
| انٹرفیس | پنز (ڈیٹا + کنٹرول) | کلاک | زیادہ سے زیادہ ریٹ | وولٹیج | عام استعمال |
|---|---|---|---|---|---|
| MII | 16 | PHY سے 25 MHz | 100M | 3.3/5 V | MCUs، لیگیسی |
| RMII | 7–9 | مشترک 50 MHz | 100M | 3.3 V | ایمبیڈڈ SoC + PHY |
| SMII | 2–3/پورٹ | 125 MHz | 100M | 3.3 V | ملٹی پورٹ PHYs (Cisco) |
| GMII | 24 | 125 MHz (MAC tx / PHY rx) | 1G | 2.5 V | FPGA، آن چپ |
| RGMII | 12 | 125 MHz DDR | 1G | 2.5/1.8/1.5 V | بورڈز پر SoC ↔ PHY |
| SGMII | 4 (2 پیئرز) | 1.25 GBd ایمبیڈڈ | 1G (ریپلیکیشن سے 10/100) | CML | SoC ↔ PHY، SFP کیجز |
PHY مینجمنٹ: MDIO/MDC
| آئٹم | Clause 22 | Clause 45 |
|---|---|---|
| ایڈریسنگ | 5 بٹ PHY ایڈریس، 5 بٹ رجسٹر (32 رجسٹرز) | 5 بٹ پورٹ، 5 بٹ ڈیوائس (PMA/PMD، PCS، PHY XS، DTE XS، AN، وینڈر)، 16 بٹ رجسٹر |
| کلیدی رجسٹرز | 0 کنٹرول (ری سیٹ، رفتار، AN فعال، لوپ بیک)، 1 اسٹیٹس (لنک، AN مکمل)، 2–3 PHY ID (OUI + ماڈل)، 4 AN معاونت کا اعلان، 5 لنک پارٹنر اہلیت، 9/10 1000BASE-T کنٹرول/اسٹیٹس، 17+ وینڈر (RGMII ڈیلے، LEDs) | 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 |
پلگیبل ماڈیولز کے برعکس، جنہیں I²C پر منظم کیا جاتا ہے، MDIO پر نہیں (ٹو وائر انٹرفیس)۔ کاپر SFP کا اندرونی PHY استثنا ہے: بہت سے ڈیزائنز میں اس کے MDIO رجسٹرز ماڈیول کے I²C کے ثانوی ایڈریس سے پہنچنے کے قابل ہوتے ہیں، اور اسی طرح وینڈرز 10/100 فال بیک اور آٹو نیگوشی ایشن رویہ سیٹ کرتے ہیں۔
عام PHYs اور ان کے انٹرفیسز
| PHY فیملی | انٹرفیسز | عام بورڈ |
|---|---|---|
| Marvell 88E1111 / 88E1512 / 88E1510 | GMII، RGMII، SGMII، TBI | راؤٹرز، کاپر SFP ماڈیولز (88E1111) |
| Realtek RTL8211F / RTL8201 | RGMII / RMII | SBCs، صارف راؤٹرز |
| Microchip KSZ9031 / KSZ8081 / LAN8720 | RGMII / RMII / RMII | صنعتی، MCU بورڈز |
| TI DP83867 / DP83848 | RGMII، SGMII / MII، RMII | صنعتی |
| Broadcom BCM54xxx | RGMII، SGMII، QSGMII | انٹرپرائز سوئچز (کواڈ/اوکٹل PHYs) |
| Marvell 88E1543 / 88E1548 | QSGMII کواڈ | 48-پورٹ ایکسیس سوئچز |
انٹرفیس کے لحاظ سے خرابیاں
| علامت | انٹرفیس | وجہ |
|---|---|---|
| کبھی لنک نہیں، PHY ID ٹھیک پڑھتی ہے | RMII | REF_CLK سمت/ماخذ کا عدم تطابق |
| 100M کام کرتا ہے، 1G پر ٹریفک نہیں / CRC | RGMII | ڈیلے موڈ (ID) غلط یا دوگنا |
| PHY LED پر لنک اپ، MAC ڈاؤن کہتا ہے | RGMII/SGMII | ایک طرف اِن بینڈ اسٹیٹس بند، یا MDIO پولنگ غائب |
| 1G پر آدھے پیکٹس ضائع | GMII/RGMII | ٹریس لمبائی اسکیو، غلط وولٹیج لیول |
| PHY MDIO پر نہیں ملتا | کوئی بھی | غلط PHY ایڈریس (اسٹریپنگ پنز)، MDIO پل اپ غائب |
| رفتار 10/100 پر اٹکی | کوئی بھی | AN معاونت کے اعلان والا رجسٹر محدود، کیبل، یا 1G معاونت کے بغیر phy-mode |
CodingBox میں
اس صفحے میں کچھ بھی ماڈیول کے EEPROM سے نہیں گزرتا — سوائے کاپر SFP کے، جس کا اندرونی PHY (عام طور پر 88E1111-کلاس حصہ) اسی I²C کے پیچھے ہے جسے CodingBox پڑھتا ہے۔ جب کاپر ماڈیول 1G پر کام کرے مگر 10/100 پر نہ کرے، جواب اس PHY کی کنفیگریشن اور ہوسٹ کے SGMII/1000BASE-X موڈ میں ہے، A0h شناختی بائٹس میں نہیں (کاپر ایتھرنیٹ اور DAC، SGMII اور سیریل گیگابٹ)۔