Forum: Mikrocontroller und Digitale Elektronik Asynchrone Uebertragung


von Mario (Gast)


Lesenswert?

Hallo liebe uC Freunde

bin student und habe mit asynchroner uebertragung zu kaempfen, die durch 
einen pic kontrolliert werden soll

ich mochte meine frage moeglichst kurz formulieren:

bei der asynchronen uebertragung werden ja 2 verschiedene clocks 
verwendet, die normalerweise eine gewisse differenz aufweisen.
wenn ich jetzt informationen (datenpakete mit 
start-daten-paritaet-stop-bits) ohne pause, d.h das startbit folgt dem 
vorhergehenden stoppbit, verschicke, gibt es ja keine pause zwischen den 
"charakteren"
ich nehme mal an wenn die frequenz des empfaengers etwas hoeher ist 
kommt es zu einer pause wenn der empfaengerclock "ueberspringt, d.h. 
wenn die differenz der cloks sich zu mehr als einem puls aufsummiert.
(bitte korrigieren wenn es nicht korrekt ist, bin anfaenger)

Was passiert nun wenn die frequenz des empfaengers etwas niedriger ist?
geht da ein bit verloren?
welche technologien gibt es da?
bzw kann das ueberhaupt nicht vorkommen (und warum)?

Besten Dank im Voraus

von Rainer (Gast)


Lesenswert?

Prinzipiell ists meistens so, dass einfach ein bisschen Zeit ziwschen 
zwei Paketen gelassen wird - so kann sich der Empfänger immer wieder auf 
das Startbit synchronisieren.

von Mario (Gast)


Lesenswert?

Naja, danke fuer deinen Beitrag und es hoert sich schoen an, aber
ich habe einen PIC der den Datenfluss kontrollieren soll.
Die Daten kommen aber als eine Wurst, und zwar mehrere hundert oder 
einige Tausend bit hintereinander. Und diese kommen einfach 
hintereinander, ohne Pause, darauf hab ich keinen Einfluss.

Ausserdem habe ich keinen Puffer oder sowas...
Ich bekomme die Daten asynchron und muss sie synchron (also nicht wenn 
es mir passt) an einen weitere Chip schreiben, der mir seinen Clock fuer 
den Empfang vorgibt.

Nun weiss ich nicht, wass passiert, bzw. wie ich die asyn. Daten mit dem 
2. Clock synchronisieren, ohne bits aus der Folge zu verlieren...
Danke fuer euere Muehe

Oder hat jemand einen Link, wo man konkrete Info ueber asyn. 
Datenuebertragung findet, aber nicht nur Theorie wie sie an den Uni's 
unterrichtet wird?

von mikki merten (Gast)


Lesenswert?

@mario
Schau dir am besten mal das ausführliche Datenblatt eines beliebigen 
asynchronen UART an oder auch des Datenblatt z.B. eines AT MEGA8. Dort 
wird die Funktionweise ausführlich erklärt. Bei asynchronen Übertragung 
wird typischerweise auf der negativen Flanke getriggert und die 
nachfolgenden Datenbits werden mit einem Vielfachen (typisch 16 fach) 
der eingestellten Bitrate gesampelt und ausgewertet.

von edi (Gast)


Lesenswert?

mario,
ich glaube kaum , dass Du ohne buffer auskommen kannst.
...ringbuffer...

von Peter D. (peda)


Lesenswert?

Z.B. beim 8051 wird jedes Bit mit dem 16-fachen der Baudrate abgetastet 
und das 7., 8. und 9. Sample mit Majoritätslogik ausgewertet, d.h. in 
der Mitte eines Bits.

Auch das Stopbit wird so geprüft. Damit ist die UART nach 10/16 des 
Stopbits bereit, das nächste Startbit zu erkennen.

Somit ist auch ein etwas schnellerer Sendetakt kein Problem.

Wenn die UART im PIC das aber nicht so macht, hast Du wirklich ein 
Problem.


Peter

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.