Woran erkennt ein UART eigentlich das Startbit?

#1553915
Lesenswert?
• ▲
▼
Thomas Burkhart schrieb:
> Hi,
>
> ich hab mal ne Verständnisfrage. Wie RS232 Übertragung funktioniert
> verstehe ich ab dem Moment wenn das Startbit empfangen wurde, nur wie
> weiß der UART eigentlich welches Bit aus dem Serielln Bitstrom das
> Startbit ist?

Exakt weiß er es nicht.

Die Annahme ist, dass die Verbindung im Grundzustand ist. Die erste 
Flanke ist dann der Beginn des Startbits.

Wenn aber der Sender kontiunierlich sendet und sich der Empfänger 
irgendwann dazuschaltet (und damit nicht weiß auf welcher Flanke er sich 
einklinkt), dann hat der Empfänger keine Chance aus den vielen Flanken 
das Startbit rauszufiltern.

Da es aber in der überwiegenden Mehrzahl der Fälle so ist, dass auch der 
Sender irgenwann einmal Pause macht, ergibt sich eine Pause die lang 
genug ist, so dass sich der Empfänger wieder auf das Startbit 
synchronisieren kann.
#1554001
Lesenswert?
• ▲
▼
Es ist nicht so, das die erste flanke das startbit ist. Das erste Bit 
wird wie alle anderen als Mehrheitsentscheid genommen. zB 6 von 8 Sample 
muessen hoch sein fuer ein 1-bit. Das naechste was nach einen Stopbit 
kommt ist wieder ein Startbit. Aber das Startbit ist nicht wesentlich. 
Der vorgang geht etwa so. Ein Schieberegister von 10(+parity) x 8 bit 
wird mit dem 8 fachen Baudrateclock beschickt. Es wird laufend geprueft, 
ob durch Mehrheitsgewichtung Start und Stopbit vorhanden sind. Falls die 
das sind, wird das Byte als Byte erkannt. Dann wird die 80 clocks 
gewartet bis die Erkennung neu angeworfen wird.
#1554007
Lesenswert?
• ▲
▼
@  Nebliger Pfad (Firma: vorgestern) (hacky)

>Es ist nicht so, das die erste flanke das startbit ist.

Doch, es ist der Übergang zwischen Stop zum Startbit.

> Das erste Bit
>wird wie alle anderen als Mehrheitsentscheid genommen. zB 6 von 8 Sample
>muessen hoch sein fuer ein 1-bit.

Nun übertreib mal nicht. Einige UART prüfen das Startbit noch einmal, 
meist mit drei Abtastwerten aus der Bitmitte. Einige aber auch nicht.

> Das naechste was nach einen Stopbit
>kommt ist wieder ein Startbit. Aber das Startbit ist nicht wesentlich.

Doch, denn ohne Startbit keine Flanke ;-)

>Der vorgang geht etwa so. Ein Schieberegister von 10x8 bit wird mit dem
>8 fachen Baudrateclock beschickt. Es wird laufend geprueft, ob durch
>Mehrheitsgewichtung Start und Stopbit vorhanden sind.

NEIN! Schau dir mal einen UART von "innen" an, z.B. als VHDL. Die 
Statemachine macht was anderes. Sie wartet erst auf die Flanke zwischen 
Stop und Startbit.

MFG
Falk
#1554017
Lesenswert?
• ▲
▼
Ich denke, das das alles technische Details sind, die für das 
Verständnis nicht wirklich wesentlich sind.
Konzeptionell beginnt das Startbit mit der nächsten Flanke aus der 
Ruhephase heraus. Wie die Hardware dann konkret erkennt, ob das nur eine 
Störung war oder tatsächlich die Bitlänge eingehalten wurde, ist ein 
Detail welches die Beschreibung der Vorgänge auf Signalebene nicht 
tangiert (dort wird sowieso von einer fehlerfreien Übertragungsstrecke 
ausgegangen. Liegt der Pegel auf 0, dann deswegen weil ihn der Sender 
auf 0 gezogen hat und umgekehrt)
Moderator (Firma: Titel) Persönliche Seite #1554025
Lesenswert?
• ▲
▼
> Es wird laufend geprueft, ob durch Mehrheitsgewichtung Start und Stopbit
> vorhanden sind. Falls die das sind, wird das Byte als Byte erkannt.
Nein, so eine RS232 ist viel simpler.

Da wird einfach die erste fallende Flanke als Anfang des Startbits 
hergenommen. Wenn du z.B. so einen 8N1 Datenstrom hast:
010101010101010101010101010101010101010101010101010101010101
dann kann jede 0 ein Startbit sein. Urigerweise macht das hier nichts 
aus, es wird immer richtig 10101010 = 0xAA empfangen  ;-)
Wenn du aber sowas hast:
010101111101010111110101011111010101111101010111110101011111
dann kann das übertragene Zeichen ein 10101111 oder ein 10111110 oder 
auch ein 11111010 sein, weil ja wieder jede 0 ein Startbit sein 
könnte...

Erst, wenn der Sender mal mindestens 1 Byte Pause macht, kann der 
EMpänger sicher wieder aufsynchronisieren:
010101111101010111110101011111111111111010101111101010111110101011111
                          ^           ^^
                          '--Pause----'Startbit
#1554035
Lesenswert?
• ▲
▼
Hallo,

richtig ist, daß nicht die Flanke definiert ist, sondern der Zustand Low 
(Mark) für eine Bitzeit ist das Startbit. Ruhuzustand ist SPACE (High), 
genauso wie das/die 1, 1,5 oder 2 Stoppbits.
Genau die Versionen mit mehr als einem Stoppbit sollten sicherstellen, 
daß das nächste Startbit auch erkannt wurde.
Die ganzen Versionen mit Mehrfachabtastung usw. sind dann nach und nach 
entstanden, um die Geschichte unempfindlicher gegen Störungen zu machen.

Simple-Versionen haben wirklich auf die H/L-Flanke gewartet, dann eine 
halbe Bitzeit gewartet und dann stur jeweils nach einer Bitzeit auf 
Bitmitte den Pegel gelesen. Das Stoppbit am Ende dann einfach ignoriert, 
mußte ja H sein und wieder auf die nächste Startbit-Flanke gewartet.

Wenn von Außen keine Störungen kommen, funktioniert das auch heute noch 
zuverlässig...

PS: grrr... Lothar Miller war schneller... ;-))

Gruß aus Berlin
Michael

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.