¿Cómo logra esta tarjeta PIC la comunicación RS-232 sin un controlador de línea?

4

Todas las tarjetas de desarrollo que he visto todavía con soporte de comunicación en serie generalmente tienen un transmisor de línea MAX232. Sin embargo, me he encontrado con esta placa de desarrollo Olimex PIC-LCD que no la tiene. Más bien, parece utilizar componentes discretos para lograr el mismo objetivo. A continuación se muestra el esquema. El RXD y el TXD están conectados al PIC:

Estoy tratando de entender cómo funciona esto. Para los datos recibidos tendríamos que sujetar la tensión a Vcc. Para los datos transmitidos necesitamos amplificar la señal. Entiendo vagamente que habría un simple diodo de sujeción para los datos recibidos y una bomba de carga compuesta por un condensador y un diodo para el transmisor. Los transistores son resistencias me están confundiendo. ¿Para qué sirven?

    
pregunta quantum231

2 respuestas

6

Figura1.LógicaestándarRS-232ynivelesdevoltaje.Fuente: Wikipedia .

Figura2.TrazadodelosciloscopioesquemáticodenivelesdevoltajeparauncarácterASCII"K" (0x4B) con 1 bit de inicio, 8 bits de datos, 1 bit de parada. Tenga en cuenta que la inactividad es un voltaje negativo.

RS232 usa un voltaje negativo para la lógica 1 y un voltaje positivo para la lógica 0. El estado 'inactivo' es la lógica 1. Hasta donde puedo establecer, esta disposición es histórica y posiblemente porque los cables de cobre están expuestos a la humedad, como podría ser en aplicaciones de líneas telefónicas: es menos probable que se corroan si el voltaje es negativo. Ref. CodePainters .

Recibir

El circuito de recepción en este circuito utiliza el nivel de señal cero de alta lógica para activar Q4 y supone que todo lo demás debe ser una lógica 1. Esto no está de acuerdo con la especificación que trata cualquier cosa entre -3 V y +3 V como "indefinido". ¡Este circuito está haciendo trampa!

El circuito debe hacer dos cosas para convertir a un flujo de datos lógicos de 5 V:

  • Fije la señal de 0 a 5 V. (R18 y D4 hacen esto)
  • Invertir la lógica a la "lógica 1 = 5 V" convencional. (Q4 y R17 hacen esto).

El circuito probablemente funcionaría sin R27 pero puede ayudar a reducir la base en caso de pequeñas diferencias en el potencial entre las dos conexiones a tierra del dispositivo RS232.

Transmit

El circuito supone que el dispositivo en el otro extremo requiere una señal bipolar adecuada para que funcione correctamente. Sin el chip MAX232 no hay fuente de voltaje negativo a bordo. El problema se resuelve robando energía de la línea RX.

  • Cuando la línea de RX esté inactiva, C9 se cargará negativamente a través de D3.
  • TXD normalmente estará inactivo y en +5 V. Esto apagará Q3 y R14 tirará del pin 2 bajo, lo que dará la señal de inactividad al otro dispositivo. (Por lo tanto, obtendremos una inversión lógica nuevamente). Tenga en cuenta que el TX del otro dispositivo ahora está cargando C9, extrayendo la corriente a través de D4 y R18, así como reduciendo su propio RX bajo. Puede esperar que la tensión se colapse un poco.
  • Cuando el TXD se baja, el Q3 tirará del pin 2 alto. Esto tenderá a descargar C9 y ejercerá mayor tensión en el circuito del pin 3.

El circuito funcionará en muchos casos, pero probablemente solo en distancias cortas. La inmunidad al ruido se reduce mucho en comparación con el estándar. Si el otro dispositivo hace trampa de una manera similar, la conexión puede no funcionar bien, en todo caso.

Tenga en cuenta también que si los datos recibidos consistían en datos con muy pocos "unos", puede que no haya suficiente potencia para mantener a C9 adecuadamente negativo y que los datos de TX no se reciban en el otro extremo. Esto sería improbable en una transmisión semidúplex, ya que siempre habría espacios vacíos.

    
respondido por el Transistor
7

Las señales de nivel lógico a / desde un UART se invierten en relación con los niveles RS-232. Los transistores hacen las inversiones.

El diodo D3 toma energía de la línea RS-232 RX normalmente negativa para cargar C9, que luego proporciona el voltaje negativo para la línea RS-232 TX.

R18 y R15 limitan la corriente de base a los transistores, y R27 y R16 aseguran que los transistores se apagan, tirando de la base hacia el emisor.     

respondido por el Peter Bennett

Lea otras preguntas en las etiquetas