Ayuda para identificar el bus serial de sincronización desconocido

¿Alguien ha visto una comunicación de bus serial de sincronización como esta?

Patrón repetido:ingrese la descripción de la imagen aquí

Detalle de inicio:ingrese la descripción de la imagen aquí

Personalmente, no he sido capaz de resolverlo yo mismo...

Sin embargo, parece I2C:

  • El reloj funciona a 2 MHz (como debería ser en HS-I2C como mínimo)
  • La línea parece estar bajada (I2C generalmente está bajada)
  • Parece que no puedo establecer ninguna condición de INICIO: el primer dato parece moverse después de 2 ciclos de reloj...

También parece SPI, pero:

  • Si la línea de datos es MOSI, el patrón se repite después de 5 palabras de 9 bits cada una (mientras que una palabra SPI normal es de 8 bits). Más tarde, parece repetirse otro patrón: 4 palabras de 6 bits cada una... Nunca he visto una comunicación SPI en la que la longitud de palabra cambie para el mismo par maestro/dispositivo. La longitud de palabra más pequeña podría ser un denominador común, pero esto debería darme longitudes de palabra de 3 bits...
  • Si desconecto el dispositivo del bus, el maestro aún envía exactamente las mismas señales, aunque sabe que el dispositivo no está presente y que no hay otra línea de datos, por lo que parece que esta línea de datos es bidireccional (al igual que I2C ) y hay algún tipo de apretón de manos (ACKnowledge) que ocurre en alguna parte.

Estoy pensando que este podría ser un bus/protocolo estandarizado del que simplemente no he oído hablar y que tal vez alguien aquí podría haberlo visto en alguna parte.

¿Cuál es el contexto (audio, video, ethernet, etc.)? ¿Hay pull-ups en una o ambas líneas? ¿Estás seguro de que no hay más líneas que estas dos? (Mi primera idea sería I2S, pero eso requiere al menos una línea adicional).
es cómo una impresora controla su cartucho de tinta. El maestro es la placa base de la impresora. El esclavo es el pequeño PCB detrás del cartucho de tinta. Otras señales en el cable de la plataforma son para suspender u otra señal de detección (analógica), las únicas 2 señales digitales son estas 2, y parece que se comunican ... Entonces, el propósito de este bus debería ser dar orden como: expulsar un poco de tinta ,...
Hasta ahora, creo que ha respondido a su propia pregunta: es un enlace en serie entre la impresora y el cartucho. Los enlaces en serie vienen en todas las formas y tamaños, y algunos son fáciles de entender y otros son difíciles: intente encontrar un enlace que haya sido encriptado o que contenga datos ADC de sensores analógicos de movimiento rápido. Intente resolver uno donde no tenga un reloj también. No se sorprenda demasiado por la variedad potencial de lo que puede encontrar.
@moquette31 conociendo a los fabricantes de impresoras, todo es propiedad, secreto comercial y patentado. No me sorprendería si este protocolo no está documentado y solo se usa con ese fabricante específico.
"Así que el propósito de este autobús debería ser dar órdenes como..." - Eso puede ser. Pero esto también puede ser algún tipo de protocolo de autenticación realizado por la impresora para verificar que el cartucho sea 'genuino'(TM) y/o para intercambiar otros parámetros como el nivel de tinta actual, etc.
¿Cómo determinaste la(s) longitud(es) de la 'palabra'?
A diferencia de la mayoría de los protocolos en serie, parece estar transmitiendo un poco de información en cada flanco ascendente y descendente del reloj. Bastante inusual AFAIK..
Intente bitbanging la misma señal (o use un FPGA o CPLD) y luego varíe la señal ligeramente (haga un ALTO -> BAJO o viceversa) y vea qué sucede.

Respuestas (2)

Esas 2 líneas probablemente no estén relacionadas.

Supongo que estas dos líneas no son un bus de "datos" en serie, dado que es muy poco probable que la línea de datos se muestree en ambos bordes del reloj. Al menos, no forman parte del mismo esquema de comunicación.

El trazo similar a un reloj es probablemente el comando "paso". Su propósito es informar a la placa base del carro de tinta que el motor paso a paso ha llevado el carro a la siguiente posición en la página.

¿Algunas alternativas?

El rastro similar a datos es posiblemente un interruptor de límite u otro sensor de algún tipo que indica la posición inicial, el comienzo de la fila, el final de la fila, etc.

O, alternativamente, podría ser un enlace de datos en serie asíncrono (sin señal de reloj transferida). Los largos períodos de inactividad entre bytes pueden ser necesarios para evitar la interferencia entre símbolos y promover la recuperación del reloj.

La señal superior parece ser una señal UART . Visualmente, parece que se transmiten 11 bits en cada carácter. Esto probablemente corresponde a 1 bit de inicio, 9 bits de datos y 1 bit de parada para 1 carácter. Es posible que uno de los bits de datos sea un bit de paridad, aparentemente como XNOR de los otros 8 bits de datos. Además, parece que solo aparecen dos caracteres en la captura de pantalla que proporcionó (0 1000 0110 y 1 1111 1111). Es probable que este sea un bus compartido y lo que está viendo es (comando de dev1), (ack de dev2), (comando de dev1), (ack de dev2), etc. Probablemente sea una configuración de protocolo de enlace maestro-esclavo .

La segunda señal muestra una deriva obvia de la primera señal, incluso en el corto tiempo en que se registró. Esto significa que no solo la señal no está relacionada, sino que probablemente ni siquiera esté en el mismo dominio de reloj que la primera señal.

Hay algunas maneras de probar esto. Desconecte el dispositivo que cree que es el maestro y suplante al maestro enviando el comando 0 1000 0110. Si recibe 1 1111 1111 del esclavo, sabrá que el bus es compartido.

Si eso funciona, también puede probar si uno de los bits es un bit de paridad. Simplemente cambie cualquier bit del comando original y vuelva a falsificar al maestro conduciendo el autobús con el carácter alterado. Si recibe un carácter diferente a cambio, es probable que sea el carácter de saludo de error.