Tengo un producto electrónico de trabajo listo para usar. Estoy aplicando ingeniería inversa en él. El módulo WiFi está conectado al microcontrolador a través de UART (RX y TX). La aplicación de Android envía un comando a WiFi y el microcontrolador funciona según el comando. He conectado un cable USB a TTL en RX y TX y también controlo la conexión a tierra del módulo WiFi. El cable está conectado al monitor serial en la PC. Cuando la aplicación envía datos a WiFi, el monitor serial muestra un valor indescifrable. He comprobado todas las velocidades de transmisión posibles. En lugar del cable USB a TTL, también usé el módulo Bluetooth HC05. Pero muestra datos indescifrables. ¿Cómo puedo obtener los valores legibles en mi monitor serial? ¿Necesito desconectar el microcontrolador de WiFi?
No se utiliza RS232 en todo el diseño.
Las dos primeras imágenes tienen datos similares pero con diferente tasa de baudios. Los datos de la primera imagen se establecen en 4800 y el segundo en 9600 sin paridad, datos de 8 bits, bit de parada 1. "0D" es simplemente ingresar el comando (para facilitar la lectura).
Parece que 4800 bps es la velocidad correcta. Los datos del 9600 son obviamente (!) los mismos datos muestreados con el doble de frecuencia. Así es como se hace ese análisis:
Aquí están los datos de 9600 baudios como aparecerían como una secuencia de bits. Los datos se escriben LSB primero, y he representado los bits de inicio y parada como minúsculas o
(cero) y i
(uno), respectivamente.
|06 ||3F ||60 ||0C ||FE ||80 ||60 ||CC |
o01100000io11111100io00000110io00110000io01111111io00000001io00000110io00110011i
Aquí están los datos de 4800 baudios, extendidos a la misma escala de tiempo:
| 71 | | 24 || 0F | | A4 |
o 1 0 0 0 1 1 1 0 io 0 0 1 0 0 1 0 0 io 1 1 1 1 0 0 0 0 i o 0 0 1 0 0 1 0 1 i
Tenga en cuenta que cada bit en el flujo inferior corresponde a dos bits del mismo valor en el flujo superior. Tenga en cuenta que cuando se ejecuta a 9600, su escucha telefónica se vuelve a sincronizar en una transición de mayor a menor, por lo que hay un poco de "inclinación" alrededor de los límites de bytes a esa velocidad.
También está claro que una velocidad aún más lenta NO sería correcta: hay unos y ceros únicos aislados en los datos en 4800, lo que significa que esta es la tasa de muestreo mínima para estos datos.
La primera captura de pantalla hexadecimal (a 4800 baudios) parece prometedora:
Lo que está viendo es un mensaje de 4 bytes. El mensaje no está en ASCII , por lo que no es legible por humanos. El mensaje está codificado en binario (o hexadecimal, si lo prefiere) y, por lo tanto, debemos verlo e interpretarlo de esa manera. Binario normalmente da como resultado mensajes más cortos que ASCII.
Figura 1. La tabla ASCII puede ayudar en algunos casos. 'OD', que aparece en sus capturas de pantalla, es el carácter 'CR' (retorno de carro).
No ha proporcionado ninguna información sobre lo que hizo para generar los símbolos $ y # , por lo que no puedo ayudar más en este momento.
david tweed
usuario_1818839
jacob
MICRO
david tweed
MICRO
MICRO
jacob
vini_i
MICRO
jacob
MICRO
Transistor
Transistor
MICRO
MICRO
MICRO
tom carpintero
MICRO