14 votos

Diferencia entre el valor binario real y el valor del osciloscopio

He intentado ver un carácter ASCII "A" con un osciloscopio pero el valor binario real y los valores del osciloscopio son diferentes ¿por qué? ASCII "A" Valor binario - 01000001

El osciloscopio muestra este gráfico:

Ascii A

Ascii A

Utilizo un Arduino Uno para enviar el valor ASCII utilizando el código:

void setup() {  
  Serial.begin(9600);  
}  

void loop() {  
  Serial.println("A");  
  delay(1000);  
}

35voto

Dror Puntos 745

Así es como se lee la forma de onda del osciloscopio. Me tomé el tiempo de editar la imagen de su forma de onda y anotarla para mostrar qué bit es cada uno. El microcontrolador envía 10 bits por carácter; START, que es siempre 0, 8 bits de datos y STOP que es siempre 1. La línea también descansa en 1, por lo que el primer flanco descendente de START alerta al receptor de que viene un byte. Los bits se envían primero en el LSB, por lo que si quieres "mirarlos" aritméticamente, necesitas reflejarlos horizontalmente para que tengan sentido. La anchura de cada bit viene determinada por la velocidad de transmisión, y tanto el transmisor como el receptor deben saber cuál es la velocidad de transmisión.

En la siguiente imagen se puede ver que envía tres caracteres: El carácter ASCII 'A', un retorno de carro y un avance de línea.

enter image description here

13voto

xilun Puntos 261

Si miras el Arduino println() verás que añade un retorno de carro y un salto de línea al final. Así que en decimal terminará con 65 (A), 13 (CR) y 10 (LF) que en binario se traduce en:

01000001 00001101 00001010

Los datos seriales asíncronos se envían primero en LSB por lo que se convierte en:

10000010 10110000 01010000

Tu señal es alta en reposo, por lo que el bit de inicio será 0 y el bit de parada será 1, por lo que añadiendo eso a cada byte, acabas teniendo:

0100000101 0101100001 0010100001

Es un poco difícil calcular el tiempo exacto a partir de tu diagrama, pero parece que al menos coincide aproximadamente y debería darte una idea de dónde vienen algunos de los bits extra y por qué se reordenan. El enlace de Wikipedia proporcionado por Kvegaoro ofrece mucha información de fondo sobre los datos en serie asíncronos.

1voto

Nate Puntos 3229

Si esa corriente que muestra allí es Serie asíncrona El osciloscopio mostrará el correspondiente bit de inicio, bit(s) de parada y bits de paridad. También hay que tener en cuenta si la señal está invertida o no y si es primero el bit más significativo o el menos significativo. Si añades más detalles sobre el flujo serie que has representado en la imagen, podremos darte una respuesta más detallada, de lo contrario esto es sólo una suposición.

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