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! ;)
>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.
>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.
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.
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
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.
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!
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.
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ä?
> 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.
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!
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
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.
---- ---- ---- ---- | | | | | | | | - ---- ---- ---- ---- <--> 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?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.