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.
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...
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...
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.
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.
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...
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