4 votos

¿Qué tan difícil es la ingeniería inversa de un protocolo bidireccional para un principiante con un analizador lógico?

Hace poco compré un Entrenador Tacx Flow que tiene un ordenador de manillar, con un cable RJ-11 de 6 canales entre el entrenador y el ordenador de manillar. El ordenador lee la frecuencia de pedaleo, la potencia y la velocidad, y también es capaz de ajustar el freno del entrenador - por lo tanto la comunicación de dos vías.

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

Creo que logré deducir el GND y el PWR (el ordenador se alimenta de este cable), y vi algunos patrones posiblemente relacionados con la velocidad y la frecuencia de los pedales en dos de las cuatro líneas (las otras dos líneas eran latidos regulares, y señales irregulares y diminutas).

No se me ocurría la manera de seguir avanzando. ¿Es esto imposible para un principiante?

0 votos

El entrenador Tacx Fortius ha sido objeto de ingeniería inversa: code.google.com/p/fortius ¿Quizás el Flow fue diseñado por la misma gente y funcionaría de forma similar? Merece la pena echar un vistazo al código.

4voto

GetFree Puntos 495

Yo empezaría por buscar en la placa de circuito impreso los chips controladores que se utilizan (¿RS232? ¿RS485? ¿TSL? ¿Analógico?). Esto da una primera pista cómo para ver las señales.

No estará de más tener alguna idea de cómo podría ser una señal asíncrona de serie, I2C, SPI, etc. Google es (por supuesto) tu amigo.

Podrías intentar variar las entradas (velocidad, potencia, etc.) para ver qué cambia en las señales.

Desde el punto de vista del diseñador, me imaginaría cómo construiría yo un sistema así (o cómo lo han hecho otros) y comprobaría si se hace igual aquí. Probablemente usaría una cosa tipo dinamo en la rueda-bloque y haría todo el procesamiento en la unidad de visualización. (Lo que haría muy difícil la interpretación de las señales).

2voto

letronje Puntos 128

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

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

1voto

reconbot Puntos 1670

Tome unas cuantas instantáneas con el analizador lógico y anote los valores que muestra la pantalla cuando o poco después de tomarlas.

Primero trata de encontrar una estructura de paquetes.

Echa un vistazo a cómo funciona la comunicación en serie, especialmente comunicación serie asíncrona ya que es la solución más sencilla posible.

Observa los paquetes en busca de regularidades y diferencias, y si encuentras los valores (quizás escalados por algún factor). Ayuda si puedes variar sólo un parámetro y mantener todos los demás igual, pero eso puede ser difícil en este caso.

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

Ayuda a tener paciencia (la mayoría de las veces utilizo lápiz y papel para analizar los datos). Y si al principio no tienes éxito, prueba otra cosa.

1voto

Santosh Puntos 21

Un tema viejo, pero tuve un ir con un osciloscopio y el flujo de tacx, y de lo que puedo decir que se obtiene 3,3V, GND, una longitud de pulso de 3,3V que varía con la velocidad del volante, un pin que es 3,3V y tiró hacia abajo cuando el sensor de cadencia / relé de lengüeta se dispara. Luego un pin con +- 16V AC con un periodo de 50hz (supongo que para la calibración de la unidad de red) y otro que o bien es para alimentar la unidad de cabeza o para comunicarse desde la unidad de cabeza a la unidad de volante. Realmente no me interesó investigar más ya que mi objetivo era interceptar cualquier comunicación digital que pudiera decirme qué nivel de potencia estaba introduciendo en ese momento..

Así que cosas analógicas y si no quieres hacer el procesamiento tú mismo, simplemente compra otro entrenador. Los Fortius/genius de tacx parecen más bonitos..

Ya que este es el post nr1 (de 1 o 2) al buscar en Google la ingeniería inversa del flujo Tacx, pensé en añadir mis conclusiones. Saludos. :-)

0 votos

Es una pena que no hayas investigado más. Tengo un T1901 sentado en mi casa y me gustaría hacerlo inteligente.

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