MII, RMII, GMII, RGMII: interfaces paralelas al PHY · Interfaces eléctricas: familia MII y AUI · Tarjetas de red y conmutadores · Documentación · CodingBox
CodingBox Documentación

MII, RMII, GMII, RGMII: interfaces paralelas al PHY

Las interfaces paralelas independientes del medio conectan un MAC con un chip PHY de cobre a través de un puñado de centímetros de PCB — dentro de routers, conmutadores pequeños, puntos de acceso, controladores industriales y cualquier placa embebida con un RJ45. Nunca llegan a una jaula de transceptor, pero son el punto de referencia de todo lo que sí lo hace: SGMII es "GMII serializada", XGMII es "GMII a 10G", y el PHY dentro de un SFP de cobre habla una de ellas internamente. Esta página da pines, relojes y temporización para MII, RMII, GMII y RGMII, el problema del retardo de RGMII, el estado en banda, la gestión MDIO, y las averías que produce cada interfaz.

MII (IEEE 802.3 cláusula 22)

ElementoValor
Tasas10 y 100 Mb/s
DatosTXD[3:0] de 4 bits, RXD[3:0] de 4 bits
RelojesTX_CLK y RX_CLK desde el PHY: 25 MHz (100M), 2,5 MHz (10M)
ControlTX_EN, TX_ER, RX_DV, RX_ER, CRS (detección de portadora), COL (colisión)
GestiónMDC, MDIO (compartido)
Cantidad de señales16 de datos/control + 2 de gestión
NivelesTTL de 5 V / 3,3 V
Alcanceunos pocos cm; un PHY por MAC

Todavía se encuentra en microcontroladores y FPGA; sustituida por RMII por la cantidad de pines.

RMII (especificación RMII Consortium v1.2)

ElementoValor
Tasas10 y 100 Mb/s
DatosTXD[1:0] de 2 bits, RXD[1:0]
Relojun único REF_CLK de 50 MHz, compartido por el MAC y el PHY; procedente de un oscilador, del MAC o del PHY (modo PHY-clock-out)
ControlTX_EN, CRS_DV (detección de portadora + datos válidos multiplexados), RX_ER (opcional)
Cantidad de señales7–9
Modo 10 Mb/scada nibble repetido 10× a 50 MHz
Alcancecm

La topología del reloj de referencia de 50 MHz es el bug clásico de RMII: un PHY que espera un reloj externo mientras el SoC espera que el PHY lo genere da una interfaz muerta con un LED de enlace sano.

GMII (cláusula 35)

ElementoValor
Tasas1000 Mb/s; recae en señalización MII para 10/100
DatosTXD[7:0] de 8 bits, RXD[7:0]
RelojesGTX_CLK de 125 MHz desde el MAC para transmisión; RX_CLK de 125 MHz desde el PHY para recepción; TX_CLK desde el PHY usado solo en el fallback a 10/100
ControlTX_EN, TX_ER, RX_DV, RX_ER, CRS, COL
Cantidad de señales24 + gestión
Niveles2,5 V (tolerante a 3,3 V en muchos)
Alcancecm; presupuesto de temporización ajustado a 125 MHz de tasa de datos simple

Hoy es sobre todo una interfaz on-chip o de FPGA; RGMII ocupó su lugar en las placas.

RGMII (GMII reducida, especificación HP/Marvell v1.3 y v2.0)

ElementoValor
Tasas10/100/1000
DatosTXD[3:0] y RXD[3:0] de 4 bits de doble tasa de datos: nibble bajo en flanco de subida, nibble alto en flanco de bajada
RelojesTXC de 125 MHz (desde el MAC), RXC de 125 MHz (desde el PHY); 25 / 2,5 MHz para 100M / 10M
ControlTX_CTL (TX_EN en flanco de subida, TX_EN xor TX_ER en el de bajada), RX_CTL (RX_DV / RX_DV xor RX_ER)
Cantidad de señales12
Niveles2,5 V (v1.3), HSTL de 1,5 V o 1,8 V (opción v2.0); 3,3 V en algunos PHY
Alcance≤ 10–15 cm de pistas de longitud igualada

El problema del retardo

RGMII exige que el reloj llegue 1,5–2,0 ns después de los flancos de datos en el receptor (ventana de setup/hold). Tres formas de conseguirlo:

ModoQuién añade el retardophy-mode del device treeNotas
Retardo en PCB (v1.3)~5 cm de pista de reloj adicionalrgmiiclásico, frágil
Retardo interno en el PHY (RGMII-ID, v2.0)el PHY añade 2 ns en los relojes TX y RXrgmii-idel más común hoy
Retardo interno en el MAC/SoClo añade el SoCrgmii con registro de retardo del lado MAC—
Mixtoel PHY solo en una direcciónrgmii-txid, rgmii-rxidcuando solo un lado lo admite

Añadir el retardo dos veces (PCB y PHY) o no añadirlo produce la avería característica de RGMII: enlace activo a 1G con errores de CRC o sin tráfico, mientras que 100M funciona (100M tiene un período de 40 ns y tolera el sesgo). Se corrige cambiando el registro de retardo del PHY o el phy-mode.

Estado en banda

En reposo, el PHY presenta el enlace, la velocidad y el dúplex en RXD[3:0] para que el MAC pueda reconfigurar su divisor de reloj sin una lectura MDIO: RXD[0] enlace, RXD[2:1] velocidad (00 = 10, 01 = 100, 10 = 1000), RXD[3] dúplex. Algunos MAC lo ignoran y dependen del sondeo MDIO; expectativas no coincidentes dan un enlace que está activo en el PHY y caído en el MAC.

TBI y RTBI

Ten-Bit Interface: los símbolos 1000BASE-X codificados en 8b/10b (10 bits a 125 MHz, RTBI en DDR con 5 bits) entre un MAC/PCS y un SerDes externo o un PHY óptico. Obsoleta en placas; su descendiente serie es 1000BASE-X/SGMII (SGMII y gigabit serie).

Comparación

InterfazPines (datos + control)RelojTasa máximaVoltajeUso típico
MII1625 MHz desde el PHY100M3,3/5 VMCU, legado
RMII7–950 MHz compartido100M3,3 VSoC embebido + PHY
SMII2–3/puerto125 MHz100M3,3 VPHY multipuerto (Cisco)
GMII24125 MHz (tx del MAC / rx del PHY)1G2,5 VFPGA, on-chip
RGMII12125 MHz DDR1G2,5/1,8/1,5 VSoC ↔ PHY en placas
SGMII4 (2 pares)1,25 GBd embebido1G (10/100 por replicación)CMLSoC ↔ PHY, jaulas SFP

Gestión del PHY: MDIO/MDC

ElementoCláusula 22Cláusula 45
Direccionamientodirección de PHY de 5 bits, registro de 5 bits (32 registros)puerto de 5 bits, dispositivo de 5 bits (PMA/PMD, PCS, PHY XS, DTE XS, AN, del fabricante), registro de 16 bits
Registros clave0 control (reinicio, velocidad, habilitación de AN, bucle interno), 1 estado (enlace, AN completa), 2–3 ID de PHY (OUI + modelo), 4 anuncio de AN, 5 capacidad del par de enlace, 9/10 control/estado de 1000BASE-T, 17+ del fabricante (retardo RGMII, LED)1.x PMA, 3.x PCS, 7.x AN, 30.x/31.x del fabricante
VelocidadMDC ≤ 2,5 MHz (a menudo más rápido en la práctica)igual
Herramientas de Linuxmii-tool -v eth0, phytool read eth0/1/0, ethtool eth0; controlador vía phylib, phylinkphytool read eth0/1:1/0

Contraste con los módulos conectables, que se gestionan por I²C, no por MDIO (Interfaz de dos hilos). El PHY interno de un SFP de cobre es la excepción: sus registros MDIO son accesibles a través del I²C del módulo en una dirección secundaria en muchos diseños, que es como los fabricantes configuran el fallback a 10/100 y el comportamiento de autonegociación.

PHY comunes y sus interfaces

Familia de PHYInterfacesPlaca típica
Marvell 88E1111 / 88E1512 / 88E1510GMII, RGMII, SGMII, TBIrouters, módulos SFP de cobre (88E1111)
Realtek RTL8211F / RTL8201RGMII / RMIISBC, routers de consumo
Microchip KSZ9031 / KSZ8081 / LAN8720RGMII / RMII / RMIIindustrial, placas MCU
TI DP83867 / DP83848RGMII, SGMII / MII, RMIIindustrial
Broadcom BCM54xxxRGMII, SGMII, QSGMIIconmutadores empresariales (PHY cuádruples/óctuples)
Marvell 88E1543 / 88E1548QSGMII cuádrupleconmutadores de acceso de 48 puertos

Averías por interfaz

SíntomaInterfazCausa
Nunca hay enlace, el ID de PHY se lee bienRMIIdiscrepancia de dirección/fuente de REF_CLK
100M funciona, 1G sin tráfico / CRCRGMIImodo de retardo (ID) incorrecto o duplicado
Enlace activo en el LED del PHY, el MAC dice caídoRGMII/SGMIIestado en banda desactivado en un lado, o sondeo MDIO ausente
Se pierde la mitad de los paquetes a 1GGMII/RGMIIsesgo de longitud de pista, nivel de voltaje incorrecto
PHY no encontrado en MDIOcualquieradirección de PHY incorrecta (pines de strapping), pull-up de MDIO ausente
Velocidad atascada en 10/100cualquieraregistro de anuncio de AN limitado, cable, o phy-mode sin soporte de 1G

En CodingBox

Nada en esta página pasa por la EEPROM del módulo — excepto el SFP de cobre, cuyo PHY interno (típicamente una pieza de clase 88E1111) se sitúa detrás del mismo I²C que lee CodingBox. Cuando un módulo de cobre funciona a 1G pero no a 10/100, la respuesta está en la configuración de ese PHY y en el modo SGMII/1000BASE-X del host, no en los bytes de identidad de A0h (Ethernet de cobre y DAC, SGMII y gigabit serie).


Si encuentra una inexactitud o un error en este material, seleccione el fragmento correspondiente y pulse Ctrl+Enter para .