¿Esta comunicación UART está codificada? ¿Cómo puedo recibir-decodificar y transmitir-codificar estos datos?

0

Obtengo una cadena desconocida al activar un protocolo de comunicación UART de dos dispositivos que no puedo nombrar aquí. Esa cadena es diferente cada vez que se recortan los dispositivos. El protocolo de comunicación actúa como se describe aquí:

  1. El dispositivo maestro (dev A) envía una cadena de búsqueda aleatoria, que contiene 19 bytes en total, donde 3 bytes son de inicio o de parada (están presentes en cada cadena aleatoria). Esta cadena aleatoria se envía cada vez alrededor de 10ms-20ms.
  2. Cuando el dispositivo esclavo (dev B) está conectado con dev A, parece que dev B decodifica esta cadena y envía otra cadena de aspecto aleatorio. Dev B solo envía una cadena aleatoria cuando está conectado a dev A.
  3. Si esa cadena aleatoria fue recibida por dev A, se inicia una rutina de comunicación donde, creo, dev B configura algunos registros de dev A. A diferencia de las cadenas mencionadas anteriormente, estas cadenas no están codificadas y tampoco parecen aleatorias. . No parecen aleatorios porque son periódicos (el mismo valor (ASCII) devuelve cada ronda y se parece a una dirección con un valor establecido después de ella, en la misma cadena).

Aquí hay algunas especificaciones: Físico: USART Protocolo de paquetes: DESCARGAR Baudrate: 38400 bps Voltaje lvl min / max: 0 / 3,3 V

Aquí hay algunos ejemplos de cadenas de aspecto aleatorio que he reunido con un programa de terminal, conectado con un cable USB a TTL:

Ejemplo 1 : algunas de las cadenas de aspecto aleatorio de dev A - > dev B (ASCII):  1. AóôD / À¿êf¬ — s6Ð „ž  2. AóôA / ‘¿ŠfÕ — 6 („ Ð  3. Aóô [/ ž¿ < 0 > f — ¦6 „¹

Nota: los primeros 4 bytes devuelven el mismo valor en todas las cadenas aleatorias (Aóô), ¿quizás startbytes?

Ejemplo 2 : algunas de las cadenas de aspecto aleatorio de dev A - > B (HEX):

  1. 0x02, 0x41, 0xF3, 0xD7, 0x51, 0xBE, 0xA1, 0x82, 0xF0, 0x8C, 0x9B, 0x1C, 0x87, 0x88, 0x2D, 0xB1, 0x1C, 0x1C, xxx0xxxxx >

  2. 0x02, 0x41, 0xF3, 0xEC, 0xA7, 0x9B, 0x03, 0xFB, 0xC0, 0xE3, 0x93, 0x29, 0x7B, 0x7D, 0x64, 0xF6, 0x29, 0x7B, 0x46 >

  3. 0x02, 0x41, 0xF3, 0x95, 0x0E, 0xC2, 0x57, 0x6B, 0xFC, 0x23, 0xB1, 0x8B, 0xF6, 0x6C, 0x9B, 0x4, 0xB3, 0xB3, 0x6, 0x6 >

Nota: los primeros 3 bytes se devuelven en cada cadena aleatoria (0x02, 0x41, 0xF3). Nota: este valor difiere del valor ASCII, tal vez el valor ASCII no se conozca en la tabla de búsqueda del terminal que uso, pero no estoy seguro.

Ejemplo 3 : algunas de las cadenas de aspecto aleatorio de dev B - > A (ASCII):

  1. Aóô[/ž¿<0>f—¦6 suministro¹

  2. AóôA/’¿ŠfÕ—6( para que se encuentren disponibles.

Ejemplo 4 : algunas de las cadenas de aspecto aleatorio de dev B - > A (HEX):

  1. 0x02, 0x41, 0xF3, 0xE3, 0xDA, 0xD2, 0xF1, 0x4C, 0x72, 0x18, 0xCA, 0xFD, 0x51, 0xFE, 0x08, 0x1C, 0xFD, 0x51, 0xFE, 0x08, 0x1C, 0xFD, 0x51, 0xFE, 0x08, 0x1C, 0xFD >

  2. 0x02, 0x41, 0xF3, 0x34, 0x3F, 0x59, 0x32, 0xC1, 0x47, 0xF3, 0x1E, 0x1, 0x94, 0xx1, 0xx1, 0x2F, 0x2F, 0xC5, 0xC5, 0x04 / li>

Nota: cada cadena "respuesta" termina con un valor NULO.

Ya intenté programar mi microcontrolador STM32F407 para que lea las cadenas de aspecto aleatorio de dev B mientras que la salida de dev A está conectada con la entrada de dev B. Luego, para enviar estas cadenas al dev A. pero no puedo encontrar un patrón, así que puedo reproducir la señal sin el desarrollo B.

La comunicación es necesaria para que se pueda activar una función de dev A. Necesito reproducir las señales ascendentes de dev B con un microcontrolador, para que dev B no sea necesario activar una función de dev A.

    
pregunta Raymond de Hooge

0 respuestas

Lea otras preguntas en las etiquetas