capturar datos sin procesar en el puerto COM


11

Tengo un dispositivo de transmisión Bluetooth y mi PC (Windows 7) está conectado y configurado como si estuviera conectado a través de un puerto serie RS232 (COM4). ¿Cómo puedo capturar los datos sin procesar transmitidos por el dispositivo Bluetooth o, de manera equivalente, los datos sin procesar recibidos en COM4?


No es una pregunta electrónica, por lo que puedo decir.
Brian Carlton el

55
De hecho, creo que esto es sobre el tema. Hay algunas piezas de software que pueden capturar datos en serie desde un puerto COM (algunos de ellos incluso cuando otra aplicación está usando el puerto), y el software es realmente lo suficientemente especializado como para que la mayoría de la gente no sepa que existe. La desventaja es que después de pasar algún tiempo buscando dicho software, no pude encontrar ninguno que funcione bien en las computadoras posteriores a XP.
AndrejaKo

¿Estás buscando una herramienta como esta? com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/…
kenny

Respuestas:


9

Puede usar un programa de terminal estándar para capturar los datos en diferentes formatos. Sugiero usar Bray's Terminal , ¡es realmente fácil y tiene muchas opciones!

¿O desea capturar e interpretar los datos en algún tipo de aplicación propia?


¡Gracias! No estoy buscando interpretar los datos. Todo lo que quiero es recibir los datos sin procesar y poder guardarlos en un archivo. Estoy tratando de averiguar qué transmite realmente mi dispositivo Bluetooth. ¿La Terminal de Bray haría eso por mí?
user11395

@ user11395: sí, cualquier software de terminal decente lo hará, yo también uso la Terminal de Bray: Putty es otra buena ... Un consejo: si tiene problemas para conectarse en la Terminal de Bray's, vaya a las propiedades del dispositivo del módulo BT en Windows (Control Panel -> Dispositivos Bluetooth, haga clic derecho y seleccione "propiedades"), y anule la selección y vuelva a seleccionar el servicio SPP.
Oli Glaser

gracias Oli Estoy ejecutando la Terminal de Bray, pero algo parece estar mal. "Reescaneo" de los puertos, encuentro el puerto COM4, ​​me conecto a COM4 y luego puedo ver los datos capturados. Sin embargo, no creo que sean correctos. No estoy seguro de los valores de velocidad de transmisión / bits de datos / bits de parada de paridad / apretón de manos que debería elegir. ¿Alguna sugerencia?
user11395

En general, los módulos vienen configurados en 9600,1, N (1 bit de parada, sin paridad), pero 115200 también es común (puede decir cuáles son los valores predeterminados donde sea que lo haya comprado). Puede establecer la velocidad en baudios con un comando AT (no a través del enlace inalámbrico, debe conectarse directamente a los pines Rx / Tx del módulo). Antes de intentar esto, envíe un carácter conocido repetidamente y simplemente comience desde el baud más lento y vaya subiendo - uno de ellos debe producir los datos correctos.
Oli Glaser

Logré capturar los datos con la terminal de Bray. No importa si selecciono una velocidad en baudios de 9600 o 115200 en el terminal de Bray, obtengo los mismos datos (que parecen ser correctos). ¿Por qué ambas opciones dan el mismo resultado? Además, descubrí que mi dispositivo tiene una velocidad en baudios de 115200, pero hasta donde puedo ver en mi administrador de dispositivos, este puerto COM está configurado en una velocidad en baudios de 9600 (supongo que por defecto). ¿Debo cambiar eso?
user11395

2

La mejor solución que he encontrado, aunque un poco tosca, es Tera Term http://ttssh2.sourceforge.jp/index.html.en .

Bray's no funciona bien con Windows 8. Si bien es imposible saber qué está haciendo exactamente sin la fuente, parece que está asumiendo algo sobre la ubicación de una configuración de registro.

portmon tampoco me funcionó en Windows 8.


Estoy usando Bray's en la última versión de Win 10, por lo que todavía funciona al menos en algunos casos. Mi computadora solo tiene COM3 instalado.
Chris Dragon

2

Mi emulador de terminal favorito para la depuración es RealTerm, que tiene una buena gama de opciones de visualización para sistemas integrados. Tanto RS-232 como TCP / IP funcionan bien con Windows 7 x64 y versiones inferiores (no lo he probado con Win 8 pero no tengo ninguna razón para pensar que no funcionaría). Algunas características que encuentro especialmente útiles son:

  • Vista de datos ASCII / HEX
  • Los archivos de captura pueden incluir marcas de tiempo
  • Hay una manera fácil de enviar secuencias de datos binarios.
  • Los pines de control de flujo de hardware se pueden controlar / cambiar fácilmente

También hay muchas otras opciones para I2C, SPI, Dallas 1-wire y GPIB. No he usado personalmente esas funciones, pero hay un buen resumen en la página de SourceForge arriba. Aquí hay una captura de pantalla de la vista de la pestaña de visualización principal:

ingrese la descripción de la imagen aquí


1

También recomiendo rebuznar, si no está seguro acerca de la velocidad en baudios, abra el administrador de hardware, navegue hasta los puertos COM y seleccione propiedades, está en la lista, aunque no siempre es preciso.


Logré capturar los datos con la terminal de Bray. No importa si selecciono una velocidad en baudios de 9600 o 115200 en el terminal de Bray, obtengo los mismos datos (que parecen ser correctos). ¿Por qué ambas opciones dan el mismo resultado? Además, descubrí que mi dispositivo tiene una velocidad en baudios de 115200, pero hasta donde puedo ver en mi administrador de dispositivos, este puerto COM está configurado en una velocidad en baudios de 9600 (supongo que por defecto). ¿Debo cambiar eso?
user11395

1

Hay portmon : una herramienta sysinternals que actúa como un datascopio para puertos COM.


1
No funciona en sistemas x64 de Windows en mi experiencia.
JonCage

1

Dependiendo de sus requisitos exactos, puede ser útil usar un microcontrolador que pueda capturar y sellar los datos y luego enviarlos a la PC. Los UART que se encuentran históricamente en las PC típicas solo han podido registrar información de sincronización precisa o capturar datos de 9 bits al hacer que el procesador tome cada byte a medida que llega, sin almacenamiento en búfer; los sistemas operativos y controladores posteriores generalmente no están equipados para hacer eso, y los chips UART a USB no tienen remedio en ese sentido. Si su PC puede recibir datos al doble de la velocidad de datos deseada, puede hacer que un microcontrolador reciba bytes de datos y que cada byte envíe dos bytes. El primer byte tendría el conjunto MSB, informará el MSB (o dos MSB si es de 9 bits) de los datos entrantes en los siguientes bits, y use los últimos 5 (o 4) bits para informar la cantidad de tiempo (0-30 o 0-14) desde la mitad del bit de parada del byte anterior (medido en unidades de, por ejemplo, un tiempo de bit). El segundo byte tendría el MSB despejado y contendría los 7 bits restantes de datos. Cuando no se transmiten datos, los caracteres de estimulación FF se enviarían cada 30 (o 14) bits de veces. El software que recibe estos informes podría así reconstruir con mucha precisión (dentro de un tiempo de bit) la sincronización exacta de los datos entrantes. Si la velocidad de datos que alimenta la PC fue cuatro veces mayor que la velocidad de datos que se está monitoreando, uno podría usar este esquema general para multiplexar dos canales de recepción en un puerto de PC (use un bit del byte de encabezado para identificar si contenía datos para el primero o el segundo Puerto). Si bien cronometrar las cosas con precisión de un bit puede parecer excesivo, a veces puede ser útil

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.