Management Data Input/Output
# Management Data Input/Output

Management Data Input/Output (MDIO), conosciuta anche come Serial Management Interface (SMI) o Media Independent Interface Management (MIIM), è un bus seriale per la gestione del Media Independent Interface (MII), definito per la famiglia di standard Ethernet IEEE 802.3. L'MII connette il dispositivo Media Access Control (MAC) con i circuiti Ethernet physical layer (PHY). Il dispositivo MAC che controlla l'MDIO è chiamato Station Management Entity (SME).

## Relazioni con Media Independent Interface (MII)

L'MII ha due segnali di interfaccia:

* un'interfaccia dati verso l'Ethernet MAC, per invio e ricezione di pacchetti Ethernet.
* un'interfaccia di gestione PHY, chiamata MDIO, per leggere e scrivere registri di controllo e di stato del componente PHY, utilizzati per configurare il dispositivo PHY prima e per controllare lo stato del collegamento durante l'operatività.

## Specifiche elettriche

L'interfaccia MDIO è realizzata con due segnali:

* MDC clock: pilotata dal dispositivo MAC verso il PHY
* MDIO data: bidirezionale, pilotata dal MAC durante l'operazione di scrittura e l'inizio di una lettura, dal PHY per fornire i dati contenuti nei registri dopo la richiesta di lettura da parte del MAC.

Il bus supporta un singolo MAC come master della comunicazione e può avere fino a 32 PHY slave.

Il segnale MDC può essere periodico, con un periodo minimo di 400 ns, corrispondente ad una frequenza massima di 2.5 MHz. Integrati più moderni consentono frequenze superiori.

L'MDIO richiede resistenze di pull up da 1.5 k Ohm a 10 k Ohm, è da tenere in considerazione il peggior caso di perdita di corrente che avviene con 32 dispositivi PHY ed un MAC.

## Temporizzazioni del bus

Prima di un accesso ai registri il componente PHY richiede un preambolo di sincronizzazione, composto da 32 bit al livello logico uno inviati dal MAC sulla linea MDIO. Lo scambio dati consiste in 16 bit di controllo seguiti da 16 bit di dati. I bit di controllo prevedono 2 bit di start, 2 bit per il tipo di operazione (read o write), l'indirizzo del dispositivo PHY (5 bit) e l'indirizzo del registro (5 bit). Seguono 2 bit di turnaround, un intervallo necessario per evitare contese sul bus durante il cambio di direzione (da scrittura a lettura) del segnale MDIO. Durante un comando di scrittura il MAC fornisce indirizzo e dati. Per un comandi di lettura, il PHY prende il controllo del bus alla fine dei bit di indirizzo (durante la fase di turnaround) per fornire al MAC i dati del registro richiesto.

Quando il MAC comanda la linea MDIO deve garantire un livello stabile 10 ns (setup time) prima del fronte di salita del segnale di clock MDC. Inoltre l'MDIO deve rimanere stabile per 10 ns (hold time) dopo il fronte di salita dell'MDC.

Quando il PHY comanda la linea MDIO deve fornire il segnale in un tempo compreso tra 0 e 300 ns dopo il fronte di salita del clock. Quindi, con un periodo minimo del clock di 400 ns (corrispondenti a 2.5 MHz di massima frequenza di clock) il MAC può campionare la linea MDIO durante la seconda metà del ciclo basso del clock.

