Interfaz MII y RMII de la red STM32

Tabla de contenido

1. Interfaz MII

2. Interfaz RMII

3. Los pines correspondientes de las dos interfaces.

4. Elección de MII y RMII


En el último artículo " Interfaz SMI de la red STM32 ", presentamos la interfaz SMI del controlador de red STM32. La interfaz SMI se utiliza principalmente para comunicarse con el chip PHY externo y configurar el registro PHY.

El flujo de datos de la comunicación de red real no se transmite a través de la interfaz SMI, sino a través de la interfaz MII o la comunicación RMII.

1. Interfaz MII

La Interfaz Independiente de Medios (MII) define la interconexión entre la subcapa MAC y la PHY a velocidades de transmisión de datos de 10 Mbit / sy 100 Mbit / s.

imagen

Introducción a la definición de pines:

  1. MII_TX_CLK: Señal de reloj continua. Esta señal proporciona el tiempo de referencia para la transmisión de datos TX. La frecuencia nominal es: 2,5 MHz a una velocidad de 10 Mbit / s; 25 MHz a una velocidad de 100 Mbit / s.

  2. MII_TXD [3: 0]: Señal de transmisión de datos. Esta señal es un grupo de 4 señales de datos, que son impulsadas sincrónicamente por la subcapa MAC y se convierte en una señal válida (datos válidos) cuando la señal MII_TX_EN es válida. MII_TXD [0] es el bit menos significativo, MII_TXD [3] es el bit más significativo. Cuando MII_TX_EN está deshabilitado, el envío de datos no tendrá ningún impacto en la PHY.

  3. MII_TX_EN: Enviar señal de habilitación. Esta señal indica que el MAC está enviando nibbles para MII. Esta señal debe sincronizarse con el primer nibble del encabezado (MII_TX_CLK) y debe sincronizarse cuando todos los nibbles que se van a enviar se envían al MII.

  4. MII_RX_CLK: Señal de reloj continua. Esta señal proporciona el tiempo de referencia para la transmisión de datos RX. La frecuencia nominal es: 2,5 MHz a una velocidad de 10 Mbit / s; 25 MHz a una velocidad de 100 Mbit / s.

  5. MII_RXD [3: 0]: señal de recepción de datos. Esta señal es un grupo de 4 señales de datos, que son impulsadas sincrónicamente por la PHY, y son señales válidas (datos válidos) cuando la señal MII_RX_DV es válida. MII_RXD [0] es el bit menos significativo, MII_RXD [3] es el bit más significativo. Cuando MII_RX_DV está deshabilitado y MII_RX_ER está habilitado, el valor MII_RXD [3: 0] específico se usa para transmitir información específica desde la PHY.

  6. MII_RX_ER: Recibir señal de error. Esta señal debe mantenerse durante uno o más ciclos (MII_RX_CLK) para indicar a la subcapa MAC que se detectó un error en algún lugar de la trama. MII_RX_DV debe verificar esta condición de error.

  7. MII_RX_DV: Recibir señal válida de datos. Esta señal indica que la PHY está recibiendo nibbles recuperados y decodificados para MII. Esta señal debe estar sincronizada con el primer nibble del cuadro de recuperación (MII_RX_CLK) y permanece sincronizada con el último nibble del cuadro de recuperación. Esta señal debe desactivarse antes del primer ciclo de reloj que sigue al último nibble. Para recibir la trama correctamente, la señal MII_RX_DV debe cubrir la trama a recibir en el rango de tiempo, y su hora de inicio no debe ser posterior a la hora en que aparece el campo SFD.

  8. MII_CRS: señal de detección de portadora. Cuando el medio de transmisión o recepción está en un estado no inactivo, esta señal es habilitada por la PHY. Cuando los medios de transmisión y recepción están en un estado inactivo, la PHY prohíbe esta señal. La PHY debe garantizar que la señal MII_CS siga siendo válida en condiciones de conflicto. Esta señal no necesita estar sincronizada con los relojes TX y RX. En el modo full-duplex, esta señal no tiene sentido.

  9. MII_COL: señal de detección de colisiones. Después de detectar un conflicto en el medio, la PHY debe habilitar inmediatamente la señal de detección de conflictos y, mientras exista una condición de conflicto, la señal de detección de conflictos debe seguir siendo válida. Esta señal no necesita estar sincronizada con los relojes TX y RX. En el modo full-duplex, esta señal no tiene sentido.

  10. MDC: la señal MDC pertenece a la interfaz SMI; consulte " Interfaz SMI de la red STM32 " para obtener más detalles .

  11. MDIO: la señal MDIO pertenece a la interfaz SMI; consulte " Interfaz SMI de la red STM32 " para obtener más detalles .

La siguiente figura codificación de la señal de la interfaz TX

imagen

La siguiente figura codificación de la señal de la interfaz RX

imagen

Fuente de reloj de la interfaz MII

Para generar las señales de reloj TX_CLK y RX_CLK, se debe proporcionar un reloj de 25MHz a la PHY externa como se muestra en la figura. Además de utilizar un cristal de cuarzo externo de 25 MHz para proporcionar este reloj, esta señal también se puede emitir a través del pin MCO del microcontrolador STM32F20xx. En este caso, la multiplicación de frecuencia PLL debe configurarse para obtener la frecuencia deseada en el pin MCO a través de un cristal de cuarzo externo de 25 MHz.

imagen

Código correspondiente

/* Enable GPIOs clocks */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);

/* Enable SYSCFG clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);  

/* Configure MCO (PA8) */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;  
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Output HSE clock (25MHz) on MCO pin (PA8) to clock the PHY */
RCC_MCO1Config(RCC_MCO1Source_HSE, RCC_MCO1Div_1);

2. Interfaz RMII

Interfaz independiente de medios reducida: RMII (interfaz independiente de medios refinada). Una breve introducción a la especificación Quality Independent Interface (RMII) reduce el número de pines entre el periférico Ethernet del microcontrolador y el PHY externo a 10/100 Mbit / s.

Según el estándar IEEE 802.3u, MII incluye 16 pines de señal de control y datos. La especificación RMII reduce el número de pines a 7 (el número de pines se reduce en un 62,5%). Consulte la interfaz MII para conocer el significado de los pines.

imagen

La interfaz RMII es un objeto instanciado entre MAC y PHY. Estos ayudan a que la interfaz MII de MAC se convierta a la interfaz RMII. La interfaz RMII tiene las siguientes características

  1. Tasa de funcionamiento de 10 Mbit / sy 100 Mbit / s

  2. El reloj de referencia debe ser de 50 MHz.

  3. El mismo reloj de referencia debe proporcionarse externamente al MAC y al PHY Ethernet externo

  4. Proporciona rutas de transmisión y recepción de datos independientes de 2 bits de ancho (doble bit)

Aquí hay menos pines de reloj que la interfaz MII, hay un punto muy importante, es decir, la fuente de reloj de la interfaz RMII debe ser 50MHZ

 

Fuente de reloj de interfaz RMII

El controlador STM32F207xx puede proporcionar una señal de reloj de 50 MHz desde el pin MCO. Por supuesto, el usuario debe configurar el PLL para generar este reloj.

imagen

Utilice un reloj externo de 50 MHz para controlar el PHY o utilice un PLL integrado para generar una señal de frecuencia de 50 MHz para controlar el PHY.

3. Los pines correspondientes de las dos interfaces.

Chip STM32F207VCT6 (100 pines)

Ethernet pins configuration
ETH_MDIO -------------------------> PA2  pin 25
ETH_MDC --------------------------> PC1  pin 16
ETH_PPS_OUT ----------------------> PB5  pin 91
ETH_MII_CRS ----------------------> PA0  pin 23
ETH_MII_COL ----------------------> PA3  pin 26
ETH_MII_RX_ER --------------------> PB10 pin 47
ETH_MII_RXD2 ---------------------> PB0  pin 35
ETH_MII_RXD3 ---------------------> PB1  pin 36
ETH_MII_TX_CLK -------------------> PC3  pin 18
ETH_MII_TXD2 ---------------------> PC2  pin 17
ETH_MII_TXD3 ---------------------> PB8  pin 95
ETH_MII_RX_CLK/ETH_RMII_REF_CLK---> PA1  pin 24
ETH_MII_RX_DV/ETH_RMII_CRS_DV ----> PA7  pin 32
ETH_MII_RXD0/ETH_RMII_RXD0 -------> PC4  pin 33
ETH_MII_RXD1/ETH_RMII_RXD1 -------> PC5  pin 34
ETH_MII_TX_EN/ETH_RMII_TX_EN -----> PB11 pin 48
ETH_MII_TXD0/ETH_RMII_TXD0 -------> PB12 pin 51
ETH_MII_TXD1/ETH_RMII_TXD1 -------> PB13 pin 52

Entre ellos, el pin ETH_PPS_OUT está protegido por la demostración oficial de ST y no pertenece a la interfaz MII ni a la interfaz RMII. Las estadísticas no se ingresarán a continuación.

Hay un total de 15 interfaces MII más una interfaz SMI y un total de 17 pines. (Sin pines que contengan un reloj de 25 MHz)

imagen

RMII tiene un total de 7 interfaces más la interfaz SMI, un total de 9 pines.

imagen

Además del pin mencionado anteriormente correspondiente a la interfaz MII y la interfaz RMII que he contado por mí mismo, el funcionario de ST también da el diagrama correspondiente en el manual de referencia, de la siguiente manera:

imagen

4. Elección de MII y RMII

Utilice el bit de configuración 23 MII_RMII_SEL en el registro SYSCFG_PMC (nota: esto es diferente de F107, que es el registro AFIO_MAPR) para seleccionar el modo MII o RMII. Antes de que el controlador Ethernet esté en el modo de reinicio o el reloj esté habilitado, el programa de aplicación debe configurar el modo MII / RMII.

La función de biblioteca ST correspondiente es

//函数入参可选以下
//SYSCFG_ETH_MediaInterface_MII: MII mode selected
//SYSCFG_ETH_MediaInterface_RMII: RMII mode selected
void SYSCFG_ETH_MediaInterfaceConfig(uint32_t SYSCFG_ETH_MediaInterface) 

Esquema de reloj interno MII / RMII 

Es compatible con MII y RMII y el esquema de reloj requerido para el funcionamiento de 10 y 100 Mbit / s, como se muestra en la figura siguiente.

imagen

Tenga en cuenta que el cuadro rojo en la figura anterior: HCLK debe ser superior a 25 MHz. Este problema se mencionó en el artículo anterior " Interfaz SMI para redes STM32 ". Aquí nuevamente, si no se cumple esta condición, pueden ocurrir rarezas. El problema es difícil de encontrar.

En el manual oficial, hay otra oración

imagen

Para guardar pines, dos señales de reloj de entrada, RMII_REF_CK y MII_RX_CLK, deben multiplexarse ​​en el mismo pin GPIO.

 

Haga clic para ver el álbum donde se encuentra este artículo, desarrollo de la red STM32F207

 

Preste atención a la cuenta oficial y reciba actualizaciones de artículos lo antes posible .

Supongo que te gusta

Origin blog.csdn.net/Firefly_cjd/article/details/112916853
Recomendado
Clasificación