Ingeniería inversa de dispositivos seriales antiguos y clonación con Arduino

Tengo un equipo de música que usa un control remoto. Este control remoto se comunica bidireccionalmente con la unidad principal. Se comunica a través del protocolo RS-422 (principalmente para la distancia del cable, creo).

Compré un par de adaptadores RS422 a USB con la intención de espiar los datos en ambas direcciones utilizando algún software de monitoreo de puerto serie.

Todavía no he logrado que funcione correctamente por sí solo; Creo que es más probable que sea la configuración de conexión que estoy intentando, ya que los datos que veo parecen desordenados. Por lo que puedo decir del manual de servicio, esto debería ser caracteres de 8 bits sin paridad y 2 bits de parada.

De todos modos, como este dispositivo ahora es arcaico en términos de tecnología (1982, creo), creo que sería un gran candidato para clonarlo con un Arduino.

El control remoto en sí usa un viejo microcontrolador Intel 8749. Este era un dispositivo basado en MCS-48 (creo) que también tenía una pequeña EEPROM incorporada para la memoria del programa. Esto era de 8 bits con 3 puertos de E/S.

La unidad remota básicamente tiene 12 pantallas antiguas Litronics DL-1414 alfanuméricas de 4 dígitos (que reciben un carácter ASCII y lo mantienen en su memoria hasta que se actualiza), un banco de botones y faders (que están conectados a través de un ADC) y un medidor de nivel de dB. .

Tengo el manual de servicio de la unidad que profundiza mucho más en el esquema de direccionamiento de bits de los dispositivos, que puedo cargar.

Podría estar pensando en esto de manera incorrecta, pero mi idea era olfatear y capturar los datos que se envían y reciben para averiguar qué se envía, por ejemplo, cuando se mueve un fader. Me imagino que esto sería fácil de sujetar a un potenciómetro deslizante en Arduino y luego enviar ese movimiento al bus serie posiblemente con algunos bits de control agregados y luego el valor.

Realmente agradecería algunos pensamientos y tal vez consejos, sobre cómo se puede abordar tal ingeniería inversa.

aquí hay algo de información del manual de servicio.

Respuestas (3)

Lo que busca es una herramienta llamada analizador lógico, como este http://www.dx.com/p/logic-analyzer-w-dupont-lines-and-usb-cable-for-scm-black-148945

Un software que lo acompañe debería poder decodificar UART, así como muchos otros protocolos para facilitar la ingeniería inversa.

Puedes hacerlo por hardware o por software.

Hardware: compre algo como lo menciona Spark. O construye el tuyo propio; En general, use algo como Arduino para hacer eco entre SoftSerial (en un UNO o Serial en un Leo) a Serial. Donde conecta el SoftSerial a su bus 422 a través de los controladores de interfaz apropiados.

Software: O un software de uso más simple para Sniffer los mensajes al puerto serie para capturar los datos. En Windows, algo como http://freeserialanalyzer.com/ se ve lo suficientemente bien.

Puede monitorear los datos de los puertos COM RS232/422/485 y también muestra, registra y analiza toda la actividad del puerto serie en un sistema mediante la utilidad https://github.com/eltima-software/RS232-Data-Logger Desde mi experiencia de primera mano es gratis y hace todo lo que dice hacer sin restricciones.