Ethernet en cadena margarita: realizar un arbitraje en un FPGA

0

EDIT:

Después de las discusiones en los comentarios, me he dado cuenta de que la única forma de hacer esto para dúplex completo es usar un IC de conmutación.

También me refiero a símplex, no semidúplex para la opción 1. Es decir, el FPGA solo recibe paquetes, no los envía.

He estado buscando implementar Ethernet en una configuración de cadena de margaritas en mi placa.

Requisitos de hardware:

  • 1000BASE-T
  • bajo costo
  • latencia a través de la placa < 8us

Es bueno tener requisitos:

  • dúplex completo
  • como pocos pines IO al FPGA como sea posible

Opciones después de un poco de investigación:

Enlace para una foto de tamaño completo

La primera opción fue lo primero en lo que pensé, pero es lo peor al cumplir con mis especificaciones. Las opciones 1 o (idealmente) 2 cumplirían mis requisitos, siempre y cuando la implementación sea correcta.

¿Se puede utilizar la interfaz RGMII de esta manera? Supongo que es la primera pregunta. De lo contrario, es probable que tenga que elegir la opción 1 y llamarlo un día.

Estoy bastante seguro de que la opción 1 funcionaría, sin embargo, realmente me gustaría el dúplex completo. No es muy necesario, pero es muy bueno tenerlo. ¿Hay alguna sugerencia sobre cómo manejar el arbitraje en la opción 2? ¿Es posible hacer algo así usando el FPGA?

La opción 3 está fuera simplemente porque varias placas se conectarán en serie y los diodos atenuarán demasiado las líneas de datos.

Tampoco estoy mirando los interruptores IC debido al costo. Si es posible encontrar uno por debajo de $ 5 o menos, entonces es dentro del presupuesto y probablemente considerable, pero dudo que ese sea el caso.

También re < 8us latencia a través del tablero: calculé esta especificación según los requisitos del sistema, y creo que es posible, ya que un reloj de 125 Mhz tiene un período de 8 ns, por lo que 8us son ciclos de 1000 clk de RGMII, más una latencia de 1.5us a través de cada PHY. como suficiente para las opciones 1 a 3. la opción 4 atraviesa el FPGA, lo que complica un poco las cosas (latencia a través de TEMAC, etc.), aunque no puedo imaginar que la latencia de temac sea demasiado larga.

    
pregunta stanri

2 respuestas

0

EtherCAT está diseñado como un Ethernet de muy baja latencia; no es una cadena directa, sino que pasa a través del controlador. A medida que pasan los bits, el controlador actualiza los que necesitan ser cambiados por los datos que está transmitiendo antes de devolverlos a la PHY.

Aquí encontrará algunos detalles operativos y una imagen de cómo funciona

    
respondido por el Martin Thompson
3

1000BaseT no se puede conectar en cadena. Si desea una conexión en cadena, use 10Base2 (thinnet) o 10Base5 (thicknet).

1000BaseT se puede utilizar en topología en estrella y necesitaría un puente entre nodos.

    
respondido por el Chetan Bhargava

Lea otras preguntas en las etiquetas