Können wir die Baudrate oder Kommunikationsgeschwindigkeit der RS232-Kommunikation aus dem X-Ausgangssignal berechnen ?
Das folgende Bild stammt von einem RS232-Kommunikationsausgangssignal. Ich habe dieses Bild mit 0xaa aufgenommen und der Zeitraum zwischen den Hochs beträgt 100.us.
Ich habe gehört, dass die Frequenz des externen Oszillators 8 MHz beträgt. Können wir daraus die Baudrate berechnen?
F=1/T
.Antworten:
Es sieht so aus, als hätten Sie ungefähr 2,4 Bit-Zeiten pro Division, was 250 µs entspricht. Damit liegt jede Bitzeit bei 104 µs. Invertieren ergibt 9,6 kBaud. Das ist eine der Standard-Baudraten, das klingt also ziemlich plausibel.
quelle
Ihr Bereich zeigt das Timing bei . Dies kann entweder das Setzen der Cursor oder die automatisierte Verwendung einer Kennzahlfunktion für den Bereich sein. Das sagst du nicht. In beiden Fällen stimme ich Olins Kommentar zu, dass dies nahe 9600 Bit / s liegt, was eine übliche Bitrate für die RS-232-Kommunikation ist.100μs
Ihr eigener Kommentar zur externen Taktrate würde jedoch, falls zutreffend, argumentieren, dass eine exakte Auflösung von 9600 Bit / s unwahrscheinlich ist. teilt sich nicht gleichmäßig auf 9600 Bit / s auf.8MHz
Einige andere Gedanken:
Wenn Sie das erforderliche START-Bit und das minimale STOP mit einer Bit-Zeit entfernen, bedeutet dies, dass wahrscheinlich mindestens sieben Bitzeiten für Daten verbleiben:
Das Obige würde unabhängig von der Endianness als 0x2A interpretiert werden, wenn ich aufpasse.
Dies wäre jedoch das Diagramm für acht Datenbits:
In diesem Fall wäre die Interpretation entweder 0xAA oder 0x55, abhängig von der Endian-Natur des Streams. Dies könnte also Ihre 0xAA darstellen (Little Endian, was meiner Meinung nach häufiger vorkommt).
Wie Sie sehen können, müssen sich Sender und Empfänger a priori über die Anzahl der Datenbits und deren Endian-Charakter einigen.
Die Scope-Ergebnisse könnten als noch längere serielle Wortgrößen interpretiert werden. Ich habe sie schon einmal gesehen (9, am häufigsten, da einige ICs dies unterstützten, aber ich habe sogar 10 gesehen, die zuvor verwendet wurden.)
Ohne Vereinbarung ist es schwierig, sicher zu sein.
Als Seitenleiste:
Ich erinnere mich an die Tage, als sich Teletypen zu der Zeit, als RS-232 1960 erstellt wurde, von 5 Bit auf 6 Bit bewegten (DTE der frühen 1960er Jahre), als mein Vater einen solchen Teletyp zu Hause in einem Heimbüro hatte. Sechs-Bit-RS-232-Kommunikation bestand tatsächlich für einen bestimmten Zeitraum.
Die ASCII-Codierung wurde in den späten 1960er und frühen 1970er Jahren häufig verwendet und ist eine 7-Bit-Codierung. Bei der RS-232-Datenkommunikation wurden häufig 7 Datenbits verwendet.
Später, als Kommunikations-ICs und Mikrocontroller allgemein verwendet wurden und reichlich 8-Bit-Registergrößen verfügbar waren, wurde RS-232 häufig erweitert, um jeweils 8 Bit zu senden / empfangen.
Ich denke, die meisten Leute erwarten heute nur, dass es für die 8-Bit-Kommunikation verwendet wird. Das war aber nicht immer der Fall.
quelle
Wenn dies für einen Mikrocontroller gilt, ist es nicht möglich, die Baudrate von seinem Oszillator zu bestimmen, aber ein 8-MHz-Kristall kann definitiv 9600 Baud erzeugen.
Können Sie mir die genaue Zeit vom ersten bis zum letzten Hoch messen und sagen? - Das erste Feld sieht für mich etwas anders aus. Mir scheint, Sie verwenden einen Trigger. Können Sie ihn etwas höher bewegen, denn wenn es sich um einen Flankentrigger handelt und auf den Spitzen sitzt, hat das Oszilloskop möglicherweise Probleme beim Auslösen.
quelle
Das Bestimmen der Baudrate aus einer Scope-Ablaufverfolgung ist manchmal, aber nicht immer möglich.
Die Baudrate ist die Umkehrung der Bitperiode, aber das Signal kann für viele Bitperioden im gleichen Zustand bleiben, sodass Sie die Bitperiode nicht immer eindeutig aus der Scope-Ablaufverfolgung bestimmen können.
Unter der Annahme von 8-Bit-Daten und keiner Parität könnte Ihre Wellenform ein einzelnes Byte mit einer Bitperiode von ~ 100 ns darstellen, aber auch zwei Bytes mit einer Bitperiode von etwa 50 ns.
quelle