Monitoreo de comunicación serial y problemas con mi dispositivo de escucha RS232

Actualmente estoy trabajando en un pequeño proyecto de ingeniería inversa, donde quiero comprender la comunicación entre el software de control y un módem/DCE a través del puerto serie (RS232C).

EDITAR : tanto el software de control como el módem son de principios de los 90, el software solo se ejecuta en MS DOS. Mi computadora portátil, que se supone que debe hacer el trabajo de comprender la comunicación, se ejecuta en Windows 10 y se conectará a través de un adaptador de serie a USB. ( fin de la parte editada )

Para este propósito, ya construí un pequeño dispositivo de escucha que en su mayoría funciona bien. Se parece a esto:

ingrese la descripción de la imagen aquí

Dibujé el diagrama del circuito pero obtuve los 'planos' de http://airborn.com.au/serial/rs232.html , sin embargo, no se proporciona ninguna descripción o explicación allí. Acabo de construirlo y tuve suerte. Desafortunadamente, no soy tan bueno en electrónica como en la parte de software de mi proyecto. Primero tengo algunas preguntas simples que espero que alguien pueda responder:

  • Creo que entiendo por qué es necesario que haya un diodo en la línea 2 ("Transmitir datos" desde un punto de vista femenino). ¿Para mantenerlo de una manera? ¿Es eso correcto? ¿O estoy pensando demasiado simple?
  • No estoy cerca de entender por qué la línea 3 ('Recibir datos' desde un punto de vista femenino) necesita una resistencia, en lugar de un diodo. ¿Porqué es eso? ¿Y por qué la resistencia específica de 2.2kOhm?

Ahora para la pregunta no tan simple (creo). No espero respuestas, tal vez algunos consejos o pistas:

El software realiza una secuencia de inicialización para ver si el módem funciona y está conectado. Esta inicialización falla si inicio la PC de control y el módem mientras estoy conectado a través de mi dispositivo . Solo puedo obtener una inicialización exitosa y acceder al menú principal real del software si desconecto uno de los cables que van a mi computadora de escucha ( ya sea el que tiene el diodo o el que tiene la resistencia). Sin embargo, si lo vuelvo a conectar después de la inicialización , todo funciona bien , puedo escuchar de nuevo en ambos sentidos y la comunicación entre el software de control y el módem no se ve obstaculizada en absoluto.

  • ¿Por qué este enfoque de 'eludir la inicialización desconectando un cable' funciona para cualquier línea, el diodo y el cable de resistencia? Pensé que importaría cuál desconectar o tendría que desconectar ambos.

¡Gracias de antemano!

Tiene un circuito cerrado entre pin3 y pin2 a través del diodo y la resistencia. ¿Por qué ambos están conectados de todos modos? ¿Está asumiendo comunicación semidúplex? ¿Cómo vas a distinguir la entrada de la salida? Agregue otro diodo en el pin 2 también.
Hasta ahora he distinguido los datos entrantes de los salientes desconectando el cable de los datos salientes (línea 2) o de los datos entrantes (línea 3). Puedo suponer semidúplex debido a la estructura de los datos que recibo si ambos cables están conectados a la vez.
Si está desconectando... ¿Por qué necesita el tercer conector?
¿El tercer conector? Esto es para mi computadora portátil donde escucho la comunicación activa. Planeo imitar el software de control en algún momento, pero todavía no estoy allí en términos de comprensión de los comandos. Cuando dije 'desenchufar' me refería a cables individuales, no al conector completo.

Respuestas (2)

La combinación de resistencia y diodo podría reemplazarse con dos diodos, pero luego necesitaría una resistencia adicional que llevara la salida a un voltaje negativo.

Los diodos solo pueden extraer la señal positiva, no negativa. RS232 opera entre al menos +5V y -5v (puede ser hasta +/-15v)

Al usar la resistencia en lugar de un diodo, es posible robar el suministro negativo de la otra entrada; la resistencia también actúa como la ruta de la señal cuando esa entrada está activa.

La resistencia no es crítica: debe ser mucho más baja que la resistencia de entrada del receptor al que está conectado, pero no debe ser tan baja que descargue la señal que está monitoreando.

Unos pocos kilohmios son apropiados: usé 4,7 k cuando se me ocurrió un circuito idéntico hace 20 años para permitir que dos terminales se conectaran a la entrada de la consola de un sistema de correo de voz.

kevin

¡Ahhh! entiendo, gracias! Conocía la ventana de voltaje de RS232, pero en realidad no sabía que un diodo solo puede extraer la señal positiva. Perdón por mi falta de conocimientos básicos...
Construí un dongle similar hace mucho tiempo que me permite monitorear tanto TxD como RxD (diodo lógicamente o'd). Esto funciona bien para comunicaciones basadas en paquetes maestro/esclavo que son inherentemente semidúplex. Para las comunicaciones full-duplex, agregué interruptores DIP para deshabilitar el monitoreo de uno u otro para que no se pisen entre sí. Todavía es útil.
@Tut Acabo de usar dos puertos com :)
También uso dos puertos COM: para escuchar cuando el tráfico que estoy escuchando es entre dos dispositivos que claramente no son PC. En el mundo centrado en USB de hoy, eso se convierte en dos cables convertidores de serie USB <-->. Por otro lado, si uno de los puertos que quiero escuchar termina hacia/desde una PC que ejecuta un sistema operativo Windows moderno, entonces uso un software llamado monitor de puerto serie que se encaja entre la capa de controlador de puerto COM: de Windows y los relés. el tráfico a través de un segundo controlador de puerto COM: virtual de Windows. Esto permite realizar un espionaje completo del tráfico sin cables ni circuitos adicionales.
(continuación de arriba) Tenga en cuenta que hay varios programas de monitor de puerto serie disponibles en la actualidad. Varían mucho en calidad y características disponibles. Algunos de ellos funcionan mucho mejor que otros a altas velocidades de transmisión, así que asegúrese de probar cuidadosamente para encontrar el software que mejor se adapte a su aplicación. Recientemente usé una configuración como esta para ayudarme a depurar mi propia aplicación.
@EugeneSh. Estoy de acuerdo en que dos puertos com PUEDEN ser mejores para monitorear el tráfico bidireccional, pero gran parte de las comunicaciones que depuro se basan en una línea de tiempo relativa precisa en la que no confío totalmente en una máquina basada en Windows que recibe desde dos puertos diferentes (especialmente cuando son USB VCP). Si puedo vivir con algunas colisiones (fácilmente reconocibles en la pantalla de mi monitor), tengo la seguridad absoluta de saber qué mensaje llegó primero. (a veces se trata de comunicaciones multimaestro)
@MichaelKaras y Tut: No estoy seguro de lo que quiere decir con dos puertos COM, ¿está usando dos puertos individuales (en lugar del que tengo en la parte inferior) y conectando uno a la línea TxD y otro a la línea RxD? Desafortunadamente, la PC con el software de control se ejecuta en MS DOS, pero utilicé el software de monitor de puerto serie que mencionó en una etapa anterior para la prueba. EDIT: ah, el último comentario de Tut acaba de llegar. Sí, la línea de tiempo precisa también sería algo importante para mi trabajo, para averiguar qué comando hace qué
Dos puertos de comunicación para monitoreo permiten dos pines RxD en la computadora de monitoreo para que se pueda monitorear el tráfico dúplex completo.

Creo que la interacción que ve entre sus puertos durante la inicialización puede deberse a que la implementación RS232 Rx está lejos de ser moderna (si está en un equipo de la era MSDOS).

Para las implementaciones modernas de RS232 Rx, en realidad no necesita tener ningún voltaje negativo en la entrada del receptor para la operación.

Para la gran mayoría de los receptores actuales, así es como se ve un receptor RS232:

ingrese la descripción de la imagen aquí

RIN2 es la señal +/9 V RS232 y ROUT2 es TTL fuera del UART.

Aquí están las características de la entrada del receptor:

ingrese la descripción de la imagen aquí

Tenga en cuenta aquí que la entrada nunca necesitaría ir más allá de 0,2 V para un funcionamiento correcto. De hecho, la mayoría de los receptores funcionan bien simplemente con una señal TTL como entrada.

Basado en lo anterior, le sugiero que reemplace su resistencia con otro diodo. Esto proporciona un OR alámbrico de las dos señales RS232 (por lo que seguirán chocando si la señal es dúplex completo), pero nunca van por debajo de cero en la entrada de señal a la entrada RS232 de la PC del monitor.

esquemático

simular este circuito : esquema creado con CircuitLab

¡Gracias por la respuesta! 'Para las implementaciones modernas de RS232 Rx, en realidad no necesita tener ningún voltaje negativo en la entrada del receptor para la operación' No lo sabía. Pensé, como escribió Kevin White en la primera respuesta, 'RS232 funciona entre al menos +5V y -5v (puede ser hasta +/-15v)'. Acabo de robar un osciloscopio de la oficina de al lado y probaré la señal. El equipo en sí es de principios de los 90, solo mi propia computadora portátil, que se supone que debe escuchar, funciona en Windows 10.
Lo que no mencioné (editaré la pregunta pronto) es que uso un adaptador de serie a USB. Solo un pensamiento: ¿es posible que esto tenga su propio procedimiento de apretón de manos que interfiere con la inicialización?