Red de conocimiento informático - Material del sitio web - Diseño de sistema de transmisión de datos Gigabit Ethernet basado en FPGA

Diseño de sistema de transmisión de datos Gigabit Ethernet basado en FPGA

Este artículo se publicó en Electronic Measurement Technology Journal en 2015. Presenta principalmente el uso de la placa de desarrollo VC707 para diseñar un sistema de transmisión de datos Gigabit Ethernet, implementa protocolos UDP e IP y puede usar DDR3 para datos. caché de transmisión.

Escrito sobre las ventajas de utilizar la transmisión Ethernet en comparación con el puerto serie, la velocidad de transmisión es lenta y no se puede transmitir a largas distancias. PCIE no puede transmitir a largas distancias, por lo que la elección de Ethernet tiene en cuenta tanto la velocidad de transmisión como la flexibilidad de uso del sistema.

Ventajas de la placa de desarrollo FPGA Xilinx xc7vx485T VC707

1. Núcleo duro MAC integrado e interfaz SGMII, que puede completar la implementación de funciones de capa MAC e interfaces de capa PHY.

2. Chip de capa PHY integrado, que puede completar las funciones de la capa PHY.

3. Recursos DDR3 de 1 GB integrados, que pueden almacenar datos en caché.

El esquema de diseño general se muestra en la figura, en la que la interfaz SGMII de la capa MAC y la capa PHY se puede implementar llamando directamente a IP.

Módulo receptor

Acepta la solicitud ARP de la computadora host, extrae la dirección MAC y la dirección IP de la computadora host, recibe el paquete de datos UDP de la computadora host y extrae el mensaje.

Módulo de envío

Envía respuesta ARP a la computadora host, encapsula los datos a enviar, agrega encabezado UDP, encabezado IP y encabezado de trama Ethernet, y los envía al núcleo ip de la capa MAC.

Módulo de control DDR3

Almacena los datos del FIFO receptor en DDR3 y los lee desde DDR3 al FIFO emisor al enviar.

Enviar/recibir FIFO

El reloj de trabajo de Ethernet es de 125 MHZ y el reloj de trabajo de DDR3 es de 200 MHZ. Estos dos FIFO se utilizan para resolver problemas de dominio de reloj cruzado.

Núcleo IP de capa MAC

Completa la encapsulación y desencapsulación del preámbulo y delimitador de inicio de trama de la trama Ethernet.

Flujo de trabajo específico: cuando el sistema envía datos, los encapsula en DDR3 a través de la lógica de envío y el núcleo IP de la capa MAC, y luego genera los datos a través del núcleo IP de la interfaz SGMII y los envía al chip PHY. En el PHY, una vez completada la capa de codificación de datos, se envía a la computadora host a través de la interfaz RJ45; y el sistema recibe los datos en el proceso inverso al envío de datos. Una vez que la capa PHY completa la decodificación, los datos de salida se recibirán a través de la interfaz SGMII.

Envíelos al núcleo IP de la capa MAC y al módulo lógico receptor para completar la extracción de datos o la ejecución de instrucciones, y almacenarlos. datos en DDR3.

El protocolo ARP se presentará más adelante y el protocolo IP y el protocolo UDP no se analizarán en detalle.

ARP consiste en obtener la dirección MAC de destino para que se puedan enviar IP y UDP al destino correctamente.

Este módulo se utiliza principalmente para distinguir si el módulo recibido es ARP o UDP.

Hay tres puntos para identificar ARP:

1. Determinar si la dirección MAC de destino es FF-FF-FF-FF-FF-FF

2 Determine el tipo de trama Si es 0X0806

3. Determine si el código de operación es 1

Si es así, genere la señal ARP_request, extraiga la dirección MAC y la dirección IP del host. computadora y enviarlos al módulo de procesamiento ARP.

Al juzgar si es UDP:

1. Si el campo de protocolo en el encabezado del datagrama IP es 0x11

2. Si la dirección IP de destino del la parte del paquete ip es la misma que La dirección local es la misma

3. ¿El número de puerto de destino en el encabezado UDP es el mismo que el número de puerto local?

Si el juicio es pasado, los datos UDP se almacenan en el FIFO receptor y la longitud de los datos se registra es frame_cnt.

Hay dos tipos de datos a enviar, a saber, respuesta ARP y datos leídos de DDR encapsulados en datos de trama MAC del protocolo UDP.

La máquina de estados se muestra en la figura.

1. Cuando el módulo de procesamiento ARP genera ARP_reply, ingresa al estado de trama de respuesta ARP. Cuando se completa la respuesta, ingresa al estado inactivo, donde el módulo de procesamiento ARP necesita proporcionar la dirección MAC y la IP. dirección de la computadora host en el estado de respuesta.

2. Cuando la máquina de estado detecta la señal DDR_RD_CPL, es decir, cuando los datos DDR3 se almacenan en el FIFO de transmisión, comienza a agregar el encabezado MAC, el encabezado IP y el encabezado udp, y finalmente lee los datos en el FIFO La máquina de estado ingresa al estado inactivo.

Finalmente, hay algunos cálculos debido a que el propósito, la MAC de origen, la IP y el número de puerto han cambiado, es necesario volver a calcular la suma de verificación de IP, la suma de verificación de UDP, la longitud de los datos estadísticos y encapsular los resultados en datos. Ve en la bolsa.

La última novedad es que en modo full-duplex, la longitud de datos de una trama Ethernet no puede exceder los 1500 bytes, menos los 20 bytes del encabezado IP y los 8 bytes del encabezado UDP, por lo que el La longitud de los datos UDP debe ser inferior a 1472 bytes.