Monitorear, sniffear, depurar y registrar el puerto serie

En esta página aprenderás tres maneras de analizar la comunicación serie entre dispositivos (PC, controladores, placas embebidas) y por qué el COM Sniffer de SerialTool suele ser la mejor solución: solo software, sin cableado, transparente y adecuada para monitor/sniffer/depurador/registrador incluso durante días.

Qué encontrarás

  • Capítulo 1: qué significa monitorear un puerto COM, cómo se estructuran los bytes/bits y cómo la interfaz serie los envía (start/datos/paridad/stop), además de TX/RX y velocidad en baudios.
  • Capítulo 2: el método clásico de sniffing físico con dos adaptadores USB↔serie: conecta solo el RX a las líneas TX de ambos dispositivos y comparte tierras. Perfecto para un monitor/registrador sencillo.
  • Capítulo 3: el mismo concepto aplicado a un PC Maestro que habla con un Dispositivo Objetivo mediante convertidores USB↔serie/RS-232/RS-485 (mismo protocolo, distintos niveles físicos). Incluye una visión general de Modbus RTU/ASCII y casos de uso industriales/CNC/embebidos (debug, firmware, ingeniería inversa).
  • Capítulo 4: por qué a menudo conviene usar el COM Sniffer de SerialTool: un monitor de puertos serie basado en un controlador de kernel de Windows que intercepta datos, IOCTL, señales y parámetros de puertos ya abiertos por otro software. Sin cables, filtros precisos, exportación a pcap/pcapng (p. ej., para Wireshark) y estabilidad para capturas largas.

Si tu objetivo es analizar rápidamente un software de terceros o monitorear continuamente tu aplicación, empieza por Capítulo 4 – COM Sniffer: es la forma más rápida de monitorear, sniffear, depurar y registrar sin montar un banco de pruebas.

Capítulo 1 – Monitoreo de datos desde el puerto COM

1.1 Qué significa “monitorear un puerto serie”

Monitorear un puerto COM (serie) significa observar en tiempo real los bytes que viajan por las líneas de comunicación entre el PC y el dispositivo. En la monitorización normalmente distinguimos dos direcciones: TX (transmisión del PC al dispositivo) y RX (recepción del dispositivo al PC). Un buen monitor muestra los datos tanto como texto (interpretación ASCII/UTF-8) como en hexadecimal (HEX), es decir, los bytes en bruto.

Para qué sirve
  • Verificar que TX y RX se producen con los parámetros correctos (baudios, bits de datos, paridad, stop).
  • Entender qué se envía/responde, byte a byte, incluso cuando el texto no es legible.
  • Diagnosticar errores de configuración o de protocolo (p. ej., Modbus/RTU, comandos propietarios, etc.).

1.2 Bytes y bits: representación lógica vs. transmisión serie

Cuando escribimos el texto Hello, los cinco caracteres se convierten en cinco bytes ASCII: 48 65 6C 6C 6F en hexadecimal. Un visualizador de bytes como el de SerialTool te permite ver la forma de onda lógica de los bits individuales dentro de cada byte.

Forma de onda de bits para la cadena 'Hello' (vista lógica en el Visualizador de Bytes de SerialTool)

Figura 1 — Representación “lógica” de los bits para Hello

Cada recuadro resalta un byte (0x48, 0x65, 0x6C, 0x6C, 0x6F). Debajo de cada byte verás ASCII, HEX, decimal y binario. Esta vista es útil para entender el contenido de los bytes tal como los almacena y procesa el software.

Cómo leer bytes en la vista lógica

  • El gráfico resalta 8 bits de datos por byte (b7…b0). En memoria podemos listarlos como MSB→LSB (del más significativo al menos significativo).
  • Esta representación no incluye aún elementos del protocolo serie (inicio, paridad, parada) y no refleja el orden de transmisión en el cable.

Cómo se transmiten los bytes en el puerto serie

En la línea física RS-232/TTL, cada byte se encapsula según la trama serie:

Inicio (1 bit, lógica “0”)Datos (7/8 bits, enviados LSB primero)Paridad (opcional)Parada (1 o más bits, lógica “1”).

  • Reposo: la línea TX está estable a lógica “1” (mark). La señal permanece en 1 hasta que llega el bit de inicio.
  • Bit de inicio: una transición a “0” (space) señala el comienzo del byte.
  • Bits de datos: los bits de datos se transmiten en orden LSB primero (menos significativo primero).
  • Bit de parada: retorno a “1” durante 1 o más bits; garantiza restaurar el reposo.
  • Velocidad en baudios: determina la duración de cada bit (p. ej., a 9600 baudios cada bit dura ~104,17 µs).
Forma de onda de bits para 'Hello' (vista de tramas serie en línea)

Figura 2 — Los mismos bytes de Hello como tramas serie en la línea: para cada byte se ve reposo → inicio → datos (LSB primero) → parada

Esta vista resalta el orden de transmisión y el temporizado fijo de bits impuesto por la velocidad en baudios.

Nota sobre RS-232 vs. TTL

  • A nivel TTL (UART a 3,3 V/5 V), “1” es alto y “0” es bajo.
  • A nivel RS-232 los niveles de tensión están invertidos (“1” ≈ voltaje negativo, “0” ≈ positivo), pero la secuencia inicio/datos/parada es idéntica.

Ejemplo rápido: tiempo para transmitir “Hello”

Con configuración 8N1 (1 inicio, 8 datos, 1 parada) cada byte usa 10 bits en la línea. A 9600 baudios, eso son ~960 bytes/s. Para 5 bytes (“Hello”) tarda ~5,21 ms.

Capítulo 2 – Monitorear/sniffear, depurar y registrar una comunicación serie con dos adaptadores USB a serie

Cableado físico para olfatear (sniff) una comunicación serie con dos adaptadores USB a serie

Diagrama de escucha pasiva por hardware

El PC abre dos puertos (COM5 y COM6). Cada adaptador USB a serie usa solo RX para “escuchar” lo que transmite cada dispositivo. Las tierras (GND) son comunes. Las líneas morada y azul son la conexión normal TX↔RX entre los dos dispositivos.

2.1 Objetivo

Crear un monitor/sniffer serie no intrusivo para observar, depurar y registrar los bytes intercambiados entre el Dispositivo 1 y el Dispositivo 2 sin interrumpir su comunicación.

2.2 Conexiones eléctricas (escucha pasiva)

  • COM5 (USB a serie #1): conecta el pin RX del adaptador al TX del Dispositivo 1 (olfatea los datos enviados por el Dispositivo 1).
  • COM6 (USB a serie #2): conecta el pin RX del adaptador al TX del Dispositivo 2 (olfatea los datos enviados por el Dispositivo 2).
  • GND común: conecta la tierra de ambos adaptadores USB a serie con la de los dos dispositivos (referencia compartida para niveles lógicos).
  • No conectes los TX de los adaptadores al bus: permanecemos en modo de escucha “alta impedancia”, sin perturbar la línea.
  • No alimentes los dispositivos desde los 5V/3,3V de los adaptadores (VCC no se usa en la escucha).

Nota de niveles: este método aplica a UART/TTL (3,3/5 V) o buses con drivers compatibles. Para RS-232 (±12 V) no conectes un RX TTL directamente: necesitas un convertidor RS-232↔USB o un tap/monitor RS-232 dedicado. En otras palabras, si quieres registrar una línea RS-232, usa el hardware adecuado.

2.3 Cómo encontrar y ajustar la velocidad en baudios

Para decodificar correctamente, la velocidad en baudios y los parámetros deben coincidir con los de los dispositivos (p. ej., 9600/8N1). Si no se conocen:

  • Consulta la documentación del dispositivo o del protocolo.
  • Prueba las velocidades más comunes (9600, 19200, 38400, 57600, 115200...).
  • Mezura con un osciloscopio/analizador lógico: la duración de bit es Tbit=1/baudios (p. ej., a 9600 baudios ≈ 104,17 µs por bit).

2.4 Abrir los dos puertos COM con SerialTool

  1. Conecta los adaptadores: el sistema verá dos puertos (en este ejemplo COM5 y COM6).
  2. En SerialTool, abre dos sesiones:
    • Sesión A → COM5, ajusta baudios/paridad/stop como los dispositivos (p. ej., 115200/8N1).
    • Sesión B → COM6, mismos parámetros que la Sesión A.
  3. Pon ambas en modo monitor (solo RX): en COM5 verás los bytes enviados por el Dispositivo 1 y en COM6 los del Dispositivo 2.
  4. Para depuración usa la vista HEX y marcas de tiempo; para registro guarda a archivo (CSV/pcap/raw) para análisis posterior.

En este escenario actúas como un hombre-en-medio físico pasivo: monitorizas/olfateas datos eléctricamente sin alterar las señales.

2.5 Pines de control excluidos en este ejemplo

El diagrama se centra en los datos TX/RX y no monitoriza pines de control (p. ej., RTS/CTS, DTR/DSR, DCD, RI). En muchas aplicaciones no son necesarios; sin embargo, si los dispositivos usan control de flujo por hardware, quizá quieras “tocar” esas líneas con sondas dedicadas.

Lecturas adicionales: RS-232 (Wikipedia), RS-232 – Señales, Control de flujo por hardware, UART.

2.6 Consejos prácticos para un monitor/sniffer estable

  • Usa cables cortos y un GND común sólido; evita bucles de tierra.
  • La mayoría de drivers UART toleran dos entradas RX (fan-out) en una línea TX, pero evita cargas innecesarias.
  • Alinea siempre los parámetros de los puertos en ambas sesiones (baudios, datos, paridad, stop).
  • Para RS-485 u otros buses diferenciales necesitas adaptadores específicos y reglas de escucha distintas.

Con esta técnica puedes monitorear, sniffear, depurar y registrar de forma fiable comunicaciones serie entre dos dispositivos usando herramientas comunes: dos adaptadores USB a serie + SerialTool.

Capítulo 3 – Sniffing/monitorización del enlace serie entre “PC Maestro” y “Dispositivo Objetivo”

Sniffing de la comunicación entre PC Maestro y Dispositivo Objetivo con dos adaptadores USB a serie en un segundo PC

Comunicación entre un dispositivo hardware y un PC vía serie

El PC Maestro (derecha) se comunica con el Dispositivo Objetivo mediante un Dispositivo de Comunicación Serie (normalmente un convertidor USB↔Serie: UART/TTL, RS-232 o RS-485). El PC de Sniffing (izquierda) abre dos puertos (COM5 y COM6) y, con dos adaptadores USB a serie, escucha pasivamente las líneas: en COM5 conecta RX al TX del Dispositivo, en COM6 conecta RX al TX del PC. Las tierras (GND) son comunes.

3.1 Propósito y conceptos

Queremos monitorear y olfatear los bytes que viajan entre el software del PC Maestro y el Dispositivo Objetivo, sin interferir con la comunicación. Es un típico hombre-en-medio físico pasivo: dos adaptadores USB a serie conectados solo en RX “leen” cada dirección. Es útil para depurar, analizar protocolos y como registrador para auditoría o ingeniería inversa.

3.2 Conexiones (paso a paso)

  1. COM5 (PC de Sniffing) → conecta el RX del adaptador al TX del Dispositivo (escucha lo que envía el Objetivo).
  2. COM6 (PC de Sniffing) → conecta el RX del adaptador al TX del PC (escucha los comandos del PC Maestro).
  3. GND común entre los dos adaptadores y los dos dispositivos (referencia compartida).
  4. No conectes los TX de los adaptadores del PC de Sniffing: permanecemos en solo escucha (alta impedancia), sin perturbar la línea.

En SerialTool abre dos sesiones: COM5 y COM6. En ambas, ajusta la velocidad y formato idénticos a los usados por Maestro/Dispositivo (p. ej., 115200-8N1). Si no conoces los baudios, prueba valores comunes o mide la duración del bit con un osciloscopio/analizador lógico.

3.3 Mismo protocolo, distintos niveles: UART/TTL, RS-232, RS-485

El protocolo serie asíncrono (inicio, 7/8 bits de datos enviados LSB primero, paridad opcional, 1+ de parada) es el mismo. Solo cambia el nivel físico por el que viajan los bits:

  • UART/TTL (3,3 V/5 V): señales single-ended, “1” alto / “0” bajo.
  • RS-232: niveles invertidos y tensiones ± (típicamente ±3…±12 V), también single-ended.
  • RS-485: diferencial sobre el par A/B, a menudo half-duplex multidrop; se recomienda una tierra de referencia común.

Por lo tanto usa el adaptador correcto: USB↔TTL para UART, USB↔RS-232 para RS-232, USB↔RS-485 para RS-485. La trama es idéntica, pero cambian niveles eléctricos y topología (diferencial/terminación).

3.4 Dónde se usa (CNC, industria, etc.)

Este montaje es común en CNC, maquinaria industrial, PLC/HMI, robótica, balanzas, POS, sensores, instrumentos, domótica y, en general, cualquier sistema donde un PC/PLC controla un dispositivo por serie. El método de sniffing descrito permite monitorear/sniffear/depurar/registrar el tráfico para análisis funcional, diagnóstico de fallas, trazado de comandos y validación.

3.5 Modbus sobre serie

Los puertos serie a menudo transportan Modbus RTU/ASCII, un protocolo maestro/esclavo (ahora cliente/servidor) muy usado en la industria. El Maestro envía peticiones (lectura/escritura de bobinas y registros) y el Dispositivo responde. SerialTool incluye un cliente Modbus para consultar registros rápidamente (diagnóstico y pruebas), junto con el monitor/visor hex útil para ver tramas crudas (dirección, función, datos, CRC).

3.6 Actualización de firmware y parametrización

En el mundo embebido la serie se usa ampliamente para actualizaciones de firmware o pasar parámetros al Objetivo. Ejemplos: bootloaders en placas a medida, ecosistemas como Arduino, varios microcontroladores. Aquí un desarrollador puede tener dos necesidades:

  1. Depurar la aplicación que habla con el Objetivo (verificar comandos, tiempos, errores).
  2. Ingeniería inversa de un protocolo existente (hay un software Maestro “cerrado” hablando con una placa; lo olfateo para entender sus mensajes y luego los replico con mi propio software).

3.7 Notas prácticas y herramientas

  • Este montaje suele requerir dos PCs (el Maestro y el de Sniffing) y al menos dos convertidores USB a serie para sniffing bidireccional.
  • Para RS-232 usa un tap/convertidor RS-232; para RS-485 conecta una interfaz solo-recepción a los terminales A/B (respetando terminación y polaridad). En RS-485 half-duplex inferirás la dirección por el contexto temporal.
  • Excluimos pines de control (RTS/CTS, DTR/DSR, DCD, RI); si el sistema usa control de flujo por hardware, considera sondas dedicadas.
  • En SerialTool puedes habilitar vistas HEX, marcas de tiempo y guardar como registrador (texto/CSV/pcap) para análisis posterior.

En resumen: mismo protocolo serie (tramas asíncronas), distintos niveles físicos (TTL/RS-232/RS-485). Con escucha pasiva de dos RX y software como SerialTool puedes monitorear, sniffear, depurar y registrar de forma fiable la comunicación entre un PC Maestro y un Dispositivo Objetivo.

Capítulo 4 – COM Sniffer: monitor/sniffer/depurador/registrador sin cableado físico

COM Sniffer de SerialTool: monitorizar un puerto serie ya abierto por un software, sin conexiones físicas

COM Sniffer - Monitor de Puerto Serie

Con SerialTool – COM Sniffer no necesitas las conexiones del Cap. 3: el tráfico entre el PC Maestro (software propietario de terceros) y el Dispositivo Objetivo se captura directamente por el sistema, de forma transparente y no intrusiva.

4.1 Qué hace COM Sniffer

COM Sniffer es un monitor de puertos serie que intercepta la comunicación en un puerto COM ya abierto por otro programa, permitiéndote monitorear, sniffear, depurar y registrar todo el tráfico (TX/RX) sin tocar cables, sin hardware adicional y sin afectar el funcionamiento del PC Maestro o del Dispositivo Objetivo.

4.2 Cómo funciona: controlador de kernel

El núcleo es un controlador de kernel para Windows que se inserta en la pila del puerto serie y observa selectivamente:

  • Buffers de datos leídos/escritos (TX ↔ RX) con clara separación direccional;
  • IOCTL (Input/Output Control): aperturas/cierres, ajustes de baudios/paridad/stop, temporizadores, señales de control (RTS/DTR/CTS/DSR/DCD/RI), etc.;
  • Eventos/SEÑALES y estado del puerto (estado de línea, estado de módem).

El controlador es potente y la interfaz simple: puedes filtrar por tipo (solo datos, solo IOCTL de configuración, solo señales, etc.) para enfocarte en lo importante. Está diseñado para capturas de larga duración (horas/días) con estabilidad, para monitorizar tu app o una de terceros. Nota: funciona solo en Windows porque se basa en controladores en modo kernel.

4.3 Por qué es mejor (en muchos casos) que el cableado físico

  • Sin “laboratorio” de dos PCs + dos USB a serie: ahorra tiempo y reduce puntos de fallo.
  • Impacto eléctrico nulo: no cargas las líneas, sin riesgo de bucles de tierra.
  • Ves todo entre la app y el driver: datos, IOCTL, señales, incluso en múltiples puertos simultáneamente.

4.4 Registro y exportación para análisis de protocolos

Puedes guardar directamente a archivo como registrador (texto/CSV) o exportar a pcap/pcapng para análisis en Wireshark. Esto es extremadamente útil para protocolos industriales como Modbus RTU/ASCII: con tramas y marcas de tiempo puedes validar temporización, CRC, secuencias de funciones, etc.

4.5 Qué puedes observar

  • Datos TX/RX por separado, en ASCII y HEX, con marcas de tiempo;
  • Parámetros del puerto configurados por el software (baudios, 7/8 bits, paridad, stop, temporizadores);
  • Señales de control e IOCTL (RTS, DTR, CTS, DSR, DCD, RI) y cambios de estado;
  • Eventos de apertura/cierre y errores (overrun, framing, paridad).

4.6 Cuándo usarlo

  • Depurar tu aplicación serie sin cambiar código/cableado;
  • Monitorización a largo plazo de aplicaciones de terceros para auditoría/diagnóstico;
  • Ingeniería inversa de protocolos propietarios (donde sea legal) para replicar funciones con tu propio software;
  • Validación de protocolos estándar (p. ej., Modbus) y de señales de handshaking.

4.7 Notas y lecturas adicionales

COM Sniffer trabaja a nivel de sistema con la lógica del protocolo serie asíncrono (inicio/datos/paridad/parada). Si la aplicación usa distintos niveles físicos (UART/TTL, RS-232, RS-485) la captura sigue siendo idéntica, porque ocurre por encima del nivel eléctrico, dentro de la pila de puertos COM de Windows.

Enlaces útiles: Puerto serie · UART · RS-232 · RS-485 · IOCTL · Controladores de kernel de Windows · Wireshark · Modbus.

En pocas palabras: el COM Sniffer de SerialTool es una solución “solo software” para monitorear, sniffear, depurar y registrar un puerto serie abierto por otros programas, con un controlador de kernel fiable, filtros precisos y exportación para análisis avanzado.