¿Cómo conectar uC a la PC usando RS232 con el número mínimo de señales?

7

El conector RS232 estándar de 9 pines tiene 9 pines. Esos son:

1 - DCD - Portador de datos detectado
2 - RxD - Recibir datos
3 - TxD - Transmitir datos
4 - DTR - Terminal de datos listo
5 - GND - Señal de tierra
6 - DSR - Conjunto de datos listo
7 - RTS - Solicitud de envío de datos
8 - CTS - Borrar para enviar datos
9 - RI - Indicador de anillo

  1. Si necesito comunicación bidireccional, es obvio que debo conectar RxD y TxD. ¿Qué debo hacer con otras señales / pines: conectar a tierra, dejarlos abiertos, debo conducirlos con las señales apropiadas de acuerdo con el protocolo?
  2. Si solo me importa la conexión unidireccional, ¿puedo conectar solo RxD o TxD?
  3. ¿Cuáles son las consecuencias de no usar / conectar ciertas señales? ¿Qué software en el lado de la PC espera tener esas señales? ¿Qué funcionalidad se perderá?

NOTA 1: Estoy usando aquí la palabra "conectar" en el sentido de conexión lógica - > para la conexión eléctrica requeriría circuitos de cambio de nivel como MAX232)
NOTA 2: Estoy limitado por PIN en uC: no me importa conectar señales en la placa (como subirlas / bajarlas).

    
pregunta mazurnification

5 respuestas

13

Dependerá del software que estés usando.

A) En mi caso, mientras desarrollo mi propio software para PC, nunca he usado otros pines, solo RxD, TxD y GND. Así que, en este caso, puedes dejar abiertos otros pines. Esto se llama como módem nulo sin handshaking

B)Sí(asumiendoqueseestáconsiderandoGND)

C)Denuevo,dependerádelsoftwareenelladodelaPC.Algunossoftwaresquepuedeconfigurarparanohacersecargodelcontroldehardware.OtrosrequeriránunprotocolodeenlacedeRTS/CTS,porloquepuedehacerunmódemnuloconunprotocolodeenlaceenbucle

Fuente de las imágenes: Cableado de cable de módem nulo serie RS232

    
respondido por el Daniel Grillo
6

Solo tiene que conectar RxD y TxD, y Ground, por supuesto. (Si está utilizando solo comunicación unidireccional, se requiere conexión a tierra y RxD o TxD). Las otras señales se utilizan para la comunicación con un módem. La mayoría de los UART en los microcontroladores no proporcionan estas señales de control. Recuerdo que lo he visto en 1 o 2 UARTs de un uC con varios UART más (aunque no recuerdo cuál uC era).

más sobre el tema del módem (FYI):
EIA-232 define DTE (Equipo terminal de datos, en este caso, su PC o SBC) y DCE (Equipo de comunicación de datos, a menudo un módem).

Tienes varias formas de conectar las PC.

  
  1. Una conexión directa, sin los módems, utiliza un cable cruzado (RxD en un lado está conectado a TxD en el otro lado, y viceversa). Solo necesitas esas dos señales + tierra. Eso es lo que usas para conectar una PC a un SBC.
  2.   
  3. Una conexión de módem también usa señales adicionales, la PC y el módem están conectados a través de un cable directo (pin 1 conectado al pin 1, etc.)
  4.   
  5. Puede configurar una conexión entre dos DTE como si hubiera módems, en ese caso, use un módem nulo para conectar señales de control entre DTE, como RTS de 1 DTE está conectado a CTS en el otro. Esto utiliza un cable cruzado cableado completo.
  6.   
  7. Una configuración de módem nulo, donde las señales de control no están conectadas entre las PC, pero haces trampa y no conectas RTS a CTS en la otra PC, sino en tu propia PC. Otras señales también se devuelven localmente. El resultado es que, como en el caso 1), solo se conectan RxD, TxD y Ground entre las PC.
  8.   
    
respondido por el stevenvh
5

Debe tener Tx, Rx y tierra de señal como mínimo. Si bien en teoría no necesita Tx si solo está recibiendo, como un asunto práctico en muchas situaciones, deberá reconocer que recibió el mensaje. Los otros pines se utilizan para "apretón de manos de hardware" un sistema de permisos donde el dispositivo de envío verifica que el dispositivo de recepción está listo. Puede usar Xon / Xoff en su lugar (software handshaking). Algunos dispositivos, como los ratones serie, también utilizaron las líneas de intercambio de manos del hardware para obtener energía.

    
respondido por el Jim C
1

Tenga en cuenta que es posible escapar sin utilizar el chip 232 en determinadas circunstancias. Esto se basa en cierta holgura en el protocolo y en el abuso de algunos pines en formas que no se suponía que fueran. Desafortunadamente, no conozco el circuito de la parte superior de mi cabeza pero lo he usado. Lo estaba buscando cuando me encontré con esta pregunta. No lo usaría en producción y no sé si funciona para todas las implementaciones de conexión RS232, pero fue útil cuando lo usé.

    
respondido por el Richard Thomas
1

Para una cantidad mínima de señales, es posible crear una interfaz UART utilizando solo dos cables: una línea de señal bidireccional y tierra. Lo que se requiere es que los controladores de línea en cada extremo puedan ser deshabilitados (en tres estados) y que el software implemente un protocolo de turnos; a menudo el dispositivo esclavo solo transmite para responder una pregunta del maestro.

En una conexión de nivel lógico entre microcontroladores (sin controladores de línea), el hardware es bastante simple, ya que casi siempre se puede actualizar el pin de transmisión (posiblemente cambiándolo de nuevo al modo GPIO).

Si bien la técnica no se usa con mucha frecuencia en periféricos cercanos, es bastante común usar la señalización diferencial como RS485, y puede involucrar una red de muchos nodos en lugar de solo dos. Pero los esquemas de software diseñados para hablar en un par bidireccional RS485 funcionarán bien entre dos dispositivos conectados con un circuito de extremo único (no diferencial), siempre que la distancia / nivel de ruido no requiera una solución diferencial. Por supuesto, esto no sería estrictamente RS232, sino una extensión personalizada del mismo.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas