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
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.
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?
@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.
mario, ich glaube kaum , dass Du ohne buffer auskommen kannst. ...ringbuffer...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.