Comenzando con zynq ethernet utilizando la placa zybo – igor freire – ee phd student eth zurich fees

Resulta que el MAC implementó la canción comercial ethan allen en la parte PS de ZYNQ a través de una interfaz RGMII que se enruta a través de la interfaz de entrada / salida multiplexada (MIO) de la ZYNQ PS. Además, puede proporcionar una interfaz GMII a través del EMIO (si no está familiarizado con el EMIO, consulte el manual de ZYNQ, es cuando los periféricos de PS se enrutan a través del PL). La diferencia en la interfaz proviene del hecho de que el MIO está más limitado en el número de pines IO disponibles, por lo que tiene sentido no ocuparlo con el alto número de pines del GMII y, en cambio, usar el RGMII (GMII reducido).

La razón por la que se puede utilizar una interfaz GMII para el PL es porque algunas aplicaciones pueden necesitar crear una instancia de algunas subcapas PHY dentro del PL. Por ejemplo, si el objetivo es implementar una interfaz SGMII entre el MAC del ZYNQ PS y un PHY externo, entonces necesitaríamos implementar una IP llamada “núcleo PCS / PMA o SGMII” en el PL (y esto sería posible solo en fpgas que tienen transceptores gigabit). Esta IP, a su vez, se configuraría en el modo de significado de puente ethereum SGMII, como se describe en [PCS / PMA]. Pero no te preocupes por esto ahora, ya que no lo necesitaremos.

El realtek RTL8211E-VL PHY acepta de manera flexible las interfaces GMII y RGMII para la operación 1000BASE-T. Y, por cierto, si no sabe qué es 1000BASE-T, es solo un nombre para una interfaz de Ethernet con capacidad de datos de 1 gbps y que se comunica a través de los conocidos cables de cobre de par trenzado. Ahora, ya que una interfaz RGMII está disponible a través de ZYNQ MIO (en la parte PS de ZYNQ), estamos listos, es decir, no necesitamos nada en el PL para hacer que el MAC hable con el chip PHY externo. La interfaz RGMII de venta de ropa interior de Ethika en el MIO ya es suficiente. Interfaz MDIO

En este punto, sabemos dónde se implementan las capas MAC y PHY y cómo se comunicarán entre sí. Sin embargo, aún falta una interfaz, aquella a través de la cual el MAC envía y lee las configuraciones hacia y desde el PHY. Esta interfaz se denomina interfaz de entrada / salida de datos de gestión (MDIO), y está acompañada por el reloj de datos de gestión (MDC). Simplemente consiste en dos pines adicionales (uno para cada uno) que necesitamos para conectarnos a PHY. El PS también proporciona estas salidas desde el MIO, y se enrutan a los pines apropiados (conectados al PHY) en la placa ZYBO. Así que sí, estamos listos!

En resumen, la sección anterior explicó que usamos el MAC duro de ZYNQ soc, lo conectamos a la PHY externa a través de la interfaz RGMII del MIO y administramos la configuración de este chip PHY a través del MDIO. Ahora, la pregunta es, ¿cómo vamos a enviar una información de recepción a través de esta interfaz de Ethernet? Como se explica en [zynqmanual], los módulos transmisores y receptores de MAC (en el PS) están conectados a un FIFO, que a su vez, el adaptador USB a Ethernet intercambia datos con la memoria a través de un controlador DMA. Cuando se transmite, los datos se extraen primero de la memoria y se escriben en este FIFO, luego el FIFO pasa estos datos a la cadena de transmisión de MAC. En la dirección opuesta, el rx rx escribe los datos recibidos en el FIFO, y el DMA envía estos datos a la memoria. Esto se muestra a continuación en el diagrama del controlador de Ethernet.

Convencionalmente, los controladores xilinx para ips MAC de Ethernet (EMAC) normalmente comienzan con funciones como xemacps_lookupconfig y xemacps_cfginitialize. El primero lee esencialmente la información del hardware definido en el proyecto vivado del archivo xparameters.H (exportado al proyecto SDK) y devuelve esta hoja de información de logotipos de ethos pathos logos en una estructura organizada. En el caso actual, la información más importante es la dirección a la que se asigna el EMAC en la memoria. Después de obtener esta información, la segunda función (xemacps_cfginitialize) inicializa una estructura de tipo xemacps que contiene las configuraciones de EMAC, con todos los valores predeterminados e incluyendo la dirección particular obtenida de la primera función (xemacps_lookupconfig). Esta estructura, entonces, se utilizará cada vez que se escriba una configuración en el EMAC. Reloj Ethernet tx

Lo siguiente que hace la aplicación de ejemplo es configurar el reloj de Ethernet ethernet a través de los llamados registros de control de nivel del sistema (slcrs). Esto se hace configurando ethereum metropolis update el registro GEM0_CLK_CTRL de tal manera que se proporcione un reloj de 125 mhz al MII, donde los datos se transfieren a 8 bits por ciclo (125 * 8 da 1 gbps, según sea necesario). Y para hacerlo, primero hay que desbloquear los slcrs escribiendo en el registro ZYNQ llamado SLCR_UNLOCK, luego, después de configurar los dos registros, los slcrs deben ser bloqueados nuevamente. Este es un procedimiento estándar cada vez que se debe configurar uno de los registros SCLR. Dirección MAC de Ethernet

El valor predeterminado es “{0x00, 0x0a, 0x35, 0x01, 0x02, 0x03}”. Preste atención a esta dirección, ya que será útil para depurar los marcos transmitidos por el FPGA en una computadora (i.E. en wireshark). Y, por cierto, tenga en cuenta que “0x00, 0x0a, 0x35” (los 24 bits superiores de la dirección) corresponde al identificador único de organización (OUI) de xilinx, por lo tanto, si usa wireshark, puede notar que interpreta la dirección como pertinente. a un dispositivo xilinx y etiqueta los marcos entrantes como este:

Como se señaló anteriormente, la PHY externa transmite y recibe datos a través de la interfaz RGMII, pero se configura a través de la interfaz MDIO dedicada y estandarizada. Esta interfaz MDIO, a su vez, está sincronizada por una señal de reloj llamada MDC que debe enviarse al controlador de la controladora PHY de Ethernet de 7 bits a 64 bits mediante MAC. Por lo tanto, lo primero que debe hacer es generar el reloj MDC apropiado (con la frecuencia apropiada que no exceda los 2,5 mhz). Dado que el MDC se genera al dividir el reloj CPU_1X del ZYNQ PS, solo es necesario configurar el divisor. Esto se hace mediante la siguiente llamada a la función:

Para deshabilitar el modo de bucle de retorno y para que se expliquen otras cosas, los siguientes pasos consisten en interacciones con los llamados registros MDIO, por lo que vale la pena presentar algunos antecedentes. Como se explicó anteriormente, el MDIO es un bus en serie que le permite al MAC administrar la PHY. En particular, lo hace al permitir que el MAC lea y escriba en (desde) un conjunto de registros de administración y estado en el PHY de 2017 de las empresas más éticas del mundo, entre los cuales hay registros estándar y registros específicos del proveedor.

Puede eliminar todas estas líneas, ya que no son válidas para la PHY específica que estamos usando. Si está interesado, puede verificarlo consultando la hoja de datos de realtek RTL8211 y buscando los registros anteriores. Verías que no existen. Aparentemente, la aplicación de ejemplo se desarrolló para un PHY de Marvell (probablemente el 88E1116R de la placa ZC706). Autonegociación

Finalmente, tenemos que ethan hawke manejar la negociación automática de PHY. Este último es un protocolo de enlace estandarizado realizado por la PHY externa con respecto al socio de enlace, mediante el cual descubre las capacidades del socio y negocia cómo comunicarse a través del enlace (en términos de velocidad y modo dúplex). Durante este proceso, la PHY externa publicará sus capacidades (escritas en el registro 4 de MDIO) y almacenará las capacidades del socio de enlace (en el registro 5 de MDIO). Una vez que concluya esta negociación automática, el PHY externo marcará este estado en el registro 1 de MDIO. Luego, la aplicación puede continuar normalmente y las tramas de Ethernet se transmitirán efectivamente como se desee. De hecho, este requisito de esperar a que finalice la autonegociación durante la inicialización de PHY se explica en la sección 16.3.4 del [zynqmanual]

Una vez que se completa la espera, la aplicación podría leer el contenido del registro 5 de MDIO para obtener la configuración negociada y configurar adecuadamente su PHY local. Sin embargo, aquí basta con esperar a que se complete lo que es la etnicidad en la sociología. Además, debe tenerse en cuenta que si lo anterior no funciona (la negociación automática nunca se completa), probablemente se deba a que la negociación automática no está habilitada. Asegúrese de habilitarlo dentro del registro 0 (bit 12).

banner