Estoy tratando de aplicar ingeniería inversa a una comunicación en serie entre los microcontroladores (1 dispositivo y 1 microcontrolador en una placa). Una MCU valida la otra MCU y quiero descifrar la validación e imitar la MCU validada. Quiero saber qué protocolo se está utilizando para dar sentido a los datos. He capturado la comunicación con un analizador lógico y aquí hay una captura de pantalla de PulseView:
PulseViewtieneunafuncióndedecodificaciónperonosépordóndeempezar.Lacomunicaciónserealizaatravésde1cablesolamente.Peronoestoysegurosielprotocoloes"un cable". ¿Existen métodos estándar conocidos para identificar un protocolo de comunicación desconocido? ¿O tengo que identificarlo simplemente mirándolo?
Escribí un script para convertir los datos en el tiempo requerido para cambiar de un estado a otro (alto a bajo o bajo a alto) para comparar las mediciones repetidas y la ausencia de la MCU validada. Cada vez que los patrones se ven un poco diferentes. Hubiera sido genial saber que se puede decodificar en una matriz de bytes o para cualquier otro propósito.
El primer período largo y bajo de cada ciclo es a veces 90μs a veces 30μs. Cada ciclo tiene 14 interruptores en total. Los largos períodos altos entre ciclos pueden diferir en longitud (~ 270-330μs).
PS: el tiempo mínimo requerido para un cambio es de 30 μs, como se ve en la tercera fila de la imagen (120μs = 4 estados).
¡Gracias!
Editar: aquí hay ejemplos de señales, que no obedecen a la regla general.
Edit2:Distribucióndeperíodosaltosentreciclos:
Edit3:enlaprimerafase(ampliadaenlafilasuperior),hay4cuadrosquecomienzancon90μsdebajo,seguidospor23cuadrosquecomienzancon30μsdebajoyfinalmenteuncuadroquecomienzacon90μsdenuevo.
Edit4:Aquíestáel