¿Cómo analizo esta señal UART?

0

Quiero hacer la misma señal como las siguientes imágenes usando un Arduino Uno. Pero no puedo encontrar la velocidad en baudios de esta señal.

Calculé la velocidad en baudios de la misma manera que Wikipedia. Pero cuando utilicé la tasa de baudios obtuve un error de encuadre.

La duración del bit de inicio: 0.2223 ms

1 / (0.2233 / 1000) = 4478 bit / s

¿Qué hice mal?

Actualizar

Eldispositivotienelossiguientes4pines.

  • VIN:12V
  • GND
  • GND
  • SEÑAL:3.3V

Notengoningúndocumentocomounahojadedatosounmanual.CreoqueusalacomunicaciónUARTporquesolohayunpindeseñal.

SuboelarchivodedatoslógicosamicuentadeDropbox: Aquí !

    
pregunta neosarchizo

3 respuestas

1

Prueba 10500 baudios. El flujo de datos debe ser 0xAA 0x24 0x00 0x00 0x55 . Mi sugerencia para determinar la velocidad en baudios es buscar bytes característicos. En su captura, la secuencia larga de cero es un buen candidato (en general, los bytes 0x00 y 0xFF parecen muy característicos en serie): 10 bits divididos por la longitud total del cuadro marcado le dan la velocidad en baudios.

    
respondido por el magnustron
1

Creo que la velocidad en baudios es 14400.



Estimo (medido con una regla) que el pulso amarillo es aproximadamente 3.2 veces el pulso verde.

Multiplico su 4478 bit / s por 3.2 = 14,329 bit / s.

    
respondido por el Misunderstood
1

Suponiendo que se trata de datos en serie asíncronos, el tiempo de bit es probablemente igual (y no puede ser más largo) que el pulso más estrecho. Según mi recuento de píxeles, esto es ~ 64.4us, correspondiente a 15.5k bits / s.

Sin embargo, una trama UART estándar consiste en un bit de Inicio (siempre bajo), 5-10 bits de datos / paridad (alto / bajo) y un bit de Parada (siempre alto). Por lo tanto, el tiempo bajo continuo máximo no puede superar los 11 bits.

El tiempo bajo más largo en su señal es ~ 889us. Dividiendo eso por 64.4us da 13.8 bits. Por lo tanto, llego a la conclusión de que no se trata de datos en serie asíncronos que el UART puede leer en su Arduino.

Una posibilidad es que la señal esté invertida, es decir. Inicio = alto, Alto = bajo Su captura es demasiado breve para hacer una determinación concluyente (no funcionó bien para mí, pero es posible que lo haya contado mal), así que podría intentar invertir la señal.

También puede ser útil saber más sobre el dispositivo desde el que está leyendo. Si la interfaz física es similar a RS232, es muy probable que se trate de datos asíncronos, pero si el dispositivo es inalámbrico, es posible que la señal tenga que estar en un formato de temporización automática.

    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas