Forum: Mikrocontroller und Digitale Elektronik UART vs USART


von studentMax (Gast)


Lesenswert?

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

von Holm T. (Gast)


Lesenswert?

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

von studentMax (Gast)


Lesenswert?

Stimmt, hab mich falsch ausgedrückt, aber dann der Unterschied zwicshen 
der Asynchronen und Synchronen übertragung.
Lege ich komplett daneben mit meiner Erklärung?

von Timmo H. (masterfx)


Lesenswert?

Ein USART beherrscht beide Modi, muss sie aber nicht zwangsläufig 
verwenden

von studentMax (Gast)


Lesenswert?

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.

von OldMan (Gast)


Lesenswert?

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.

von Georg G. (df2au)


Lesenswert?

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

von Georg (Gast)


Lesenswert?

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

von OldMan (Gast)


Lesenswert?

Georg G. schrieb:
> haben keine Taktleitung

So,so! Wo hast Du denn diese Weisheit gefunden.

von Georg (Gast)


Lesenswert?

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

von Georg G. (df2au)


Lesenswert?

OldMan schrieb:
> So,so! Wo hast Du denn diese Weisheit gefunden.

Versuch doch einfach mal den Lesetipp, den ich gegeben habe.

von OldMan (Gast)


Lesenswert?

Georg G. schrieb:
> doch einfach mal den Lesetipp, den ich gegeben habe.

Und Du hast diesen gelesen? Ja? Ich glaube nicht.
Du hast KEINE AHNUNG!

von Georg (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

Hi

>die meisten USARTs
>enthalten eine PLL, um den Takt aus den Daten zu rekonstruieren.

Nenn mal Beispiele.

MfG Spess

von Georg (Gast)


Lesenswert?

spess53 schrieb:
> Nenn mal Beispiele.

Was soll denn das jetzt? Muss eine völlig klare Sachlage noch weiter 
zerredet werden?

Z8530 z.B.

Georg

von (prx) A. K. (prx)


Lesenswert?

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.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

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.

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

spess53 schrieb:
> Nenn mal Beispiele.

Bereits der Urvater aller Bausteine für synchrone Übertragung, der Intel 
8273, enthielt eine DPLL.

von (prx) A. K. (prx)


Lesenswert?

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.

: Bearbeitet durch User
von Juergen (Gast)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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

: Bearbeitet durch User
von Dieter W. (dds5)


Lesenswert?

Und dann kommt noch dazu, dass zum Teil auch SPI als synchron seriell 
bezeichnet wird (SSP).

von (prx) A. K. (prx)


Lesenswert?

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 ;-)

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.