5 votos

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

Estoy tratando de hacer ingeniería inversa de una comunicación serial entre los microcontroladores (1 dispositivo & 1 microcontrolador en un tablero). Una MCU valida el otro MCU y quiero el crack de la validación y de imitar la validación de MCU. Quiero averiguar qué protocolo se utiliza para dar sentido a los datos. He capturado la comunicación con un analizador lógico y aquí está una captura de pantalla de PulseView: Logic Analyzer Signal

PulseView tiene la función de decodificación, pero no sé por dónde empezar. La comunicación ocurre a través de 1 solo cable. Pero no estoy seguro de si el protocolo es "uno-alambre". ¿Se conocen los métodos estándar para identificar a un desconocido protocolo de comunicación? O tengo que identificar simplemente mirarlo?

Escribí un guión para convertir los datos en el tiempo requerido para cambiar de un estado a otro (de alto a bajo o de bajo a alto) para comparar las mediciones repetidas y la ausencia de la validación de MCU. Cada vez que los patrones de aspecto ligeramente diferente. Habría sido genial conocer a descifrar este en la matriz de bytes o lo que se destina.

El primer largo período de baja en cada ciclo, a veces es 90µs a veces 30µs. Cada ciclo tiene 14 interruptores en total. Largos períodos de alta entre los ciclos pueden variar en longitud (~270-330µs).

PS: mínimo tiempo requerido para que un cambio es 30µs como se ve en la 3ª fila en la imagen (120µs = 4 estados).

Gracias!

Edit: Aquí son ejemplos de señales, que no obedecen a la regla general. irregular signal pattern

Edit2: Distribución de alta períodos entre ciclos: high period duration distribution

Edit3: En la primera fase (el zoom en la fila superior), hay 4 cuadros de partida con 90µs baja, seguido por 23 de los marcos de partida con 30µs baja y, finalmente, un marco de partida con 90µs baja de nuevo.

Edit4: Aquí está el sigrok archivo de sesión.

3voto

Al pacino Puntos 415

Dado el número de alterna, sospecho que esto es un tipo inusual de la codificación de línea. Creo que tendríamos que ver más de close-ups de cada fotograma (lo que usted está llamando a un "ciclo") para hacer una conjetura. Mientras tanto, aquí hay algunos consejos para resolver los problemas de codificación.

Común de la línea de codificación, tales como Manchester NRZ y representar bits como el nivel de las transiciones, no los niveles a sí mismos. En algunos códigos (como el Manchester), la dirección de la transición es significativo:

  • Alto a bajo
  • Bajo a alto

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

  • La transición actual
  • Transición ausente

A veces hay dos transiciones por poco tiempo, a veces sólo uno. El código de la línea de artículo en la Wikipedia tiene mucha más información con ejemplos de varias codificaciones. Implementaciones de protocolos asincrónicos a menudo el uso de bits de relleno (por ejemplo, PUEDE y USB), pero que no parece estar presente aquí. Bits de relleno se realiza normalmente después de una carrera de ~6 bits, pero no veo ninguna se ejecuta más de 3-4 bits en los datos.

El hecho de que siempre se vea 14 transiciones en cada fotograma parece significativo, pero no estoy seguro de cómo interpretarlo. Parece que hay 15 bits veces por trama, así que si uno es un bit de inicio que tendría 14 bits de datos de veces. En un Manchester-estilo de codificación, que sería de 7 bits, el cual puede contener un carácter ASCII.

3voto

ozmank Puntos 127

actualización : es un cam protocolo de baterías

algunos realización de hardware simple puede ser compatible con una UART tal vez con la paridad después de correlacionar y sincronización a la repetición de patrones.

Aquí es un estándar no necesariamente de Nikon

https://www.basecamelectronics.com/files/SimpleBGC_2_6_Serial_Protocol_Specification.pdf

  • preámbulo Todos los 1 de Inactividad A continuación, 00 1010 1010 1010 sincronización de Reloj 33.0 kHz
    1111 1111 1111 ignorar.

  • xxxx xxxx informe esta de vuelta para cada secuencia.
    Repita.

El uso de 30us reloj y el centro de la muestra en la sincronización Ignorar la fluctuación en el histograma, pero correcto en el eje x por /10. Parece ser 30us no 300 nosotros.

Los picos de +40 -60 son causados por el canal de retardo de grupo distorsión en diferentes patrones de datos llamado Inter symbol interference (ISI) que se puede evitar, pero no es necesario para esta corta trayectoria estable. Yo podría hacer un 3 hr conferencia sobre este tema en cómo identificar las fuentes de la señal de error y cómo se corrige para la alta velocidad.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X