Longitud máxima del cable para señales UART de 3.3V

14

Me gustaría evitar el uso de convertidores RS-232 entre dos microcontroladores en dos tarjetas diferentes. Por varias razones, solo se admiten UART, por ejemplo, sin SPI o I2C, y usaré el cable CAT5E para las tomas RJ45 entre las tarjetas. La velocidad de datos será de 115200 bps, posiblemente hasta 921600bps. La tierra está conectada junto con las señales UART.

Si bien actualmente lo tengo trabajando a la medida que lo necesito, para mi propia educación, ¿hay una manera de estimar la longitud máxima del cable en la que esto sería confiable?

    
pregunta QuestionMan

2 respuestas

13

No hay una sola respuesta segura. Tiene mucho que ver con la longitud del cable, el ruido eléctrico circundante y la velocidad a la que desea ir. Ethernet utiliza el cable CAT5 para transmitir a 10 Mbit / s para la variedad más lenta, por lo que 1 Mbit / s es fácilmente factible si toma las precauciones adecuadas . Tenga en cuenta que con Ethernet cada señal obtiene su propio par trenzado, y cada par se termina con cuidado en la impedancia característica del cable en cada extremo. Cada par se impulsa de manera diferencial y se interpreta de manera diferente, y también está diseñado para que no pueda causar bucles a tierra.

Si hace todo esto, puede transmitir datos de 1 Mbit / s por cable CAT5 para largas distancias, como 1000 metros. A medida que hagas menos de estas cosas, la distancia útil disminuirá. Por ejemplo, si se trata de una tabla a otra en el mismo chasis, es probable que no tenga que hacer mucho más. Si va a salir de la unidad, los controladores y receptores de línea diferencial podrían ser útiles.

Pruebe algo en su configuración y mire las señales en el extremo receptor para tener una idea del margen de ruido, ajústelo según sea necesario. Tal vez use un protocolo que pueda detectar y recuperarse de los errores, y hacer un seguimiento de la frecuencia con la que esto sucede. Hay demasiadas formas de enumerar aquí sin más información.

    
respondido por el Olin Lathrop
6

Ethernet utiliza señalización diferencial, una señal TTL tiene un solo extremo.

Ethernet usa pre-énfasis, TTL no.

Ethernet es el modo actual, TTL es el modo de voltaje.

Ethernet utiliza una tachnique de modulación que reduce el número de bordes, es posible que su TTL no lo haga (ASYNC estándar no lo hace)

El controlador y el receptor de Ethernet se adaptan a la impedancia del cable, a menos que estén diseñados cuidadosamente, el TTL no sería (y si lo fuera, entonces no sería el TTL)

Ethernet utiliza una señal simétrica (mediante el uso de estafas) para crear la densidad de 1 par. La serie ASYNC tiene una polarización integrada que carga el cable y debe superarse para obtener una señal del otro extremo.

Por estas razones, solo porque puede obtener 145m de Ethernet a 1Gbps no significa que obtendría lo mismo (o incluso 1000 veces menos) con una señal TTL de 3.3V a través del mismo cable.

Recomiendo el uso de un controlador de señalización diferencial como RS422, para eso está diseñado. De hecho, RS422, aunque el funcionamiento a un voltaje más bajo es mejor para los recorridos largos debido a la señalización diferencial (RS232 es de terminación única),
Además, los controladores y los receptores hacen cosas inteligentes para mejorar la calidad de los bordes, como el énfasis previo.

    
respondido por el Jason Morgan

Lea otras preguntas en las etiquetas