¿Puedo usar solo 4 cables de un puerto serie de 8 cables con control de flujo de hardware?

1

Estoy buscando conectar un módulo celular Telit UE910 a un microcontrolador. El módulo utiliza una conexión serie RS232 de 8 hilos para la serie principal (USIF0). Prefiero no atar 8 pines IO, pero todavía me gustaría usar el control de flujo de hardware. ¿Es posible usar solo 4 de los 8 cables (RX, TX, CTS, RTS)?

El módulo también admite el uso de solo 2 cables con control de flujo de software. La hoja de datos indica que debe vincular RTS a tierra cuando no use el control de flujo de hardware. Creo que esto es solo para evitar que RTS flote, pero es posible que use esto para cambiar entre el modo de control de flujo HW y SW. ¿Es esto probable?

    
pregunta Eric Zillinger

1 respuesta

3

Parece que tienes una idea errónea de lo que significa "serial". Serial significa que los bits de datos se transmiten en serie, es decir, uno detrás del otro en el tiempo. El número de bits que considera una palabra en un esquema de transmisión en serie no tiene nada que ver con el número de cables y, por lo tanto, el número de pines del microcontrolador necesarios para conectarse a esos cables.

Hay varios tipos de interfaces seriales, pero RS-232 usa una única señal para cada dirección. La interfaz RS-232 más básica para la comunicación bidireccional utiliza solo 3 cables: TX, RX y GND. Es común usar un protocolo que envía lógicamente 8 bits a la vez, pero que no tiene nada que ver con el número de cables, ya que cada uno de esos bits se envía en serie (de ahí el nombre "serial") sobre el mismo cable.

Si desea agregar "control de flujo de hardware" a la interfaz RS-232 básica, necesita dos cables más, RTS y CTS para la caja bidireccional. Algunos microcontroladores vienen con UARTs lo suficientemente sofisticados como para poder manejar RTS y CTS directamente en el hardware. En otros, debes implementar esto en el firmware, aunque eso no es tan difícil.

El control de flujo del software se realiza con señalización en banda y utiliza solo los dos cables básicos, RX y TX (más GND, pero eso está implícito, por lo que normalmente no decimos eso). Por lo general, esto se hace enviando XOFF para decirle a la otra parte que deje de enviar, luego XON dice que está bien enviar más cosas. Si sus datos nunca contienen estos códigos, de lo contrario, no hay nada más que deba hacer. Tenga en cuenta que XON y XOFF están en el espacio de códigos de control de 0 a 31, por lo que no se utilizarían si el protocolo está basado en texto. Si está utilizando un protocolo binario en el que todos los códigos 0-255 son posibles, entonces usualmente usa un mecanismo de escape para volver a agregar los códigos utilizados por XON y XOFF.

Tenga en cuenta que los microcontroladores no se pueden conectar directamente a RS-232. La convención es que los UART de nivel lógico, como los incluidos en los microcontroladores, tengan los datos RS-232 invertidos en sus pines y en el nivel lógico normal. Por ejemplo, 0 V en el UART se traduciría a más de 5 V en el cable RS-232, y la lógica alta (como 3.3 o 5 V) en el UART se traduciría a menos de -5 V en el cable RS-232.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas