Forum: Mikrocontroller und Digitale Elektronik Serielle Daten auf dem Oszilloskop


von Peter H. (thunderfrog)


Angehängte Dateien:

Lesenswert?

Hallo Gemeinde,

wollte mich mal nach langer Zeit mit einem Oszilloskop beschäftigen, und 
so habe ich mich mal an die serielle Datenübertragung herangetastet... 
und bin gleich auf einige Fragen gestossen, die ich gerne hier loswerden 
möchte :)

Kurze Zusammenfassung der Testumgebung:

USB-BUB II (USB => TTL Wandler) => 8N1, 19200
Putty als Terminal (auch 8N1, 19200)
Oszilloskop an Tx

Wenn ich nun die Taste "e" drücke, erhalte ich die Binärdaten der 
Übertragung (siehe Anhang)

Nun meine Fragen:

1. Warum kommen die Daten umgekehrt an ?
"e" laut ASCII Tabelle: 01100101
Ich muss mein Ergebniss immer von RECHTS lesen damit es schlüssig ist, 
das habe ich mit mehreren Buchstaben evaluiert. ("e" Nutzdaten grün 
umrandet)
Stopbit ist dann ganz links (gelb umrandet)

2. Wo ist der Startbit ?

3. Müssten die seriellen Datenbits nicht invertiert sein ?

Ich vermute das der USB=>TTL Wandler für einiges Verantwortlich ist, bin 
mir aber nicht wirklich sicher.

Danke Euch vorab & Guts Nächtli

von St. D. (st_d)


Lesenswert?

Peter H. schrieb:
> Stopbit ist dann ganz links (gelb umrandet)

Das ist Startbit. Stopbit (1) ist am Ende, von dir nicht markiert!


3. UART, als Protokoll, hat kein Inversion. RS232 hat! Du hast 
offensichtlich TTL-Level UART gemessen, nicht RS232...

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Das niederwertigste Bit (2 hoch 0) steht doch Rechts und wird zuerst 
gesendet.

Das Startbit steht demzufolge davor (rechts davon)

Bei RS232 auf TTL-Level ist nicht invertiert, das ist nur bei V24 so.

von Peter H. (thunderfrog)


Angehängte Dateien:

Lesenswert?

Hajoooo... jetzt wo Ihr das schreibt... :O)

2. OK, Startbit "0" steht am Anfang (gelb), der Stopbit ist dann der Bit 
nach der letzten eingetragenen "0" aus dem grünen Bereich.
P.S. Das erklärt auch, weshalb ich beim Umschalten auf 2 Stopbits keinen 
Unterschied gesehen habe... habe an der falschen Stelle gesucht :O)

3. Stimmt, habe TTL Level => kein RS232 => nicht invertiert... Klaro

1. Das leuchtet mir noch nicht so ganz ein...
In der ACII Tabelle steht der neiderwertigste Bit ja auch rechts (siehe 
Bild)
Mein Oszibild ist genau anders rum...ein von Beiden muss doch falsch 
sein...

Ich würde folgendes Bild erwarten:

Startbit + Daten + Stopbit
     0   01100101    1

Das wäre dann: 0011001011
Ich habe aber: 0101001101

EDIT: Eben hats gescheppert... der Groschen ist gefallen... ist doch 
wohl Zeit zum Bubu machen... FETTES MERCI !

Danke St. D. & Danke Frank

von Wolfgang (Gast)


Angehängte Dateien:

Lesenswert?

Peter H. schrieb:
> Startbit + Daten + Stopbit
>      0   01100101    1

Wie du inzwischen richtig erkannt hast, werden die Datenbits andersrum 
übertragen, d.h. zuerst das Bit 0 und zuletzt das Bit 7.

Ich habs noch mal in den Screenshot eingetragen.

von Georg (Gast)


Lesenswert?

Peter H. schrieb:
> Mein Oszibild ist genau anders rum...ein von Beiden muss doch falsch
> sein...

Du musst doch nur den Oszi auf den Kopf stellen.

Es gibt kein richtig oder falsch. Man kann festlegen, dass das 
niederwertigste Bit zuerst gesendet wird oder das höchstwertige, eines 
ist so gut wie das andere, es müssen sich bloss Sender und Empfänger 
dran halten. Meisten ist es das niederwertigste, das ist nämlich immer 
das gleiche Bit, egal wie lange das Zeichen ist.

Georg

von Peter Hess (Gast)


Lesenswert?

Wolfgang, George, habt Dank für den Nachtrag.

Mit dieser Fülle an neuen Erkenntnissen werde ich mal in den Äther 
fischen gehen und ein paar von meinen 433Mhz Temperatursendern sniffen 
und analysieren.

Der tiefere Zweck des Ganzen soll irgendwann die Datenübertragung 
zwischen 2 Mikrocontrollern sein (unidirektional)... mit eigenem 
Protokoll :O)

Mahlzeit
Peter

von Falk B. (falk)


Lesenswert?

SPI arbeitet meist mit MSB first, ebenso Ethernet & Co, dort wird 
auch das höherwertige Byte zuerst gesendet (network byte order). I2C 
überträgt auch MSB first.

von Peter H. (thunderfrog)


Lesenswert?

Falk B. schrieb:
... höherwertige "Byte" zuerst gesendet...

Hallo Falk,
müsste aber "Bit" heissen, richtig ?

von Falk B. (falk)


Lesenswert?

@ Peter Hess (thunderfrog)

>... höherwertige "Byte" zuerst gesendet...

>müsste aber "Bit" heissen, richtig ?

Nein. Ich meinte Byte. Wobei auch die höherwertigen Bits der Bytes bei 
Ethernet zuerst gesendet werden.

von Falk B. (falk)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.