¿Qué tipo de comunicación serial es esta?

4

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 archivo de sesión sigrok .

    
pregunta Genom

2 respuestas

2

Dado el número de alternaciones, sospecho que este es un tipo de codificación de línea inusual. Creo que deberíamos ver más primeros planos de cada cuadro (lo que se llama un "ciclo") para hacer una conjetura. Mientras tanto, aquí hay algunos consejos para averiguar la codificación.

Las codificaciones de línea comunes, como NRZ y Manchester, representan bits como transiciones de nivel, no niveles en sí mismos. En algunas codificaciones (como Manchester), la dirección de la transición es significativa:

  • Alto a bajo
  • bajo a alto

En otros (como NRZ), la presencia o ausencia de una transición es significativa.

  • Transición presente
  • Transición ausente

A veces hay dos transiciones por tiempo de bit, a veces solo una. El artículo line en Wikipedia tiene mucha más información con ejemplos de varias codificaciones. Las implementaciones de protocolos asíncronos a menudo usan relleno de bits (por ejemplo, CAN y USB), pero eso no parece estar presente aquí. El relleno de bits se realiza normalmente después de una ejecución de ~ 6 bits, pero no veo ninguna ejecución de más de 3-4 bits en sus datos.

El hecho de que siempre vea 14 transiciones por fotograma parece significativo, pero no estoy seguro de cómo interpretarlo. Parece que hay 15 bits por fotograma, así que si uno es un bit de inicio, tendrías 14 bits de datos. En una codificación de estilo Manchester, serían 7 bits, que podrían contener un carácter ASCII.

    
respondido por el Adam Haun
2

actualización: es un protocolo de batería de levas

cierta realización en hardware simple puede ser compatible con un UART tal vez con paridad después de que se correlaciona y sincroniza con patrones repetidos.

Aquí hay un estándar no necesariamente de Nikon

enlace

  • preámbulo Todos los 1 inactivos Entonces 00 1010 1010 1010 reloj sincronizado 33.0kHz
    1111 1111 1111 ignorar.

  • xxxx xxxx reporta esto para cada secuencia.
    Repetir.

Use 30us clock y center sample en sincronización Ignore el jitter en el histograma pero corrija el eje x en / 10. Parece ser 30us no 300 nosotros.

Los picos de +40 -60 están causados por la distorsión de retardo del grupo de canales en diferentes patrones de datos llamados interferencia de símbolos Inter (ISI) que se pueden evitar pero no son necesarios para esta ruta corta y constante. Podría hacer una conferencia de 3 horas sobre este tema solo sobre cómo identificar las fuentes de error de señal y cómo se corrige la velocidad alta.

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas