¿Qué tan difícil es hacer ingeniería inversa de un protocolo de dos vías para un principiante con un analizador lógico?

4

Hace poco compré un Tacx Flow trainer , que tiene una computadora con manillar, con un cable RJ-11 de 6 canales entre el entrenador y la computadora del manillar. La computadora lee la frecuencia del pedal, la potencia y la velocidad, y también puede ajustar el freno del entrenador, por lo tanto, la comunicación bidireccional.

Tengo poca o ninguna experiencia en ingeniería eléctrica, pero pensé que compraría un analizador lógico para ver qué podía encontrar.

Creo que logré inferir la GND y la PWR (la computadora recibe energía de este cable), y vi algunos patrones posiblemente relacionados con la velocidad y la frecuencia del pedal en dos de las cuatro líneas (las otras dos líneas eran ritmos regulares, y Señales irregulares, minúsculas).

No podría pensar en una manera de progresar más. ¿Es esto simplemente imposible para un principiante?

    
pregunta meastp

4 respuestas

4

Comenzaría mirando la PCB para los chips de controlador que se utilizan (¿RS232? ¿RS485? ¿TTL? ¿Análogo?). Esto da una primera pista cómo para ver las señales.

No se perderá el tener una idea de cómo se vería una señal asíncrona en serie, I2C, SPI, etc. Google es (por supuesto) tu amigo.

Puedes intentar variar las entradas (velocidad, potencia, etc.) para ver qué cambios en las señales.

Desde el punto de vista del diseñador, me imagino cómo construiría un sistema así (o cómo otros lo han hecho) y verificaría si se hace de la misma manera aquí. Probablemente usaría una cosa parecida a una dinamo en el volante y haría todo el procesamiento en la unidad de visualización. (Lo que haría muy difícil interpretar las señales).

    
respondido por el Wouter van Ooijen
2

Los tiempos regulares son probablemente señales de reloj. Mira las señales irregulares con referencia al reloj. La mayoría de los sistemas muestrearán las líneas de datos (las señales irregulares) cuando el reloj esté cambiando, alto o bajo.

Intenta enviar una señal fija (presionando un botón o algo repetible) y busca un patrón predecible.

    
respondido por el Toby Jaffey
1

Tome algunas instantáneas con el analizador lógico y observe los valores que muestra la pantalla cuando los toma o poco después.

Primero intenta encontrar una estructura de paquetes.

Observe cómo funciona la comunicación en serie, especialmente comunicación en serie asíncrona , ya que es la solución más simple posible. p>

Observe los paquetes en busca de regularidades y diferencias, y si encuentra los valores (tal vez escalados por algún factor). Es útil si puede variar solo un parámetro y mantener todos los demás iguales, pero en este caso puede ser difícil.

También puede haber una suma de comprobación / CRC que varía cada vez que cambia algo en el paquete.

Es útil ser paciente (uso principalmente lápiz y papel para analizar los datos). Y si al principio no tienes éxito, intenta otra cosa.

    
respondido por el starblue
0

Un tema antiguo, pero probé con un osciloscopio y el flujo de tacx, y por lo que puedo decirte, obtén 3.3V, GND, una longitud de pulso de 3.3V que varía con la velocidad del volante, un pin que es de 3,3 V y se baja cuando se dispara el relé del sensor de cadencia / lámina. Luego, un pin con + - 16 VCA con un período de 50 hz (supongo que para la calibración de la unidad de alimentación) y otro para alimentar la unidad principal o para comunicarse desde la unidad principal a la unidad de volante. Realmente no me importaba investigar más, ya que mi objetivo era interceptar cualquier comunicación digital que pudiera decirme qué nivel de potencia estaba ingresando actualmente.

Entonces ... analice cosas y si no quiere hacer el procesamiento usted mismo, solo compre otro entrenador. Los Fortius / genius de tacx parecen más bonitos ...

Dado que esta es la publicación nr1 (de 1 o 2) cuando se busca en Google Tacx flow Revers Engineering, pensé que agregaría mis conclusiones. Aclamaciones. :-)

    
respondido por el Henrik

Lea otras preguntas en las etiquetas