Hallo Leutz, wollte gerne mal wissen ob es eine möglichkeit gibt, die serielle übertragung zwischen pc und µC irgendwie anzuhalten? Habe nämlich das Problem das ich über den UART daten sende und dann in den internen eeprom schreibe, nach 128byte muss ich nun die daten in den speicher brennen. für diese zeit von 10ms müsste die serielle schnittstelle warten sonst geht mir der rest verloren...
Florian Patzer wrote: > wollte gerne mal wissen ob es eine möglichkeit gibt, die serielle > übertragung zwischen pc und µC irgendwie anzuhalten? > Habe nämlich das Problem das ich über den UART daten sende und dann in > den internen eeprom schreibe, nach 128byte muss ich nun die daten in den > speicher brennen. für diese zeit von 10ms müsste die serielle > schnittstelle warten sonst geht mir der rest verloren... Dafür gibt es das sog. Handshake in der Spez. einer seriellen Schnittstelle. In einem deutschen Windows ist das dann die Einstellung die sich hinter 'Datenflusskontrolle' verbirgt.
Florian Patzer wrote: > kannste mir das mal etwas näher erklären? > Sicher. Du solltest aber auch danach googeln. Alle Details dazu lassen sich nicht in 5 Zeilen Text unterbringen. Grundsätzlich gibt es 3 Handshaking Methoden: * keines * Software Handshake * Hardware Handshake keines brauchen wir hier nicht näher erläutern. Grundsätzlich geht es beim Handshake immer darum, dass der Empfänger dem Sender signalisiert: Einen Moment bitte, ich bin noch nicht bereit weitere Daten zu empfangen. Dass kann man auf 2 Arten machen: Soft und Hard Hard bedeutet, dass es an der RS232 Schnittstelle 2 Leitungen gibt (jeweils eine für jede Übertragungsrichtung) die nur entsprechenden Pegel annehmen müssen, um der Gegenstelle anzuzeigen, dass das Senden momentan aufzuhören hat. Die Signale heissen an einer RS232: RTS bzw. CTS (Request To Send, Clear To Send) Der Vorteil von Hard-Handshake ist, dass es dadurch keinerlei Einschränkungen in den übertragenen Daten gibt, im Gegensatz zum Software Handshake. Beim SW-Handshake werden 2 spezielle Codes im Datenstrom benutzt, mit denen der Empfänger den Sender wieder abwürgen kann: XON und XOFF Benötigt der Empfänger etwas Zeit, sendet er ein XOFF. Woraufhin der Sender dann das Senden einstellt (man sollte aber immer mit ein- kalkulieren, dass auch der Sender etwa Zeit benötigt um auf den XOFF zu reagieren. Es kann also schon sein, dass nach einem XOFF noch ein paar Zeichen kommen). Ist der Empfänger wieder bereit, sendet er ein XON und der Sender macht weiter. Klar sein sollte allerdings, dass dadurch die Codes für XON und XOFF im regulären Datenstrom nicht vorkommen dürfen. That's it. In a nutshell. Wichtig ist: Beide, Sender und Empfänger müssen darin übereinstimmen, welche Form von Handshake benutzt wird. Und dann gibt es natürlich noch das weite Feld der selbstdefinierten Protokolle. Wenn man die beiden Programme für Sender und Empfänger selbst unter Kontrolle hat, ist das oft auch eine Option. Zb. sendet der Sender einfach mal 256 Bytes und wartet dann auf eine Bestätigung vom Empfänger bevor er weitere 256 Bytes schickt. Der Empfänger holt sich die 256 Bytes, verarbeitet sie und schickt erst dann die Bestätigung, wenn er wieder aufnahmebereit ist.
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.