MII, RMII, GMII, RGMII : interfaces parallèles vers le PHY · Interfaces électriques : famille MII et AUI · Cartes réseau et commutateurs · Documentation · CodingBox
CodingBox Documentation

MII, RMII, GMII, RGMII : interfaces parallèles vers le PHY

Les interfaces parallèles indépendantes du média relient un MAC à une puce PHY cuivre sur quelques centimètres de PCB — à l’intérieur des routeurs, petits commutateurs, points d’accès, contrôleurs industriels et de toute carte embarquée dotée d’un RJ45. Elles n’atteignent jamais une cage de transceiver, mais elles sont le point de référence de tout ce qui le fait : SGMII est « GMII sérialisé », XGMII est « GMII à 10G », et le PHY à l’intérieur d’un SFP cuivre parle l’une d’elles en interne. Cette page donne les broches, horloges et timings de MII, RMII, GMII et RGMII, le problème de délai RGMII, le statut in-band, la gestion MDIO, et les défauts que produit chaque interface.

MII (IEEE 802.3 Clause 22)

ÉlémentValeur
Débits10 et 100 Mb/s
DonnéesTXD[3:0] 4 bits, RXD[3:0] 4 bits
HorlogesTX_CLK et RX_CLK fournies par le PHY : 25 MHz (100M), 2,5 MHz (10M)
ContrôleTX_EN, TX_ER, RX_DV, RX_ER, CRS (détection de porteuse), COL (collision)
GestionMDC, MDIO (partagés)
Nombre de signaux16 données/contrôle + 2 gestion
Niveaux5 V / 3,3 V TTL
Portéequelques cm ; un PHY par MAC

Encore présent sur les microcontrôleurs et FPGA ; supplanté par RMII pour le nombre de broches.

RMII (spécification RMII Consortium v1.2)

ÉlémentValeur
Débits10 et 100 Mb/s
DonnéesTXD[1:0] 2 bits, RXD[1:0]
Horlogeune seule REF_CLK 50 MHz, partagée par le MAC et le PHY ; fournie par un oscillateur, le MAC, ou le PHY (mode PHY-clock-out)
ContrôleTX_EN, CRS_DV (détection de porteuse + données valides multiplexées), RX_ER (optionnel)
Nombre de signaux7–9
Mode 10 Mb/schaque nibble répété 10× à 50 MHz
Portéecm

La topologie de l’horloge de référence 50 MHz est le bug classique du RMII : un PHY qui attend une horloge externe alors que le SoC attend que le PHY la fournisse donne une interface morte avec une LED de liaison pourtant allumée.

GMII (Clause 35)

ÉlémentValeur
Débits1000 Mb/s ; repli sur la signalisation MII pour 10/100
DonnéesTXD[7:0] 8 bits, RXD[7:0]
HorlogesGTX_CLK 125 MHz fournie par le MAC pour l’émission ; RX_CLK 125 MHz fournie par le PHY pour la réception ; TX_CLK du PHY utilisée uniquement en repli 10/100
ContrôleTX_EN, TX_ER, RX_DV, RX_ER, CRS, COL
Nombre de signaux24 + gestion
Niveaux2,5 V (tolérant 3,3 V sur beaucoup de modèles)
Portéecm ; budget de timing serré à 125 MHz en simple débit de données

Aujourd’hui surtout une interface interne au circuit ou en FPGA ; le RGMII l’a remplacée sur les cartes.

RGMII (GMII réduit, spécification HP/Marvell v1.3 et v2.0)

ÉlémentValeur
Débits10/100/1000
DonnéesTXD[3:0] et RXD[3:0] 4 bits, double débit de données : nibble bas sur le front montant, nibble haut sur le front descendant
HorlogesTXC 125 MHz (depuis le MAC), RXC 125 MHz (depuis le PHY) ; 25 / 2,5 MHz pour 100M / 10M
ContrôleTX_CTL (TX_EN sur front montant, TX_EN xor TX_ER sur front descendant), RX_CTL (RX_DV / RX_DV xor RX_ER)
Nombre de signaux12
Niveaux2,5 V (v1.3), 1,5 V HSTL ou 1,8 V (option v2.0) ; 3,3 V sur certains PHY
Portée≤ 10–15 cm, pistes de longueur appairée

Le problème du délai

Le RGMII exige que l’horloge arrive 1,5–2,0 ns après les fronts de données au récepteur (fenêtre setup/hold). Trois façons d’y parvenir :

ModeQui ajoute le délaiphy-mode du device treeRemarques
Délai sur le PCB (v1.3)~5 cm de piste d’horloge supplémentairergmiiclassique, fragile
Délai interne dans le PHY (RGMII-ID, v2.0)le PHY ajoute 2 ns sur les horloges TX et RXrgmii-idle plus courant aujourd’hui
Délai interne dans le MAC/SoCajouté par le SoCrgmii avec registre de délai côté MAC—
MixtePHY sur une seule directionrgmii-txid, rgmii-rxidquand un seul côté le prend en charge

Ajouter le délai deux fois (PCB et PHY), ou pas du tout, produit le défaut RGMII caractéristique : liaison up en 1G avec des erreurs CRC ou sans trafic, alors que le 100M fonctionne (le 100M a une période de 40 ns et tolère le décalage). À corriger en changeant le registre de délai du PHY ou le phy-mode.

Statut in-band

Au repos, le PHY pilote la liaison, le débit et le duplex sur RXD[3:0] pour que le MAC puisse reconfigurer son diviseur d’horloge sans lecture MDIO : RXD[0] liaison, RXD[2:1] débit (00 = 10, 01 = 100, 10 = 1000), RXD[3] duplex. Certains MAC l’ignorent et s’appuient sur l’interrogation MDIO ; un décalage entre les attentes donne une liaison up côté PHY et down côté MAC.

TBI et RTBI

Interface à dix bits : les symboles 1000BASE-X codés en 8b/10b (10 bits à 125 MHz, RTBI en DDR avec 5 bits) entre un MAC/PCS et un SerDes externe ou un PHY optique. Obsolète sur les cartes ; son descendant série est 1000BASE-X/SGMII (SGMII et gigabit série).

Comparaison

InterfaceBroches (données + ctrl)HorlogeDébit maxTensionUsage typique
MII1625 MHz depuis le PHY100M3,3/5 VMCU, legacy
RMII7–950 MHz partagée100M3,3 VSoC embarqué + PHY
SMII2–3/port125 MHz100M3,3 VPHY multiport (Cisco)
GMII24125 MHz (MAC tx / PHY rx)1G2,5 VFPGA, interne au circuit
RGMII12125 MHz DDR1G2,5/1,8/1,5 VSoC ↔ PHY sur cartes
SGMII4 (2 paires)1,25 GBd intégrée1G (10/100 par réplication)CMLSoC ↔ PHY, cages SFP

Gestion du PHY : MDIO/MDC

ÉlémentClause 22Clause 45
Adressageadresse PHY 5 bits, registre 5 bits (32 registres)port 5 bits, dispositif 5 bits (PMA/PMD, PCS, PHY XS, DTE XS, AN, constructeur), registre 16 bits
Registres clés0 contrôle (reset, débit, activation AN, loopback), 1 état (liaison, AN terminée), 2–3 PHY ID (OUI + modèle), 4 annonce AN, 5 capacité du partenaire de liaison, 9/10 contrôle/état 1000BASE-T, 17+ constructeur (délai RGMII, LED)1.x PMA, 3.x PCS, 7.x AN, 30.x/31.x constructeur
VitesseMDC ≤ 2,5 MHz (souvent plus rapide en pratique)identique
Outils Linuxmii-tool -v eth0, phytool read eth0/1/0, ethtool eth0 ; pilote via phylib, phylinkphytool read eth0/1:1/0

À la différence des modules enfichables, gérés via I²C et non via MDIO (Interface deux fils). Le PHY interne d’un SFP cuivre fait exception : ses registres MDIO sont accessibles via l’I²C du module, à une adresse secondaire sur de nombreuses conceptions, ce qui permet aux constructeurs de régler le repli 10/100 et le comportement d’autonégociation.

PHY courants et leurs interfaces

Famille de PHYInterfacesCarte typique
Marvell 88E1111 / 88E1512 / 88E1510GMII, RGMII, SGMII, TBIrouteurs, modules SFP cuivre (88E1111)
Realtek RTL8211F / RTL8201RGMII / RMIISBC, routeurs grand public
Microchip KSZ9031 / KSZ8081 / LAN8720RGMII / RMII / RMIIindustriel, cartes MCU
TI DP83867 / DP83848RGMII, SGMII / MII, RMIIindustriel
Broadcom BCM54xxxRGMII, SGMII, QSGMIIcommutateurs d’entreprise (PHY quad/octal)
Marvell 88E1543 / 88E1548QSGMII quadcommutateurs d’accès 48 ports

Défauts par interface

SymptômeInterfaceCause
Jamais de liaison, PHY ID se lit correctementRMIIincohérence de direction/source de REF_CLK
Le 100M fonctionne, pas de trafic / CRC en 1GRGMIImode de délai (ID) incorrect ou doublé
Liaison up sur la LED du PHY, down côté MACRGMII/SGMIIstatut in-band désactivé d’un côté, ou interrogation MDIO absente
La moitié des paquets perdus en 1GGMII/RGMIIdécalage de longueur de piste, mauvais niveau de tension
PHY introuvable sur MDIOtoutesmauvaise adresse PHY (broches de strapping), pull-up MDIO absent
Débit bloqué à 10/100toutesregistre d’annonce AN limité, câble, ou phy-mode sans prise en charge du 1G

Dans CodingBox

Rien sur cette page ne transite par l’EEPROM du module — sauf le SFP cuivre, dont le PHY interne (typiquement un composant de classe 88E1111) se trouve derrière le même I²C que celui que lit CodingBox. Quand un module cuivre fonctionne en 1G mais pas en 10/100, la réponse se trouve dans la configuration de ce PHY et le mode SGMII/1000BASE-X de l’hôte, pas dans les octets d’identité A0h (Ethernet cuivre et DAC, SGMII et gigabit série).


Si vous trouvez une inexactitude ou une erreur dans cet article, sélectionnez le passage concerné et appuyez sur Ctrl+Enter pour .