MII, RMII, GMII, RGMII: giao diện song song tới PHY · Giao diện điện: họ MII và AUI · Card mạng và switch · Tài liệu · CodingBox
CodingBox Tài liệu

MII, RMII, GMII, RGMII: giao diện song song tới PHY

Các giao diện độc lập với môi trường truyền dạng song song kết nối một MAC với một chip PHY đồng qua vài centimet đường mạch PCB — bên trong router, switch nhỏ, access point, bộ điều khiển công nghiệp và mọi board nhúng có cổng RJ45. Chúng không bao giờ chạm tới một cage transceiver, nhưng lại là điểm quy chiếu cho mọi thứ có chạm tới nó: SGMII là “GMII được nối tiếp hóa”, XGMII là “GMII ở 10G”, và PHY bên trong một SFP đồng nói một trong số các giao diện này ở bên trong. Trang này trình bày chân tín hiệu, xung nhịp và định thời cho MII, RMII, GMII và RGMII, vấn đề trễ của RGMII, trạng thái trong băng, quản lý qua MDIO, và các lỗi mà mỗi giao diện gây ra.

MII (IEEE 802.3 Clause 22)

MụcGiá trị
Tốc độ10 và 100 Mb/s
Dữ liệuTXD[3:0] 4 bit, RXD[3:0] 4 bit
Xung nhịpTX_CLK và RX_CLK từ PHY: 25 MHz (100M), 2,5 MHz (10M)
Điều khiểnTX_EN, TX_ER, RX_DV, RX_ER, CRS (dò sóng mang), COL (xung đột)
Quản lýMDC, MDIO (dùng chung)
Số tín hiệu16 dữ liệu/điều khiển + 2 quản lý
Mức điện áp5 V / 3,3 V TTL
Cự lyvài cm; một PHY cho mỗi MAC

Vẫn còn xuất hiện trên vi điều khiển và FPGA; đã bị RMII thay thế nhờ số chân ít hơn.

RMII (đặc tả RMII Consortium v1.2)

MụcGiá trị
Tốc độ10 và 100 Mb/s
Dữ liệuTXD[1:0] 2 bit, RXD[1:0]
Xung nhịpmột REF_CLK 50 MHz duy nhất, dùng chung giữa MAC và PHY; lấy từ một bộ dao động, từ MAC, hoặc từ PHY (chế độ PHY-clock-out)
Điều khiểnTX_EN, CRS_DV (dò sóng mang + dữ liệu hợp lệ ghép kênh), RX_ER (tùy chọn)
Số tín hiệu7–9
Chế độ 10 Mb/smỗi nibble được lặp lại 10× ở 50 MHz
Cự lycm

Cấu trúc xung nhịp tham chiếu 50 MHz chính là lỗi kinh điển của RMII: một PHY đang chờ xung nhịp từ bên ngoài trong khi SoC lại kỳ vọng chính PHY phải tạo ra xung nhịp đó sẽ cho ra một giao diện chết hoàn toàn dù đèn LED liên kết vẫn sáng bình thường.

GMII (Clause 35)

MụcGiá trị
Tốc độ1000 Mb/s; lùi về tín hiệu kiểu MII cho 10/100
Dữ liệuTXD[7:0] 8 bit, RXD[7:0]
Xung nhịpGTX_CLK 125 MHz từ MAC cho chiều phát; RX_CLK 125 MHz từ PHY cho chiều thu; TX_CLK từ PHY chỉ dùng khi lùi về 10/100
Điều khiểnTX_EN, TX_ER, RX_DV, RX_ER, CRS, COL
Số tín hiệu24 + quản lý
Mức điện áp2,5 V (chịu được 3,3 V trên nhiều chip)
Cự lycm; quỹ thời gian eo hẹp ở 125 MHz single-data-rate

Ngày nay chủ yếu là một giao diện trên chip hoặc trong FPGA; RGMII đã thay thế vị trí của nó trên các board.

RGMII (Reduced GMII, đặc tả HP/Marvell v1.3 và v2.0)

MụcGiá trị
Tốc độ10/100/1000
Dữ liệuTXD[3:0] và RXD[3:0] 4 bit, double data rate: nibble thấp ở sườn lên, nibble cao ở sườn xuống
Xung nhịpTXC 125 MHz (từ MAC), RXC 125 MHz (từ PHY); 25 / 2,5 MHz cho 100M / 10M
Điều khiểnTX_CTL (TX_EN ở sườn lên, TX_EN xor TX_ER ở sườn xuống), RX_CTL (RX_DV / RX_DV xor RX_ER)
Số tín hiệu12
Mức điện áp2,5 V (v1.3), 1,5 V HSTL hoặc 1,8 V (tùy chọn v2.0); 3,3 V trên một số PHY
Cự ly≤ 10–15 cm, đường mạch đã cân chỉnh độ dài

Vấn đề trễ

RGMII yêu cầu xung nhịp phải đến sau các sườn dữ liệu 1,5–2,0 ns tại phía thu (cửa sổ thời gian thiết lập/giữ). Có ba cách để đạt được điều đó:

Chế độAi thêm độ trễphy-mode trong device treeGhi chú
Trễ trên PCB (v1.3)~5 cm đường mạch xung nhịp thêm vàorgmiikiểu kinh điển, dễ hỏng
Trễ nội bộ trong PHY (RGMII-ID, v2.0)PHY tự thêm 2 ns vào xung nhịp TX và RXrgmii-idphổ biến nhất hiện nay
Trễ nội bộ trong MAC/SoCSoC tự thêm vàorgmii với thanh ghi trễ phía MAC—
Kết hợpPHY chỉ thêm trễ ở một chiềurgmii-txid, rgmii-rxidkhi chỉ một phía hỗ trợ

Thêm trễ hai lần (cả PCB lẫn PHY) hoặc không thêm trễ nào cả sẽ gây ra lỗi đặc trưng của RGMII: liên kết lên ở 1G nhưng có lỗi CRC hoặc không có lưu lượng, trong khi 100M vẫn hoạt động bình thường (100M có chu kỳ 40 ns nên chịu được độ lệch). Khắc phục bằng cách đổi thanh ghi trễ của PHY hoặc đổi phy-mode.

Trạng thái trong băng

Khi rảnh, PHY đưa trạng thái liên kết, tốc độ và duplex lên RXD[3:0] để MAC có thể cấu hình lại bộ chia xung nhịp của mình mà không cần đọc MDIO: RXD[0] là liên kết, RXD[2:1] là tốc độ (00 = 10, 01 = 100, 10 = 1000), RXD[3] là duplex. Một số MAC bỏ qua thông tin này và dựa vào việc truy vấn định kỳ MDIO; khi hai bên kỳ vọng khác nhau sẽ tạo ra một liên kết mà PHY thấy up còn MAC thấy down.

TBI và RTBI

Ten-Bit Interface: các ký hiệu 1000BASE-X được mã hóa 8b/10b (10 bit ở 125 MHz, RTBI ở DDR với 5 bit) giữa một MAC/PCS và một SerDes hoặc PHY quang bên ngoài. Đã lỗi thời trên các board; hậu duệ dạng nối tiếp của nó là 1000BASE-X/SGMII (SGMII và serial gigabit).

So sánh

Giao diệnChân (dữ liệu + điều khiển)Xung nhịpTốc độ tối đaĐiện ápNơi dùng phổ biến
MII1625 MHz từ PHY100M3,3/5 VMCU, thế hệ cũ
RMII7–950 MHz dùng chung100M3,3 VSoC nhúng + PHY
SMII2–3/cổng125 MHz100M3,3 VPHY đa cổng (Cisco)
GMII24125 MHz (MAC tx / PHY rx)1G2,5 VFPGA, trên chip
RGMII12125 MHz DDR1G2,5/1,8/1,5 VSoC ↔ PHY trên board
SGMII4 (2 cặp)1,25 GBd nhúng1G (10/100 bằng nhân bản)CMLSoC ↔ PHY, cage SFP

Quản lý PHY: MDIO/MDC

MụcClause 22Clause 45
Đánh địa chỉđịa chỉ PHY 5 bit, thanh ghi 5 bit (32 thanh ghi)cổng 5 bit, thiết bị 5 bit (PMA/PMD, PCS, PHY XS, DTE XS, AN, riêng của nhà sản xuất), thanh ghi 16 bit
Thanh ghi quan trọng0 control (reset, tốc độ, bật AN, loopback), 1 status (liên kết, AN hoàn tất), 2–3 PHY ID (OUI + model), 4 AN advertisement, 5 khả năng của link-partner, 9/10 control/status của 1000BASE-T, 17+ riêng của nhà sản xuất (trễ RGMII, đèn LED)1.x PMA, 3.x PCS, 7.x AN, 30.x/31.x riêng của nhà sản xuất
Tốc độMDC ≤ 2,5 MHz (trong thực tế thường nhanh hơn)như nhau
Công cụ Linuxmii-tool -v eth0, phytool read eth0/1/0, ethtool eth0; driver qua phylib, phylinkphytool read eth0/1:1/0

Khác với module cắm rút, vốn được quản lý qua I²C chứ không phải MDIO (Giao diện hai dây). PHY bên trong của SFP đồng là trường hợp ngoại lệ: các thanh ghi MDIO của nó có thể truy cập được qua I²C của module ở một địa chỉ thứ hai trên nhiều thiết kế, đây chính là cách các nhà sản xuất đặt hành vi fallback 10/100 và tự động đàm phán.

Các PHY phổ biến và giao diện của chúng

Họ PHYGiao diệnBoard tiêu biểu
Marvell 88E1111 / 88E1512 / 88E1510GMII, RGMII, SGMII, TBIrouter, module SFP đồng (88E1111)
Realtek RTL8211F / RTL8201RGMII / RMIISBC, router gia dụng
Microchip KSZ9031 / KSZ8081 / LAN8720RGMII / RMII / RMIIcông nghiệp, board MCU
TI DP83867 / DP83848RGMII, SGMII / MII, RMIIcông nghiệp
Broadcom BCM54xxxRGMII, SGMII, QSGMIIswitch doanh nghiệp (PHY quad/octal)
Marvell 88E1543 / 88E1548QSGMII quadswitch access 48 cổng

Lỗi theo từng giao diện

Triệu chứngGiao diệnNguyên nhân
Không bao giờ lên liên kết, đọc PHY ID vẫn bình thườngRMIIlệch hướng/nguồn REF_CLK
100M hoạt động, 1G không có lưu lượng / lỗi CRCRGMIIsai chế độ trễ (ID) hoặc bị nhân đôi
Đèn LED của PHY báo liên kết lên, MAC báo downRGMII/SGMIItrạng thái trong băng bị tắt ở một phía, hoặc thiếu truy vấn định kỳ MDIO
Mất một nửa gói tin ở 1GGMII/RGMIIlệch độ dài đường mạch, sai mức điện áp
Không tìm thấy PHY trên MDIObất kỳsai địa chỉ PHY (chân strap), thiếu điện trở pull-up cho MDIO
Tốc độ bị kẹt ở 10/100bất kỳthanh ghi AN advertisement bị giới hạn, do cáp, hoặc phy-mode không hỗ trợ 1G

Trong CodingBox

Không có gì trên trang này đi qua EEPROM của module — ngoại trừ SFP đồng, có PHY bên trong (thường thuộc lớp 88E1111) nằm ngay sau cùng đường I²C mà CodingBox đọc. Khi một module đồng hoạt động ở 1G nhưng không hoạt động ở 10/100, câu trả lời nằm ở cấu hình của PHY đó và chế độ SGMII/1000BASE-X của host, chứ không nằm trong các byte nhận dạng ở A0h (Ethernet đồng và DAC, SGMII và serial gigabit).


Nếu bạn phát hiện thông tin chưa chính xác hoặc lỗi trong bài viết này, hãy chọn đoạn liên quan và nhấn Ctrl+Enter để .