Hallo an alle,
Ja ich weiss dieses Thema gab es schon mal-dennoch habe ich andere
Fragen die in anderen Threads nicht beantwortet wurden, und wollte es in
meinen eigenen Worten ausdrücken um zu sehen ob ich es verstanden habe
oder nicht.
UART:
Asynchrone übertragung.
Durch die Festlegung der Baudrate weiss Sender und Empfänger welches Bit
jetzt was bedeutet. Keine Taktleitung.
Wir brauchen Start und Stopbit damit der Empfänger erkennen kann wo die
Daten anfangen und wo aufhören.
Die Daten werden bei positiver Flanke des Baudrate Generator gesendet.
USART:
Synchrone übertragung.
Keine Baudrate mehr benötigt. Sender und Empfänger sind mit der gleichen
Taktleitung verbunden. Auch hier brauchen wir Start und Stopbit damit
der Empfänger erkennen kann wo die Daten anfangen und wo aufhören.
Die Daten werden bei negativer Taktflanke gesendet.
Stimmt das ?
lG
...naja, Du hängst das am falschen Ende auf.
USART heiußt "Universal Synchronous Asynchronous Receiver Transmitter"
und beschreibt das, was die der entsprechende Schaltungsteil KANN, nicht
was er macht.
Der Unterschied zwischen UART und USART ist also das dieser auch die
Synchronmodi beherrscht.
Es gibt da diverse z.B. auch von IBM "standardisierte" Protokolle wie
SDLC und HDLC die auch im Telekommunikationsbereich Anwendung finden.
Die Verwendung einer gemeinsamen Taktleitung ist dabei auch nicht
unbedingt Voraussetzung, der Takt kann ggf. auch durch eine PLL aus dem
Datensignal restauriert werden.
Gruß,
Holm
Stimmt, hab mich falsch ausgedrückt, aber dann der Unterschied zwicshen
der Asynchronen und Synchronen übertragung.
Lege ich komplett daneben mit meiner Erklärung?
Ja... Ist das denn jetzt richtig oder nicht?
UART:
Asynchrone übertragung.
Durch die Festlegung der Baudrate weiss Sender und Empfänger welches Bit
jetzt was bedeutet. Keine Taktleitung.
Wir brauchen Start und Stopbit damit der Empfänger erkennen kann wo die
Daten anfangen und wo aufhören.
Die Daten werden bei positiver Flanke des Baudrate Generator gesendet.
USART als synchron eingestellt:
Synchrone übertragung.
Keine Baudrate mehr benötigt. Sender und Empfänger sind mit der gleichen
Taktleitung verbunden. Auch hier brauchen wir Start und Stopbit damit
der Empfänger erkennen kann wo die Daten anfangen und wo aufhören.
Die Daten werden bei negativer Taktflanke gesendet.
studentMax schrieb:> UART:> Asynchrone übertragung.> Durch die Festlegung der Baudrate weiss Sender und Empfänger welches Bit> jetzt was bedeutet. Keine Taktleitung.
Deine Aussagen sind korrekt. Nur etwas unglücklich formuliert.
Der große Unterschied ist auf einen Nenner gebracht:
Ein USART hat einen Takteingang, ein UART nicht.
Auch der USART kann asynchron.
Wie weiter oben geschrieben: Die üblichen synchronen Betriebsarten
(SDLC, HDLC) haben keine Taktleitung sondern generieren den Takt aus dem
Datensignal. Es gibt kein Startbit und kein Stopbit. Das erledigen
bestimmte Bitfolgen, die im normalen Signal nicht vorkommen.
Lesetip: Wikipedia, HDLC
studentMax schrieb:> Sender und Empfänger sind mit der gleichen> Taktleitung verbunden. Auch hier brauchen wir Start und Stopbit
Ein USART kann eine Taktleitung verwenden, muss aber nicht und es ist
auch wenig üblich, um die Leitung einzusparen - die meisten USARTs
enthalten eine PLL, um den Takt aus den Daten zu rekonstruieren. Das
setzt voraus, dass die Daten auch genug Flanken enthalten, daher werden
beim Senden nach einigen Nullen oder Einsen zusätzliche Bits eingefügt,
das geht automatisch und transparent, der Empfangsteil entfernt sie
wieder. Steht aber alles im Danteblatt.
Start- und Stop-Bit gibt es bei synchron nicht, es werden immer Blöcke
übertragen mit direkt aufeinanderfolgenden Zeichen oder Bitfolgen. Zur
Synchronisation beginnt jeder Block mit einem oder mehreren speziellen
Sync-Zeichen. Theoretisch kann auch ein externes Sync-Signal verwendet
werden, was aber noch weniger üblich ist als der externe Takt.
Georg
OldMan schrieb:> So,so! Wo hast Du denn diese Weisheit gefunden.
Ich dachte, ich hätte das geklärt mit dem vorhergehenden Post, aber
offensichtlich ist synchron so kompliziert, dass manche damit
überfordert sind. Da hilft wohl auch das Studium von Datenblättern nicht
mehr, in denen die PLLs ausführlich beschrieben sind. Da kann man halt
nix machen, ist aber auch egal, synchrone Übertragungen sind fast
ausgestorben.
Georg
studentMax schrieb:> Synchrone übertragung.> Keine Baudrate mehr benötigt. Sender und Empfänger sind mit der gleichen> Taktleitung verbunden. Auch hier brauchen wir Start und Stopbit damit> der Empfänger erkennen kann wo die Daten anfangen und wo aufhören.> Die Daten werden bei negativer Taktflanke gesendet.OldMan schrieb:> Deine Aussagen sind korrekt.OldMan schrieb:> Du hast KEINE AHNUNG!
sMax, tut mir ja leid aber was du da zu synchron geschrieben hast ist
totaler Bullshit.
Leider melden sich dann solche Pöbler wie Oldmax, geben dir auch noch
uneingeschränkt recht und brüllen jeden nieder, der tatsächlich weiss
wie eine synchrone Übertragung funktioniert.
Dann such doch mal deine Start/Stopbits im HDLC- oder SDLC-Protokoll.
Hier weiterzudiskutieren ist völlig sinnlos: ob es diese Bits bei
synchron gibt wird offensichtlich dadurch entschieden, wer mit den
übelsten Beleidigungen um sich wirft. Ist leider inzwischen die
bevorzugte Methode zur Wahrheitsfindung.
Georg
Eine UART für asynchrone Übertragung synchronisiert einen internen Takt
auf das Startbit des Datensignals jedes Datenwortes. Das ist wohl
hinlänglich bekannt.
Eine USART für synchrone Übertragung bezieht ihren Takt meist aus einem
extern angelegten Taktsignal. Im Regelfall, also bei Übertragung in
erheblicher räumlicher Entfernung, wird das Taktsignal der
Empfangsrichtung nicht als separates Signal übertragen, sondern wird mit
Hilfe einer externen Schaltung aus dem übertragenen Signal rückgewonnen.
In eher seltenen Fällen enthalten USARTs bereits intern für bestimmte
Codierungen eine solche Logik, können also den Empfangstakt intern
bitsynchron aus dem Signal gewinnen (z.B. Zilog SCC).
spess53 schrieb:>>die meisten USARTs>>enthalten eine PLL, um den Takt aus den Daten zu rekonstruieren.>> Nenn mal Beispiele.
Die Zilog Z80(C)30 und Z85(C)30 enthalten Encoder/Decoder mit DPLL für
einen NRZI/FM Datenstrom.
Der Ausdruck "die meisten" ist aber m.E. etwas übertrieben.
studentMax schrieb:> Keine Baudrate mehr benötigt. Sender und Empfänger sind mit der gleichen> Taktleitung verbunden.
Das findet man nur in räumlich enger Distanz bei Mikrocontrollern.
> Auch hier brauchen wir Start und Stopbit damit> der Empfänger erkennen kann wo die Daten anfangen und wo aufhören.
Das ist ein Detail der Implementierung in manchen USARTs, wie etwa denen
in den Atmel AVRs. Die traditionelle synchrone Datenübertragung
verwendet keine Startbits.
> Die Daten werden bei negativer Taktflanke gesendet.
Das ist ein Implementierungsdetail bestimmter Bausteine oder
Schnittstellen, aber keine allgmeingültige Aussage über USART Bausteine.
Quintessenz: Du schliesst hier aus der Implementierung eines bestimmten
USART Moduls - möglicherweise Atmel AVR - auf die Allgemeinheit. Das ist
schlicht unzulässig. Das was man traditionell unter einer synchronen
Übertragung per USART versteht, hat wenig mit dem zu tun, was Atmel
darunter versteht. Stichworte wären SDLC/HDLC und X.25/Datex-P.
Die Urgrossväter 8251 und 6852 wiederum hatten zwar Sync drin, aber
keine Taktregenerierung und nur Bytesync-Verfahren wie BISYNC. Beim Z80
SIO war dann auch SDLC/HDLC drin, aber ebenfalls keine DPLL.
Ergo: Manchmal war es drin, manchmal nicht. Wenn kein NRZI übertragen
werden sollte war ohnehin eine externer Codec fällig und da passte die
PLL auch ganz gut rein.
Das Problem ist, dass hier zwei Bedeutungen von "synchron"
durcheinandergeworfen werden.
Einmal die Synchronisation auf Bitebene mit (synchron) oder ohne
(asynchron) Taktsignal, einmal die Synchronisation auf Bytebene mit
Start- und Stopbits (asynchron) oder Paketprotokollen wie SDLC/HDLC
(synchron).
SDLC/HDLC ist heutzutage stark aus der Mode gekommen. Mein Eindruck ist,
dass neuere Bausteine das nicht mehr unterstützen.
Juergen schrieb:> Einmal die Synchronisation auf Bitebene mit (synchron) oder ohne> (asynchron) Taktsignal, einmal die Synchronisation auf Bytebene mit> Start- und Stopbits (asynchron) oder Paketprotokollen wie SDLC/HDLC> (synchron).
Ich sehe 3 Varianten:
- asynchron mit Start/Stopbit
- bitsynchron mit Start/Stopbit (Atmel USART)
- bitsynchron mit Sync-Protokollen wie BISYNC und SDLC
Dieter W. schrieb:> Und dann kommt noch dazu, dass zum Teil auch SPI als synchron seriell> bezeichnet wird (SSP).
Weitere synchrone Protokolle gibts in rauhen Mengen. Aber SPI kann man
im Controller-Kontext zur Not noch hineinrechnen, weil die USART der
AVRs mittlerweise meist auch SPI-Master verstehen. Das wär das die 4.
Variante:
- bitsynchron mit durchzählen ;-)