Différence entre la valeur binaire réelle et la valeur de l'oscilloscope

14

J'ai essayé de voir un caractère ASCII "A" avec un oscilloscope, mais la valeur binaire réelle et les valeurs de l'oscilloscope sont différentes, pourquoi? ASCII "A" Valeur binaire - 01000001

L'oscilloscope affiche ce graphique:

Ascii A

Ascii A

J'utilise un Arduino Uno pour envoyer la valeur ASCII en utilisant le code:

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

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

Réponses:

35

Voici comment vous lisez la forme d'onde de l'oscilloscope. J'ai pris le temps d'éditer votre image de forme d'onde et de l'annoter pour montrer quel bit est lequel. Le microcontrôleur envoie 10 bits par caractère; START, qui est toujours 0, 8 bits de données et STOP, qui est toujours 1. La ligne reste également à 1, donc le premier front descendant START avertit le récepteur qu'un octet arrive. Les bits sont d'abord envoyés en LSB, donc si vous voulez les "regarder" de façon aritétique, vous devez les mettre en miroir horizontalement pour qu'ils aient un sens. La largeur de chaque bit est déterminée par la vitesse de transmission, et l'émetteur et le récepteur doivent tous les deux connaître la vitesse de transmission.

Sur l'image ci-dessous, vous pouvez voir qu'il envoie trois caractères: le caractère ASCII «A», un retour chariot et un saut de ligne.

entrez la description de l'image ici

PkP
la source
S'il s'agit d'une communication série, onde donne comme ça. droite? Que sont CR et LF? Quelles autres données peuvent obtenir comme CR ou LF?
user38701
1
CR est Carriage Return, LF est Line Feed. Ensemble, ils forment une nouvelle ligne, par exemple le curseur va au début de la ligne suivante. Ils font partie de la norme "ASCII" ("American Standard Code for Information Interchange"), google "ASCII chart" ou quelque chose.
PkP
@ user38701: CRLF est ce qui se passe lorsque vous appuyez sur la touche Entrée. Techniquement, CR est censé être la clé de retour et LF est censé être la clé d'entrée mais la console série interprète la clé d'entrée comme CRLF (ou parfois juste LF). Dans la plupart des langages de programmation, CR est "\ r" et LF est "\ n" mais certains compilateurs / langages produisent CRLF pour "\ n"
slebetman
1
Le retour chariot est simple. Il a utilisé une printlncommande, ce qui signifie imprimer la chaîne, ainsi qu'un "\ r \ n". Donc trois personnages
ps95
1
il convient de noter que les terminaisons de ligne sont spécifiques au système.CRLF est principalement la terminaison de ligne Windows et Arduino. Si vous répétiez le même test en utilisant un terminal sous Linux comme source du "A", vous ne verriez que le LF.
Nicolas Holthaus
13

Si vous regardez la documentation Arduino println () , vous verrez qu'elle ajoute un retour chariot et un saut de ligne à la fin. Ainsi, en décimal, vous vous retrouverez avec 65 (A), 13 (CR) et 10 (LF), ce qui en binaire se traduit par:

01000001 00001101 00001010

Les données série asynchrones sont envoyées en premier au LSB, ce qui devient:

10000010 10110000 01010000

Votre signal est au ralenti haut donc le bit de départ sera 0 et le bit d'arrêt sera 1 donc en ajoutant cela à chaque octet et vous vous retrouvez avec:

0100000101 0101100001 0010100001

Il est un peu difficile de déterminer le moment exact de votre diagramme, mais cela semble correspondre au moins à peu près et devrait vous donner une idée d'où viennent certains bits supplémentaires et pourquoi ils sont réorganisés. Le lien Wikipedia fourni par Kvegaoro donne beaucoup de bonnes informations de base sur les données série asynchrones.

PeterJ
la source
1

Si ce flux que vous montrez est en série asynchrone , l'oscilloscope affichera le bit de démarrage, le ou les bits d'arrêt et les bits de parité correspondants. Tenez également compte du fait que votre signal est inversé ou non et que la météo est le bit le plus significatif en premier ou le bit le moins significatif en premier. Si vous ajoutez plus de détails sur le flux série que vous avez représenté dans l'image, nous pouvons vous donner une meilleure réponse plus détaillée sinon ce n'est qu'une supposition éclairée

Kvegaoro
la source