MII, RMII, GMII, RGMII: PHY-এর সঙ্গে প্যারালাল ইন্টারফেস · বৈদ্যুতিক ইন্টারফেস: MII পরিবার ও AUI · নেটওয়ার্ক কার্ড ও সুইচ · ডকুমেন্টেশন · CodingBox
CodingBox ডকুমেন্টেশন

MII, RMII, GMII, RGMII: PHY-এর সঙ্গে প্যারালাল ইন্টারফেস

প্যারালেল মিডিয়া-ইন্ডিপেন্ডেন্ট ইন্টারফেসগুলো কয়েক সেন্টিমিটার PCB-এর ওপর দিয়ে একটি MAC-কে কপার PHY চিপের সঙ্গে যুক্ত করে: রাউটার, ছোট সুইচ, অ্যাক্সেস পয়েন্ট, ইন্ডাস্ট্রিয়াল কন্ট্রোলার এবং RJ45-যুক্ত প্রতিটি এমবেডেড বোর্ডের ভেতরে। এগুলো কখনো ট্রান্সিভার কেজ পর্যন্ত পৌঁছায় না, তবে যা পৌঁছায় তার সবকিছুর রেফারেন্স পয়েন্ট এগুলোই: SGMII হলো “সিরিয়ালাইজড GMII”, XGMII হলো “10G-তে GMII”, আর কপার SFP-এর ভেতরের PHY অভ্যন্তরীণভাবে এদের একটির ভাষায় কথা বলে। এই পেজে MII, RMII, GMII ও RGMII-এর পিন, ক্লক ও টাইমিং, RGMII ডিলে সমস্যা, ইন-ব্যান্ড স্ট্যাটাস, MDIO ম্যানেজমেন্ট এবং প্রতিটি ইন্টারফেসে যে ত্রুটিগুলো দেখা দেয়, তা দেওয়া হয়েছে।

MII (IEEE 802.3 ক্লজ 22)

বিষয়মান
রেট10 ও 100 Mb/s
ডেটা4-বিট TXD[3:0], 4-বিট 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 কনসোর্টিয়ামের স্পেসিফিকেশন v1.2)

বিষয়মান
রেট10 ও 100 Mb/s
ডেটা2-বিট TXD[1:0], RXD[1:0]
ক্লকএকটিমাত্র REF_CLK 50 MHz, MAC ও PHY ভাগ করে নেয়; উৎস হতে পারে অসিলেটর, MAC বা PHY (PHY-ক্লক-আউট মোড)
কন্ট্রোলTX_EN, CRS_DV (ক্যারিয়ার সেন্স + ডেটা ভ্যালিড, একই লাইনে মাল্টিপ্লেক্স করা), RX_ER (ঐচ্ছিক)
সিগন্যালের সংখ্যা7–9
10 Mb/s মোডপ্রতিটি নিবল 50 MHz-এ 10× পুনরাবৃত্ত হয়
পাল্লাcm

50 MHz রেফারেন্স-ক্লকের টপোলজিই RMII-এর চিরাচরিত বাগ: PHY বাইরের ক্লক আশা করে, আর SoC আশা করে PHY-ই ক্লক দেবে, এমন হলে ইন্টারফেস মৃত থাকে অথচ লিংক LED স্বাভাবিক জ্বলে।

GMII (ক্লজ 35)

বিষয়মান
রেট1000 Mb/s; 10/100-এর জন্য MII সিগন্যালিংয়ে ফিরে যায়
ডেটা8-বিট 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 (রিডিউসড 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-এর বিকল্প); কিছু 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—
মিশ্র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] ডুপ্লেক্স। কিছু MAC এটি উপেক্ষা করে MDIO পোলিংয়ের ওপর নির্ভর করে; প্রত্যাশা না মিললে এমন লিংক দেখা যায়, যা PHY-তে আপ আর MAC-এ ডাউন।

TBI ও RTBI

টেন-বিট ইন্টারফেস: MAC/PCS এবং বাইরের SerDes বা অপটিক্যাল PHY-এর মধ্যে 8b/10b-এনকোডেড 1000BASE-X সিম্বল (125 MHz-এ 10 বিট; RTBI-তে DDR-এ 5 বিট)। বোর্ডে এটি অপ্রচলিত; এর সিরিয়াল উত্তরসূরি 1000BASE-X/SGMII (SGMII ও সিরিয়াল গিগাবিট)।

তুলনা

ইন্টারফেসপিন (ডেটা + কন্ট্রোল)ক্লকসর্বোচ্চ রেটভোল্টেজসাধারণ ব্যবহার
MII16PHY থেকে 25 MHz100M3.3/5 VMCU, লিগ্যাসি
RMII7–950 MHz শেয়ার্ড100M3.3 Vএমবেডেড SoC + PHY
SMIIপ্রতি পোর্টে 2–3125 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

বিষয়ক্লজ 22ক্লজ 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 ডিলে, 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

এর বিপরীতে প্লাগেবল মডিউল I²C দিয়ে পরিচালিত হয়, MDIO দিয়ে নয় (টু-ওয়্যার ইন্টারফেস)। কপার 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এন্টারপ্রাইজ সুইচ (কোয়াড/অক্টাল 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 অ্যাডভার্টাইজমেন্ট রেজিস্টার সীমিত, ক্যাবল, অথবা 1G সমর্থনহীন phy-mode

CodingBox-এ

এই পেজের কিছুই মডিউলের EEPROM দিয়ে যায় না, শুধু কপার SFP ছাড়া: তার অভ্যন্তরীণ PHY (সাধারণত 88E1111 শ্রেণির একটি চিপ) বসে সেই একই I²C-এর পেছনে, যা CodingBox পড়ে। কপার মডিউল 1G-তে কাজ করে কিন্তু 10/100-এ করে না, তখন উত্তর খুঁজতে হয় ওই PHY-এর কনফিগারেশনে এবং হোস্টের SGMII/1000BASE-X মোডে, A0h-এর শনাক্তকরণ বাইটে নয় (কপার ইথারনেট ও DAC, SGMII ও সিরিয়াল গিগাবিট)।


এই নিবন্ধে কোনো অশুদ্ধ তথ্য বা ভুল পেলে সংশ্লিষ্ট অংশটি নির্বাচন করুন এবং Ctrl+Enter চেপে ।