Inconvenientes de usar la comunicación de un solo extremo sobre pares diferenciales

1

Recientemente compré una placa ZYBO FPGA solo para descubrir que hay exactamente seis líneas GPIO de un solo extremo conectadas al FPGA. En contraste con eso, hay 18 líneas diferenciales disponibles. El manual de referencia de la placa dice que la comunicación de un solo extremo a través de las líneas diferenciales funcionará, pero tiene "interferencia significativa". En este caso, se sugiere conectar a tierra una línea del par diferencial, pero esto obviamente anulará todo el propósito de tener más líneas IO de un solo extremo.

Entonces, ¿qué es exactamente la interferencia "significativa"? ¿Qué tan rápido sería capaz de comunicarme (de un solo extremo)? ¿Funcionaría bien el I2C de alta velocidad? 2mbit SPI? ¿Qué pasa con una transferencia de datos en paralelo de 25 MHz? ¿Se puede hacer algo más para evitar o corregir las interferencias?

    
pregunta sunside

3 respuestas

1

Aunque las líneas se enrutan como pares diferenciales, no es necesariamente un asesino para su tipo de aplicación. Es probable que la cantidad de interferencias sea bastante pequeña, ya que los diferentes parches a menudo se enrutan más cerca del plano de tierra que entre sí. No es como si fueran un cable trenzado sin blindaje, donde las señales se acoplan entre sí de manera mucho mejor. Y las huellas probablemente sean relativamente cortas, me imagino (si está contemplando una transmisión paralela).

Le sugiero que felizmente pueda configurar un bus paralelo de 25MHz, con un reloj terminado en serie para señalar al dispositivo en el extremo más lejano para bloquear los datos. Conduzca los datos en un borde, fíjelos en el borde opuesto, tendrá 20 ns de tiempo para que se establezcan la diafonía y los reflejos). Puede llevar el lado negativo del controlador del reloj a '0' y colocarlo lejos de la base de datos para mantener la señal lo más limpia posible. No suena tan diferente de la forma en que solíamos enrutar las bases de datos de SRAM asíncronas (todos los cables se ejecutan muy próximos entre sí con una línea de activación de escritura activada por flanco) y que solía funcionar bien :)

    
respondido por el Martin Thompson
6

Los cables en los pares diferenciales se enrutarán muy cerca uno del otro, permitiendo que las señales de un cable se acoplen al cable adyacente. Es probable que la mayor parte de la diafonía sea capacitiva. Piense en los dos cables como placas en un condensador. Un cambio repentino en un cable se "filtrará" en el otro. Un acoplamiento como este depende de la frecuencia. DC no se juntará en absoluto. Los bordes lentos se pueden acoplar un poco. Los bordes muy rápidos pueden acoplarse muy significativamente. Si coloca una onda cuadrada con bordes muy rápidos en un cable, el cable adyacente obtendrá bordes en movimiento positivos y negativos, seguidos de pendientes en descomposición exponencial. Los picos positivos corresponden al borde ascendente de la onda cuadrada, los picos negativos corresponden al borde descendente.

Si se ve obligado a utilizar la E / S diferencial como E / S de un solo extremo, hay algunas consideraciones. Si la longitud total de la traza es corta, los efectos pueden ser tan pequeños que se pueden ignorar. Si el rastreo es largo, es posible que deba hacer algo para mitigar la diafonía. Una solución fácil es usar solo un cable de cada par. El otro cable se puede conducir a tierra, o los dos se pueden conducir al mismo nivel lógico. Sin embargo, esto reduce el número de E / S disponibles en un factor de 2. Otra posibilidad es disminuir la velocidad de giro de los pines de E / S de salida. Los FPGA de Xilinx tienen varias selecciones para la potencia de la unidad y la velocidad de giro. Gire la velocidad de giro al ajuste más bajo, quietio. También intente bajar la fuerza de la unidad. También puede intentar activar la impedancia de la fuente de 50 ohmios ya que esto limitará la cantidad de corriente que puede salir del pin. La configuración de la impedancia de la fuente de 50 ohmios también debería limitar los reflejos de los pines de E / S de FPGA, ya que las señales en un sistema incomparable pueden rebotar por algún tiempo, lo que requiere más tiempo para estabilizarse.

Es difícil decir qué tan rápido podría correr sin mucha más información sobre lo que está tratando de hacer. Desafortunadamente, no estoy lo suficientemente familiarizado con la junta para poder darle estimaciones. Sin embargo, parece que las huellas podrían ser bastante cortas.

Para tener una idea de la cantidad de interferencias que puede obtener en un par, configure la FPGA para que mantenga una a un nivel constante (GND o VDD) y alterne la otra a unos pocos MHz. Establezca la velocidad de giro en rápido en el pin IO. Luego conecte un alcance al pin 'víctima' y mida la altura de los picos. Si es mucho menos que VDD, entonces no podría causar ningún problema.

    
respondido por el alex.forencich
4

Si tiene un solo cable y un retorno (tierra) y datos transmitidos, en cualquier punto a lo largo de la longitud del cable, el campo eléctrico promedio será del cable y tierra de los datos, en términos simples, si los datos fueron 5 V pp, el campo eléctrico sería la mitad de este valor. Esto no está justo en el cable, pero a una corta distancia del par.

En un par de cables accionados diferencialmente, las señales son antifásicas. Si uno está a 5 V, el otro estará a -5 V: el campo eléctrico neto es cero en toda la longitud del cable, excepto cuando está cerca de un cable o el otro.

Es lo mismo con los niveles lógicos antifase regulares: se puede imaginar que 2.5V es el punto medio: un cable está a 2.5V por encima del punto medio, mientras que el otro está a 2.5V por debajo del punto medio.

Entonces, si un cable accionado de manera diferencial no genera un campo eléctrico significativo, entonces no hay interferencia. Esa es la versión simple. También se debe considerar el campo magnético pero, como la corriente viaja hacia arriba en un cable y en el reverso en el otro Y los dos cables tienen geometrías iguales, el campo magnético neto a una distancia más corta es teóricamente cero.

  

Entonces, ¿qué es exactamente la interferencia "significativa"? ¿Qué tan rápido sería capaz   ¿comunicar? ¿Funcionaría bien el I2C de alta velocidad? 2mbit SPI? Qué pasa   ¿Una transferencia de datos en paralelo de 25 MHz? ¿Se puede hacer algo más para evitar o   ¿correcto para interferencia?

  1. Ojalá haya respondido a eso, pero se vuelve más complejo a medida que aumenta la velocidad de los datos porque necesita terminaciones equilibradas.
  2. Sobre par trenzado apantallado, he diseñado circuitos que funcionan a más de 35 metros a aproximadamente 400Mbpsec. Hay mucho más rápido que eso, pero pensé que compartiría mi trabajo personal como ejemplo.
  3. I2C requiere pull-ups y no estoy seguro de que esto funcione debido a problemas de capacitancia del cable. No llegará tan lejos como supongo. SPI está bien. He hecho 2Mbpsec en 15 m utilizando técnicas de cable equilibrado.
  4. Los datos paralelos de 25Mbpsec se convierten en un problema cuando los tiempos de demora entre un par y el siguiente hacen que los datos se lean incorrectamente en el receptor. Tiendo a usar conjuntos de chips como el MAX9205, es un serializador de datos de 10 bits de ancho bueno para 600 Mbpsec: -

Puedes obtener el mismo chip de TI pero tiene un número diferente y son intercambiables.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas