Hi zusammen, ich stehe gerade etwas auf dem Schlauch und wollte mal fragen, ob mir jemand auf die Sprünge helfen kann. Ich habe folgendes Signal wie im Anhang aus einem Gerät mitgelauscht, das sind die ersten Bytes einer seriellen Kommunikation. 0V als idle sollte hier nicht stören, da das Signal invertiert zu sein scheint. Die Impulsdauer liegt bei rund 9ms (Cursor rot/blau). Wer kann mir helfen, die Baudrate zu errechnen? Liege ich richtig mit der Annahme, dass ein Symbol damit ~90ms dauert und somit die Buadrate 11bauds sein muss? Da stimmt doch was nicht, oder? Besten Dank und schönes Wochenende Joachim
...vielleicht weiss auch jemand direkt, wie die ersten Zeichen aussehen? Ich meine gehört zu haben, dass die Baudrate 7n1 sein soll, aber das sehe ich auf dem Bild nicht, da das ja schon 10 bit pro Periode/Zeichen sind? Gruß Joachim
Jack, danke, aber das hättest du dir auch sparen können, da das null auf meine Fragen eingeht. Vielleicht gibt es aber jemanden der meine Fragen konkret liest.
Nein, es geht nicht auf deine Frage ein. Es zeigt aber, dass sowas wie „dass die Baudrate 7n1 sein soll“ Unsinn ist, und vielleicht die Zusammenhänge erstmal zusammengehängt werden sollten. Dabei kann der verlinkte Artikel helfen.
Joachim schrieb: > Vielleicht gibt es aber jemanden der meine Fragen konkret liest. Dann solltest du die Frage auch erstmal korrekt stellen! Zur Klarstellung: Joachim schrieb: > dass die Baudrate 7n1 sein soll Das ist aber keine Baudrate, sondern das Übertragungsformat. Joachim schrieb: > Impulsdauer liegt bei rund 9ms Das ergibt die Baudrate von ca. 110 Baud.
Die Baudrate von UART Kommunikation bezieht sich auf die einzelnen Bits, nicht auf das ganze Byte samt Start- und Stop-Bit. Dietrich L. schrieb: > Das ergibt die Baudrate von ca. 110 Baud. Würde ich auch sagen.
Joachim schrieb: > danke, aber das hättest du dir auch sparen können, da das null auf meine > Fragen eingeht. Dann lies mal unter "Physikalische Einheit" wie die Einheit Baud definiert ist. Oder was ist deine Frage? Joachim schrieb: > Liege ich richtig mit der Annahme, dass ein Symbol damit ~90ms dauert Nein Lies mal in dem von Jack V. verlinkten Artikel wenigstens noch den zweiten Satz ("Jedes Symbol entspricht einer definierten, messbaren Signaländerung im physischen Übertragungsmedium.") und versuche ihn zu verstehen. Joachim schrieb: > Ich meine gehört zu haben, dass die Baudrate 7n1 sein soll 7n1 hat nichts mit der Baudrate zu tun. Ob ein Paritätsbit verwendet wird, kannst du aus einer LA-Aufzeichnung nicht erkennen.
Wolfgang schrieb: > Ob ein Paritätsbit verwendet > wird, kannst du aus einer LA-Aufzeichnung nicht erkennen. Ich denke da ist keins drin, denn es wäre sonst an mindestens einer Stelle falsch. Zähle mal die Anzahl der Bits auf High Pegel.
Joachim schrieb: > Impulsdauer liegt bei rund 9ms (Cursor rot/blau). Wer kann mir helfen, [...] > Liege ich richtig mit der Annahme, dass ein Symbol damit ~90ms dauert > und somit die Buadrate 11bauds sein muss? Da stimmt doch was nicht, > oder? Genau, da stimmt was nicht. Mal abgesehen davon, dass es eine ganze Menge verschiedene Frameformats für die UART-Kommunikation gibt, von denen längst nicht alle zehn Bits pro Frame haben, hast du auch noch ein dramatisches Problem mit trivialster Logik... Wenn 9ms wirklich die Dauer eines Bits ist, dann ist die Baudrate natürlich 1/9 ms=111 Baud, denn dafür spielt das Wortformat natürlich überhaupt keine Rolle... 111 Baud ist ziemlich ungewöhnlich (wären 11 Baud ebenfalls), aber natürlich möglich...
Besten Dank, 7n1 ist natürlich keine Baudrate, das war ein Fehler von mir... Könnt ihr mir sagen, warum das mit 7N1 nicht funktionieren kann? Ist 7N2 als Parameter möglich, wenn man sich das Signal anschaut?
Joachim schrieb: > Ich meine gehört zu haben, dass die Baudrate 7n1 sein soll, Nein, bestimmt nicht. Eher 7N2. Joachim schrieb: > ...vielleicht weiss auch jemand direkt, wie die ersten Zeichen aussehen? Wenn es 7N2 ist, dann ist das eine Folge von 4 * CR (Carriage Return oder 0x0D) + ASCII "A" (oder 0x41).
Joachim schrieb: > Könnt ihr mir sagen, warum das mit 7N1 nicht funktionieren kann? Ist 7N2 > als Parameter möglich, wenn man sich das Signal anschaut? Wozu genau hast du einen LA? Genau um sowas zu klären, auch wenn du nicht den Hauch einer Andeutung einer Ahnung hat... Also lerne wenigstens, wie man mit dem Teil umgeht, sonst kannst du es auch gleich wegwerfen und dir ein anderes Hobby suchen, Briefmarkensammeln z.B...
Joachim schrieb: > Könnt ihr mir sagen, warum das mit 7N1 nicht funktionieren kann? Ist 7N2 > als Parameter möglich, wenn man sich das Signal anschaut? Warum soll das mit 7N1 nicht funktionieren? Funktioniert genau wie mit 7N2, weil Stoppbit beliebig lang sein kann.
Joachim schrieb: > Könnt ihr mir sagen, warum das mit 7N1 nicht funktionieren kann? Ist 7N2 > als Parameter möglich, wenn man sich das Signal anschaut? Warum fragst du das nicht deinen Logikanalysator. Ein vernünftiger LA wird dir bei fehlerhafter Parität das Bit deutlich markieren.
Joachim schrieb: > dass die Baudrate 7n1 sein soll, aber das > sehe ich auf dem Bild nicht, da das ja schon 10 bit pro Periode/Zeichen > sind? Ja und - 1 Start + 7 Daten + 2 Stop = 10 Wenn der Sender 2 Stop bits sendet und der Empfänger 1 Stop bit erwartet ist alles gut. Also kann man 7N1 oder 7N2 einstellen. Georg
Es kann nicht 7N1 oder 7N2 sein, denn dann hättest du framing Fehler (falsches Stop-Bit). Man sieht da eindeutig 8 Bits zwischen Start und Stopp. Das achte Bit kann wie gesagt auch keine Parity sein, weil die dann bei mindestens einem Zeichen falsch wäre.
Wolfgang schrieb: > Der Symbolvergleich ist so etwas übersichtlicher ... Das Start Bit beginnt mit der fallenden Flanke, nicht mit der steigenden!
Stefan ⛄ F. schrieb: > Das Start Bit beginnt mit der fallenden Flanke, nicht mit der > steigenden! Kommt drauf an: Logic Level UART oder UART over RS232...
c-hater schrieb: > Kommt drauf an: Logic Level UART oder UART over RS232... Logic Analyzer messen Logic Level, richtig?
Auf Wolfgangs Bild sieht man doch, dass 7N2 durchaus möglich und sogar wahrscheinlich wäre.
Stefan ⛄ F. schrieb: > Logic Analyzer messen Logic Level, richtig? Nicht unbedingt. Sie messen was sie dafür halten... Den guten kann man ggf. sagen, dass sie falsch liegen. Die richtig Guten bekommen das bei UART sogar alleine raus, jedenfalls wenn das Eingangssignal lang genug ist...
Stefan ⛄ F. schrieb: > Das Start Bit beginnt mit der fallenden Flanke, nicht mit der > steigenden! Das Startbit muss sich vom Idle-Zustand unterscheiden, sonst wird das nichts mit dem Start. Also muss das Startbit mit einer steigenden Flanke anfangen. Joachim schrieb: > 0V als idle sollte hier nicht stören, da das Signal invertiert > zu sein scheint.
Wolfgang schrieb: > Das Startbit muss sich vom Idle-Zustand unterscheiden, sonst wird das > nichts mit dem Start. Also muss das Startbit mit einer steigenden Flanke > anfangen. Der Idle Zustand bei UART ist HIGH. Also muss das Startbit mit einer fallenden Flanke anfangen.
Der TE hat doch in seinem ersten Posting geschrieben, dass das Signal vermutlich invertiert ist: Joachim schrieb: > 0V als idle > sollte hier nicht stören, da das Signal invertiert zu sein scheint.
Zombie schrieb: > Der TE hat doch in seinem ersten Posting geschrieben, dass das Signal > vermutlich invertiert ist: > Joachim schrieb: >> 0V als idle >> sollte hier nicht stören, da das Signal invertiert zu sein scheint. Du kannst doch Schmalspur-Denkern wie Stefanus F. nicht mit Fakten kommen. Das kann er garnicht gut ab...
Stefan ⛄ F. schrieb: > Der Idle Zustand bei UART ist HIGH. Woraus entnimmst du, dass das Signal von einem UART mit Idle High stammt?
Wolfgang schrieb: > Woraus entnimmst du, dass das Signal von einem UART mit Idle High > stammt? Ich weiß es nicht. Ist genau wie die gegenteiligen Aussagen nur eine Vermutung.
Besten Dank nochmals für die Antworten. Das Signal ist nach der seriellen (TTL) nochmals über einen Transistor invertiert. Dort habe ich das Signal abgegriffen. Marc V. schrieb: > Wenn es 7N2 ist, dann ist das eine Folge von 4 * CR (Carriage Return > oder 0x0D) + ASCII "A" (oder 0x41). Kann mir jemand sagen, wie man da auf CR (0x0A) + 'A' kommt? Das klingt nämlich schon relativ plausibel. Ich werde nochmal versuchen länger zu loggen, vielleicht kann man da was sehen... @c-hater: ich weiss nicht, was du hier beitragen möchtest, aber deine flachen Kommentare gehen mir hart auf die Nüsse. Such dir bitte einen anderen Beitrag oder erstell deine eigenen, denn mich interessieren deine Kommentare nicht...
Joachim schrieb: > @c-hater: ich weiss nicht, was du hier beitragen möchtest, aber deine > flachen Kommentare gehen mir hart auf die Nüsse. Such dir bitte einen > anderen Beitrag oder erstell deine eigenen, denn mich interessieren > deine Kommentare nicht... Das ist aber heute das diensthabende Arschloch. Ich glaube, morgen ist "Cyblord" dran. Der ist vom gleichen Kaliber.
Joachim schrieb: > Kann mir jemand sagen, wie man da auf CR (0x0A) + 'A' kommt? Auf dem Bild von Wolfgang in Beitrag "Re: Baudrate berechnen anhand Logic-Analyzer" sieht man deutlich die Bitfolge
1 | 1 0100111 00 |
Die Start- und Stopp-Bits habe ich mal etwas abgesetzt dargestellt. Zuerst wird das niederwertigste Bit übertragen, also drehen wir das ganze mal um, damit die Binärzahl so da steht, wie wir es gewohnt sind:
1 | 1110010 |
Und weil das ganze wegen deinem Transistor invertiert ist:
1 | 0001101 |
Das ist von links nach rechts in Dezimal umgerechnet: 8+4+1=13, was wiederum 0x0D in hexadezimal ist.
georg schrieb: > Empfänger 1 Stop bit erwartet Dem Empfänger reicht auch ein halbes stoppbit, egal wie er konfiguriert ist. Sonst würden uarts nicht funktionieren.
Joachim schrieb: > Kann mir jemand sagen, wie man da auf CR (0x0A) + 'A' kommt? Das klingt > nämlich schon relativ plausibel. 0x0A ist LF (Linefeed) 0x0D ist CR (Carriage return). Und das letzte Zeichen ist wahrscheinlich (weil unvollständig) ASCII "U". Vielleicht wird "AUX" gesendet?
A.S. schrieb: > Dem Empfänger reicht auch ein halbes stoppbit, egal wie er konfiguriert > ist. Sonst würden uarts nicht funktionieren. Mit 110 Baud und 2 Stoppbits wäre ich mir da nicht so sicher. Sieht nach einem Fernschreiber, uralten Modem oder elektronischen Schreibmaschine aus.
Vielen Dank nochmal für eure Hilfe, das hat mich weitergebracht. Es handelt sich um ein Kaffeautomat. Wenn ich das nach dem Schema aufbaue, dann erhalte ich ein paar CR´s und "AUTOMAT" zurück. Daher ist das abgeschnitte Bitmuster auch tatsächlich ein "U".
Marc V. schrieb: > Mit 110 Baud und 2 Stoppbits wäre ich mir da nicht so sicher. Was wäre dein Vorschlag, um da ein AVR zu konfigurieren? 7N1? 7N2? Baudrate scheint wirklich 110 zu sein.
Beim Senden 7N2, gibt dem Empfänger mehr Zeit. Beim Empfang ist es egal.
Btw, beim ATMega328 ist die Konfiguration der Stopbits eh nur für's Senden.
Joachim schrieb: > Marc V. schrieb: >> Mit 110 Baud und 2 Stoppbits wäre ich mir da nicht so sicher. > > Was wäre dein Vorschlag, um da ein AVR zu konfigurieren? 7N1? 7N2? > Baudrate scheint wirklich 110 zu sein. Es handelt sich also um einen langsamen Kaffeeautomaten. Es wird schon einen Grund geben, warum das alles mit 110 Baud und 7N2 läuft. Also, es ist egal, AVR als Empfänger (und auch als Sender, falls es geht) ruhig auf 7N2 stellen, AVR wird sich dabei sowieso nur langweilen...
:
Bearbeitet durch User
Stefan ⛄ F. schrieb: > Es kann nicht 7N1 oder 7N2 sein, denn dann hättest du framing Fehler > (falsches Stop-Bit). Das ist halt einfach falsch. Bei den meisten UARTs bewirkt die Einstellung 2 Stoppbits zwar dass 2 gesendet werden, der Empfänger ist aber trotzdem mit 1 Stoppbit bzw. sogar weniger zufrieden und erzeugt keinen Framing Error. c-hater schrieb: > Du kannst doch Schmalspur-Denkern wie Stefanus F. nicht mit Fakten > kommen Ja, das ist wohl so. Keine Ahnung, aber das mit voller Überzeugung. Georg
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.