Forum: Mikrocontroller und Digitale Elektronik UART - Mindestabstand zwischen 2 Frames


von Student (Gast)


Lesenswert?

Hallo,

weiß jemand ob es einen eindeutig definierten Mindestabstand zwischen 
zwei UART-Frames gibt?
Darf nach dem Stoppbit des einen UART-Frames direkt das Startbit des 
nächsten Frames gesendet werden?

Vielen Dank schon mal für eure Hilfe

Grüße
Max

von Cyblord -. (cyblord)


Lesenswert?

Das Stopbit ist der definierte Abstand. Mehr als eine Wartezeit ist das 
Stopbit ja nicht.

von Student (Gast)


Lesenswert?

Also darf das Startbit direkt nach dem Stoppbit gesendet werden?

von Peter K. (peter_ph)


Lesenswert?

Student schrieb:
> Also darf das Startbit direkt nach dem Stoppbit gesendet werden?

http://www.rn-wissen.de/index.php/UART

Da steht:
[...]und 1-2 Stopbits übertragen. Das 2. Stopbit ist je nach Ausführung 
der UART nötig, wenn der Sender etwas schneller ist als der Empfänger.

Teste es einmal mit einem, wenns nicht klappt, dann mit zwei.

Für die von mir aufgebauten Atmel<->PC und PIC<->PC -Verbindungen 
reichte immer eins.

von Cyblord -. (cyblord)


Lesenswert?

Student schrieb:
> Also darf das Startbit direkt nach dem Stoppbit gesendet werden?

Ja

von Dietrich L. (dietrichl)


Lesenswert?

Student schrieb:
> Also darf das Startbit direkt nach dem Stoppbit gesendet werden?

Ja, das ist so üblich.

Wenn allerdings aus mehreren Zeichen ein "Telegramm" gebildet wird, 
kann es je nach Protokoll nötig sein, dass zwischen 2 Telegrammen eine 
größere Pause erforderlich ist (Synchronisierung auf Telegrammbeginn bei 
Übertragungsfehlern).

Gruß Dietrich

von Karl H. (kbuchegg)


Lesenswert?

> weiß jemand ob es einen eindeutig definierten Mindestabstand zwischen zwei 
UART-Frames gibt?


Kann es sein, dass hinter deiner Frage mehr steckt, als du uns verraten 
willst?

Denn es gibt da noch eine 2-te zu berücksichtigende Komponente. Das 
Stoppbit ist die eine Sache und ist so gesehen eigentlich nur eine 
vorgeschriebene kurze Verzögerung nach dem letzten Datenbit, damit der 
Empfänger etwas Zeit hat, das zuletzt empfangene Byte erst mal aus dem 
Weg zu schaufeln.

Was damit allerdings nicht ausgesagt ist, ist die Fragestellung: was 
macht dann der Empfänger in weiterer Folge mit diesem Byte? Das wird ja 
im Normalfall in irgendeiner Form ausgewertet. Und wenn diese Auswertung 
schon mal länger dauert, dann reicht eben ein Stoppbit alleine unter 
Umständen nicht aus, um dem Empfänger 'die Luft zu geben' die er braucht 
um seinen Teil komplett abzuarbeiten.

von Fpgakuechle K. (Gast)


Lesenswert?

Karl Heinz schrieb:
>> weiß jemand ob es einen eindeutig definierten Mindestabstand zwischen zwei
>> UART-Frames gibt?

> Denn es gibt da noch eine 2-te zu berücksichtigende Komponente. Das
> Stoppbit ist die eine Sache und ist so gesehen eigentlich nur eine
> vorgeschriebene kurze Verzögerung nach dem letzten Datenbit, damit der
> Empfänger etwas Zeit hat, das zuletzt empfangene Byte erst mal aus dem
> Weg zu schaufeln.

Nee, da verlängert man nicht das stopbit sondern pappt wie beim 16550 
eine FIFO an den UART.

MfG

von Michael A. (micha54)


Lesenswert?

Hallo,

also ich sehe das so: das Stop-Bit garantiert, daß am Beginn des 
Startbits eine Flanke erzeugt wird.

Das Thema Verarbeitungszeit eines Frames ist beim Design dieser 
Schnittstelle sicher keines gewesen, denn da handelte es sich um den 
Impuls für den Anschlag eines Fernschreibers.

Wenn Verarbeitungszeit einzuplanen ist, dann muß das im 
Übertragungsprotokoll festgelegt werden (siehe z.B. MODBUS). Schließlch 
ist ein Stopbit je nach Baudrate ja ein recht unterschiedlicher 
Zeitraum.

Gruß,
Michael

von Karl H. (kbuchegg)


Lesenswert?

Michael Appelt schrieb:
> Hallo,
>
> also ich sehe das so: das Stop-Bit garantiert, daß am Beginn des
> Startbits eine Flanke erzeugt wird.

Dann müsste man es aber nicht in unterschiedlichen Längen anbieten.

von Michael A. (micha54)


Lesenswert?

> Dann müsste man es aber nicht in unterschiedlichen Längen anbieten.

Hallo,

Mal in historischer Reihenfolge:

1,5 Stopbits stammen von den Fernschreibern mit current loop 
Schnittstelle

2 Stopbits waren INHO notwendig für asynchrone Übertragungen per Modem

1 Stopbit ist ausreichend für RS232 mit moderner Hardware

Im 2. Fall hatte man pro Bit immer 1 oder 2 Signalwechsel (NRZ & Co), 
bei den 2 Stopbits blieb der Wechsel dann aus. Nur so konnte man beim 
letzten Zeichen per Timeout das Ende erkennen, denn eine 
Sop-Start-Flanke nach dem letzten Zeichen gibt es nicht.

Gruß,
Michael

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Karl Heinz schrieb:
>> also ich sehe das so: das Stop-Bit garantiert, daß am Beginn des
>> Startbits eine Flanke erzeugt wird.
>
> Dann müsste man es aber nicht in unterschiedlichen Längen anbieten.

Ausgleich von Drehzahltoleranzen.  Indem man das Stopbit etwas länger
macht, ist sichergestellt, dass die Abtastwelle eben auf jeden Fall
erstmal angehalten wird, bevor das nächste Startbit sie neu startet.

Wäre sicher selbst damals nicht unbedingt nötig gewesen, hat man
einfach nur mal so festgelegt gehabt.  Damals war's ja auch noch ein
5-bit-Code, also mit Start- und Stopbit dann 7,5 bit brutto. ;-)

von stefan us (Gast)


Lesenswert?

> 2 Stopbits waren INHO notwendig für asynchrone Übertragungen per Modem

Ganz sicher nicht. Ich habe noch nie 2 Stopbits benutzen müssen. Weder 
beim 300 Baud modem, noch bein 57k Modem.

von Konrad S. (maybee)


Lesenswert?

Jörg Wunsch schrieb:
> Ausgleich von Drehzahltoleranzen.

"Hä?!?" wird sich jetzt mancher der Youngsters fragen! :-)
Aber es ist doch schön, dass das Wissen über die Herkunft solcher Dinge 
noch nicht verloren ist.

von Udo S. (urschmitt)


Lesenswert?

Was ich an der Frage nicht ganz verstehe: Geht es hier um Soft-UART?

Weil ansonsten prüfe ich ob der Sendepuffer frei ist und wenn ja packe 
ich das zu sendende Byte rein, bzw. besser habe einen Ringpuffer und 
schieb das nächste Byte rein, wenn die UART mir via Interrupt 
signalisiert daß das letzte Byte gesendet wurde.
Sprich sobald ich ein UART Modul in meinem µC habe dann lasse ich den 
das machen.

von Soul E. (Gast)


Lesenswert?

Udo Schmitt schrieb:

> Weil ansonsten prüfe ich ob der Sendepuffer frei ist und wenn ja packe
> ich das zu sendende Byte rein,

...womit Du die Wartezeit "Null" gewählt hättest. Die in der Theorie 
auch reicht.

von Seano L. (Gast)


Lesenswert?

Konrad S. schrieb:
> Jörg Wunsch schrieb:
>> Ausgleich von Drehzahltoleranzen.
>
> "Hä?!?" wird sich jetzt mancher der Youngsters fragen! :-)
> Aber es ist doch schön, dass das Wissen über die Herkunft solcher Dinge
> noch nicht verloren ist.
Ich fragte mich wie sowas ausgehen hat, dachte da zuerst an eine 
Dampfmaschine wenn ich Fliehkraftregler lese:

Ziemlich unten im Text:
http://www.radiomuseum.org/forum/grossgraf_telegraphen_apparat_typendruck.html?language_id=1

Die Scheiben sind auch geil, das ganze Trum aus Gusseisen, fehlt nur 
noch ein Esel vor der Türe der im Kreis läuft und das Ganze über ein 
Getriebe und Gestäng antreibt, wie bei historischen Mühlen oder Pumpen. 
;)

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.