SoftUART für 8051-Kompatible

  Allgemeine Einstellungen   Programmanfang
Diese Seite enthält ein Java-Script zur Generierung eines oder mehrerer softwarebasierender serieller Ein- und Ausgänge, die auf beliebige Weise kombiniert werden können. Zur Ausführung dieses Programmes ist die Aktivierung von Java-Script unbedingt erforderlich!
"Wozu eine serielle Schnittstelle per Software realisieren? Mein Lieblingscontroller hat doch schon eine?" - Und genau das ist der Knackpunkt: _eine_. Und diese eine belegt zudem einen Timer und ist nicht sonderlich gut auf Baudraten einzustellen, die kein Teiler der Quarzfrequenz bzw. Maschinenzyklen sind. Möchte man mehrere Geräte an diese Schnittstelle anschließen, muss man mit zusätzlicher Hardware wie einem Bustreiber oder ähnlichem die Schnittstellenpins umschalten. Sollen diese Geräte dann auch noch mit unterschiedlicher Baudrate bedient werden, wird das Programm eine kleine Herausforderung. Zu allem Übel verliert man mit der Hardwareschnittstelle gleich zwei I/O-Pins, wenn einer gereicht hätte, weil die serielle Kommunikation ohnehin nicht gleichzeitig sendet und empfängt. Diesen Nachteilen kann ein geeigneter Softwaretreiber abhelfen. Er ist in der Lage, Baudraten auf den Maschinenzyklus genau einzuhalten, es ist kein Problem, beliebig viele serielle Ein- oder Ausgänge mit unterschiedlichen Baudraten zu betreiben, und es lässt sich jeder beliebige Pin dafür verwenden. Als kleinen Bonus kann man die Schnittstellensoftware auch so einsetzen, dass sie mit invertierten Signalen zurechtkommt. Dadurch läßt sich eine lesende Verbindung zur mit +/- 12V arbeitenden, gegenüber TTL-Pegeln invertierten PC-Schnittstelle mit nur einem Widerstand und einer Zener-Diode aufbauen.

Zur Ganggenauigkeit der Schnittstelle: diese hängt allein von der verwendeten Warteschleife ab. Daher ist unbedingt das Verhältnis der ganzzahligen Maschinenzyklen zu den nicht realisierbaren Nachkommastellen der Warteschleifen zu beachten. Hat die Warteschleife eine Länge von 100,5 Maschinenzyklen, spielt die 0,5 Abweichung vom Ideal keine Rolle, bei einer Länge von 10,5 dagegen ist die Abweichung beträchtlich! Bei der Kopplung von mehreren Microcontrollern spielt der Fehler der Schnittstelle natürlich keine Rolle, wenn beide die selbe Abweichung vom Soll besitzen.

Zur Funktion 'Stopbit abwarten': damit wird gewartet, bis dass Stopbit erfolgreich versandt wurde. Benötigt wird dies nur, wenn mehrere Bytes fortlaufend gesendet werden sollen. Hat der uC zwischenzeitlich genug zu rechnen (mindestens 2x die Angabe der Maschinenzyklen der Warteschleife), so erledigt sich diese benötigte Verzögerung von selbst.

Einstellungen

Quarz MHz            Invertierende Schnittstelle
Baudrate            Stopbit abwarten
Input-Port
Output-Port
Label

Generieren


Bitte warten, bis diese Zeile verschwindet!
Bleibt sie stehen, unterstützt Ihr Browser kein Java-Script, oder sie haben es abgeschaltet.
























































































Seitenanfang   Programmanfang
Seite zurück Startseite Seite vor
Erik Buchmann
EMail an: Owner@ErikBuchmann.de