Datenrate für USART berechnen?

OP #2551283
Hallo,

ich versuche rechnerisch die richtige Datenrate für ein GPS-Modul zu 
berechnen, welches an einen USART eine Atmega644 angeschlossen ist.

Durch Probieren weiß ich, dass 19200bps eingestellt werden müssen, um 
lesbare Datensätze zu erhalten.

Jetzt wollte ich anhand des Nyquist-Shannon-Theorems die Datenrate 
berechnen. Per Oszilloskop habe ich eine Periodendauer von 0,104ms 
gemessen.

Damit komme ich auf folgende Schrittgeschwindigkeit:

SR=1/(0,104*10^-3 s)=9615,38 s^-1

Da es 2 Zustände gibt (-5V / +5V), folgen 2 Signalstufen.

Die Datenrate müsste nun folgende sein:

DR=ld(S)*SR=ld(2)*9615,38 s^-1=9615,38 bps

Warum muss ich dann 19200bps einstellen? Irgendwo habe ich einen 
Denkfehler, aber ich komme nicht darauf.

Vielen Dank für die kommenden Erleuchtungen! ;)
Gast #2551291
>Jetzt wollte ich anhand des Nyquist-Shannon-Theorems die Datenrate
>berechnen.

Buhahahhahhhahhhahhhhaaahahhhaaa.
Im Datenblatt gibt es Tabellen für Standard Baudraten.

>Per Oszilloskop habe ich eine Periodendauer von 0,104ms
>gemessen.

Ergibt 9600 Baud.
Gast #2551296
>Durch Probieren weiß ich, dass 19200bps eingestellt werden müssen, um
>lesbare Datensätze zu erhalten.

Achso, fast vergessen. Wenn du 19200 einstellen musst, dann
läuft deine CPU wohl doppelt so schnell wie du vermutest.
Oder F_CPU irgendwo falsch eingestellt? Fuses falsch.
Gast #2551299
Naja. Nur ein kleiner Denkfehler:
Du hast eine "Periodendauer gemessen.
Sowas aber gibt es bei der RS232 Übertragung nicht.
Du musst die "Bitdauer" messen.

Da zwei aufeinanderfolgende gleiche Flanken eine Periodendauer ergeben,
und dies zwei Bits sind, musst Du den Wert nur durch zwei teilen und 
kommst damit auf die eingestellten 19200 Baud.
Gast #2551301
Hi

> Wenn du 19200 einstellen musst, dann
>läuft deine CPU wohl doppelt so schnell wie du vermutest.
>Oder F_CPU irgendwo falsch eingestellt? Fuses falsch.

Eher halb so schnell.

MfG Spess
OP #2551309
Erstmal Danke, auch wenn mir die Antwort jetzt nichts gebracht hat.

Ich komme ja auch auf eine Datenrate von 9600bps.

Die GPS-Maus habe ich auch schon an den PC angeschlossen und da 
erscheinen erst lesbare Ausgaben bei einer Datenrate von 19200bps.

Das Oszilloskop zeigt mir eine Periodendauer von 0,104ms und eine 
Frequenz von 9,605kHz. Diese 2 Werte decken sich ja auch.

Nur möchte ich jetzt wissen, warum ich 19200bps einstellen muss, obwohl 
ich rein rechnerisch 9600bps einstellen müsste.

Das möchte ich nun gern wissen.
OP #2551312
Noname schrieb:
> Naja. Nur ein kleiner Denkfehler:
> Du hast eine "Periodendauer gemessen.
> Sowas aber gibt es bei der RS232 Übertragung nicht.
> Du musst die "Bitdauer" messen.
>
> Da zwei aufeinanderfolgende gleiche Flanken eine Periodendauer ergeben,
> und dies zwei Bits sind, musst Du den Wert nur durch zwei teilen und
> kommst damit auf die eingestellten 19200 Baud.

Vielen Dank für diesen nützlichen Beitrag! Danke Dir!
Gast #2551315
Lies bitte nochmal meine Antwort.
Sie sollte stimmen, falls ich Dich nicht total falsch verstanden habe.

Ansonsten muss hier mal Karl Heinz ran, denke ich.
#2551317
Noname schrieb:
> Lies bitte nochmal meine Antwort.
> Sie sollte stimmen, falls ich Dich nicht total falsch verstanden habe.
>
> Ansonsten muss hier mal Karl Heinz ran, denke ich.

Nö.
Ich werde nicht daraus schlau, was er da eigentlich gemessen hat. An 
einem UART Signal mit einem Frequenzmesser ranzugehen, dürfte nicht sehr 
sinnvoll sein.

Und damit
> Da es 2 Zustände gibt (-5V / +5V), folgen 2 Signalstufen.
kann ich überhaupt nicht viel anfangen.
Hä?
Gast #2551321
> Nö.

Ooooch.
Musst Du aber natürlich nicht.

Na er hat wohl mit dem Oszi gemessen. Visuell eine "Periodendauer" 
gesucht und gefunden und das für den Kehrwert der Baudrate gehalten.
OP #2551329
Karl Heinz Buchegger schrieb:
> Noname schrieb:
>> Lies bitte nochmal meine Antwort.
>> Sie sollte stimmen, falls ich Dich nicht total falsch verstanden habe.
>>
>> Ansonsten muss hier mal Karl Heinz ran, denke ich.
>
> Nö.
> Ich werde nicht daraus schlau, was er da eigentlich gemessen hat. An
> einem UART Signal mit einem Frequenzmesser ranzugehen, dürfte nicht sehr
> sinnvoll sein.
>
> Und damit
>> Da es 2 Zustände gibt (-5V / +5V), folgen 2 Signalstufen.
> kann ich überhaupt nicht viel anfangen.
> Hä?

Ich hab die GPS-Maus mit Strom/Spannung versorgt und am Tx-Pin das Oszi 
angeschlossen, da ich kein Datenblatt zur GPS-Maus habe. Damit wollte 
ich die Baudrate/Datenrate ermitteln.
Das macht schon Sinn, wie will man sonst etwas gescheit ausmessen?

2 Zustände sind es, weil das Signal zwischen -5V und +5V springt. Also 
ein binäres Signal.

Und Dank der tollen Theoreme von Nyquist-Shannon wollte ich rechnerisch 
die Baudrate ermitteln.

Der Fehler lag einfach darin, dass eine Periodendauer ja eine komplette 
Schwingung lang ist. Die Impulsdauer ist aber nur eine halbe Schwingung 
lang. Nun ergibt ja alles einen Sinn! Vielen Dank für den Hinweis!
Gast #2551338
Hi

>Und Dank der tollen Theoreme von Nyquist-Shannon wollte ich rechnerisch
>die Baudrate ermitteln.

Praktiker suchen sich den kürzesten Abstand zwischen zwei Flanken.

MfG Spess
Gast #2551354
Lieber Florian,

es macht wahrscheinlich wenig Sinn wenn ich jetzt darauf herumreite, 
weil Du ja eigentlich keine Frage gestellt hast, die sich genau auf das 
Nyquist-Shannon-Theorem (genauer Nyquist-Shannon-Abtasttheorem) bezieht 
oder auf übliche Pegel bei seriellen Übertragungen oder ob man bei 
seriellen Übertragungen (auf der Ebene von der wir hier reden von 
"Schwingungen" reden kann.

Aber:
Bei dem ersten und den letzten Punkt wendest Du die Begriffe auf ein 
Thema (serielle, RS232-Übertragung) an, über das diese Begriffe nichts 
aussagen. Im zweiten Fall, fehlt noch eine Info über den Unterschied 
zwischen "Symbolrate" und "Bitrate" (den ich leider selbst auch 
verwischt habe) und Du multiplizierst Da irgendwie einen Logarithmus 
einer "Anzahl von Symbolen" die eigentlich hier nichts zu suchen haben.

Falls Du dazu noch was wissen willst, antworten wir Dir gerne.
Aber bitte google doch zuerst mal:

1. Nyquist-Shannon-Abtasttheorem (Wikipedia ist auch gut)
2. RS232-Pegel
3. Baudrate
4. Symbolrate
5. Bitrate
6. Schwingung
7. Periodendauer

Ist alles nicht schlimm oder dumm, aber man kann sich einfach noch 
korrekter ausdrücken. Und das hilft wenn die Unterschiede dann doch mal 
wichtig werden.
Gast #2551366
----  ----  ----  ----
|  |  |  |  |  |  |  |
-  ----  ----  ----  ----

<-->
Bit, hier 8 Stück willkürlich 0x10101010
Die in 1s übertragen wären 8 bit/s = 8 Baud

<----->
Periode, hier 4 Stück
Die in 1s gemessen wären 4 Hz

Meinst du das mit dem Faktor 2?
OP #2551390
Noname schrieb:
> Lieber Florian,
>
> es macht wahrscheinlich wenig Sinn wenn ich jetzt darauf herumreite,
> weil Du ja eigentlich keine Frage gestellt hast, die sich genau auf das
> Nyquist-Shannon-Theorem (genauer Nyquist-Shannon-Abtasttheorem) bezieht
> oder auf übliche Pegel bei seriellen Übertragungen oder ob man bei
> seriellen Übertragungen (auf der Ebene von der wir hier reden von
> "Schwingungen" reden kann.
>
> Aber:
> Bei dem ersten und den letzten Punkt wendest Du die Begriffe auf ein
> Thema (serielle, RS232-Übertragung) an, über das diese Begriffe nichts
> aussagen. Im zweiten Fall, fehlt noch eine Info über den Unterschied
> zwischen "Symbolrate" und "Bitrate" (den ich leider selbst auch
> verwischt habe) und Du multiplizierst Da irgendwie einen Logarithmus
> einer "Anzahl von Symbolen" die eigentlich hier nichts zu suchen haben.
>

Gut, das Abtasttheorem (f_ab > 2*B) ist vielleicht hier etwas falsch 
gewählt, jedoch haben wir im Studium an dieser Stelle immer alle 
möglichen Datenraten errechnet, auch anhand unterschiedlicher 
Codierungen.

Das Vorgehen war meistens so, dass wir zuerst die Symbolrate(=Baudrate) 
ermittelt haben und anschließend die Datenrate.

Und da ist die mir bekannte Formel: DR=ld(S)*SR

DR...Datenrate
S...Symbole=Anzahl Stufen/Zustände, die das Signal annehmen kann
SR...Symbolrate(=Baudrate)

Ich kann gern morgen nochmal in einem Buch nachschlagen und die Quelle 
hier angeben. Jetzt ist es mir zu spät.

Das schöne in der Theorie ist ja, dass man immer alles vorgegeben hat. 
Ich habe mehr oder weniger jetzt zum 1. Mal mit einem Oszi gearbeitet.

> Falls Du dazu noch was wissen willst, antworten wir Dir gerne.
> Aber bitte google doch zuerst mal:
>
> 1. Nyquist-Shannon-Abtasttheorem (Wikipedia ist auch gut)
> 2. RS232-Pegel
> 3. Baudrate
> 4. Symbolrate
> 5. Bitrate
> 6. Schwingung
> 7. Periodendauer
>

3.==4.

> Ist alles nicht schlimm oder dumm, aber man kann sich einfach noch
> korrekter ausdrücken. Und das hilft wenn die Unterschiede dann doch mal
> wichtig werden.

Da gebe ich dir Recht.
OP #2551392
Krapao schrieb:
> ----  ----  ----  ----
> |  |  |  |  |  |  |  |
> -  ----  ----  ----  ----
>
> <-->
> Bit, hier 8 Stück willkürlich 0x10101010
> Die in 1s übertragen wären 8 bit/s = 8 Baud
>
> <----->
> Periode, hier 4 Stück
> Die in 1s gemessen wären 4 Hz
>
> Meinst du das mit dem Faktor 2?

Wenn deine 8 Bit hier eine Sekunde benötigen, dann ist ein Bit 1/8 
Sekunde lang, also Beträgt die Impulsbreite 0,125s.

Somit ist SR=1/(1/8)=8/s

Da es ein binäres Signal ist, ist die SR gleich der DR (8bps).

Ich hatte den Fehler gemacht, dass ich statt der Impulsbreite die 
Periodendauer verwendet habe. Schande über mich

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.