Estoy intentando escuchar un dispositivo que se comunica a través de un puerto serie. Construí un adaptador de monitoreo y configuré un script de Python, que funciona muy bien. Simplemente no sé la longitud exacta y la forma de la secuencia de datos. El problema es:
- No tengo ninguna documentación técnica sobre este dispositivo
- No sé cómo se supone que se verán los datos que estoy recibiendo, por lo tanto, no puedo hacerlo mediante prueba y error hasta que los datos tengan sentido
Así que tengo que averiguar los parámetros del puerto serie de otra manera. Tengo acceso a un viejo osciloscopio. ¿Es correcto que pudiera hacer esto analizando la señal de voltaje de manera similar a la siguiente imagen?
Obtuveestaideademisnotasanterioressobrecomunicaciónenserie,dondeescribí:
"El bit de parada tiene un valor de 1 y siempre se puede detectar, incluso si el valor anterior era 1, debido a la duración de los bits de parada de 1.0, 1.5 o periodos de 2.0 bits. "
¿Esto es correcto? ¿Y podría hacerlo yo mismo? Espero conectar el osciloscopio a mi computadora y ver la señal a través de sigrok o un software similar similar. Antes de intentar hacerlo (el osciloscopio es de 1994 y usa un puerto paralelo desconocido para mí), esperaba que pudieras darme alguna información sobre si este es el enfoque correcto. Por supuesto, espero que me esté perdiendo algo fácil de averiguar los parámetros.
EDIT : gracias a Jot y Tut pude medir mi velocidad de transmisión: 19200. Sin embargo, me cuesta mucho tratar con el tipo y la longitud de los bits. Intenté ver los datos entrantes y un programa de terminal en serie, pero después de modificar la configuración todavía no puedo decir cuáles son los parámetros de bits correctos.
EDIT2 : son dos cosas que lee mi script de monitoreo en Python. Valores hexadecimales y símbolos ASCII intermedios, donde el valor de un byte es igual al valor de un símbolo ASCII imprimible. Sin embargo, esto significa que siempre obtengo 8 bits a la vez, ¿no es así? ¿No debería obtener al menos 9 bits por cada byte de datos, si se incluye al menos un bit de parada? Por ejemplo, para la acción más simple de mi dispositivo obtengo: "\ xf2 \ xa3", que es 11110010 10100011 en binario. Incluso si reorganizo el espacio, los bits de inicio y parada o un bit de paridad opcional no están allí
EDIT3 : Tengo que decir que este es un proyecto para el cual el propósito principal es aprender cosas, por lo tanto, tengo que detenerme un poco en los detalles. Ahora traté de hacer coincidir los datos que he monitoreado con las señales en bruto que recibo del osciloscopio, aunque es un poco difícil ver los datos en la pantalla pequeña. He elegido una acción muy simple para mi dispositivo y el resultado es la siguiente imagen:
Entonces,estaseñalseríaanálogaamiprimeraimagenysetraduciríaa
00100111111011000101
sinembargo,comoescribíenEdit2,losdatosqueobtengoalusarmiscriptPython(tambiénconsultéconRealterm)para192008N1es"\ xf2 \ xa3" (Python usa la "\ x" para indicar valores hexadecimales ), que está en binario
1111 0010 1010 0011
Esto todavía no se acumula, incluso si teóricamente incluyo los bits de inicio y parada, así como los bits de paridad. Si intento 19200 7N1 obtengo
r # = 0111 0010 0010 0011
que no es mejor. También confuso para mí: si cambio la configuración para incluir un bit de paridad (ya sea Python, Realterm o putty), los datos que estoy recibiendo no cambian. ¿Porqué es eso? ¿No debería cambiar?