Traté de ver un carácter ASCII "A" con un osciloscopio, pero el valor binario real y los valores del osciloscopio son diferentes ¿por qué es eso? Valor binario ASCII "A" - 01000001
El osciloscopio muestra este gráfico:
Yo uso un Arduino Uno para enviar el valor ASCII usando el código:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("A");
delay(1000);
}
fuente
println
comando, que significa imprimir la cadena, así como un "\ r \ n". Entonces tres personajesSi observa la documentación de println () de Arduino , verá que agrega un retorno de carro y un salto de línea al final. Entonces, en decimal, terminará con 65 (A), 13 (CR) y 10 (LF) que en binario se traduce como:
Los datos en serie asíncronos se envían primero a LSB para que se conviertan en:
Su señal está inactiva en alto, por lo que el bit de inicio será 0 y el bit de parada será 1, por lo que se agrega a cada byte y termina con:
Es un poco difícil calcular el tiempo exacto de su diagrama, pero eso parece al menos coincidir aproximadamente y debería darle una idea de dónde provienen algunos de los bits adicionales y por qué se reordenan. El enlace de Wikipedia proporcionado por Kvegaoro ofrece una gran cantidad de información de fondo sobre datos seriales asíncronos.
fuente
Si ese flujo que muestra es serial asíncrono , el osciloscopio mostrará el bit de inicio correspondiente, los bits de parada y los bits de paridad. También tenga en cuenta si su señal está invertida o no y el clima es el bit más significativo primero o el bit menos significativo primero. Si agrega más detalles sobre la transmisión en serie que ha representado en la imagen, podemos darle una respuesta mejor y más detallada; de lo contrario, esto es solo una suposición educada
fuente