Manual Seiten

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

Funktionen des parallelen Interface 30520

Seiten 14 und 15 des fischertechnik Manuals 30566 "Interface für den Atari ST Computer" (mit freundlicher Genehmigung der fischerwerke).

Wenn Sie die fischertechnik computing Software benutzen oder selbst Programme mit umFish.DLL oder FishFace.DLL( im weiteren Text : Maschinensprache Programm) erstellen, werden Sie kaum die nun folgenden Information benötigen. Wenn Sie aber die Programme unter anderen Betriebssystemen als Windows einsetzen wollen, die Programme durch komplexe Abläufe in Maschinensprache beschleunigen wollen, die Funktionen des Interface erweitern wollen oder auch nur einfache einen Blick hinter die Kulissen werfen wollen, so wird Ihnen das Nachfolgende sicherlich hilfreich sein. Allerdings sollten Sie dann auch ein paar Kenntnisse der Maschinensprache und der Digitalelektronik mitbringen, denn hier geht es an die "bits and pieces".

Das fischertechnik Interface erfüllt eine Reihe von Aufgabe, die wir anhand des Blockdiagramms Paralleles fischertechnik Interface : Blockschaltbildbesprechen wollen. Am linken Rand sind die Signale von und zum Computer aufgeführt. Es fällt auf, daß diese recht wenig mit den Ausgängen M1 bis M4 und Eingängen E1 bis E8 sowie EX und EY gemein haben. Der Grund ist darin zu suchen, daß am Computeranschluß wesentlich weniger Datenleitungen zur Verfügung stehen, als auf der Modellseite des Interface benötigt werden. Diese wenigen Datenleitungen müssen deshalb so eingesetzt werden, daß alle Signale auf der Modellseite gesteuert werden können. Das Konzept sieht eine Mehrfachverwendung der Datenleitungen mit Hilfe von Schieberegistern vor. Auf diese Weise werden z. B. nur drei Datenleitungen für die Steuerung der Ausgabe notwendig. Eine parallele Anschlußweise hätte acht Datenleitungen benötigt.

Schauen wir uns gleich die Ausgabe an den Anschlüssen M1 bit M4 genauer an. Die dafür benötigten Datenleitungen werden mit DATA-OUT, CLOCK und LOAD-OUT bezeichnet. Bei einer Ausgabe werden immer die Daten für alle vier Motoren überragen, d.h. ein ganzes Byte. (Ein Byte deswegen, weil jeder der vier Motoren zwei Bits zur Steuerung der Drehrichtung benötigt). Die von dem Kommando nicht betroffenen Motorausgänge erhalten somit den derzeitigen Stand, der im Computer als Ausgabewort zwischengespeichert ist, erneut eingeschrieben.

Bei der Ausgabe werden der Reihe nach die Bits des Ausgabeworts an die Leitung DATA-OUT angelegt, das höchstwertige zuerst. Mit einem Übergang von low nach high am Ausgang CLOCK wird das Bit in ein Schieberegister übernommen. Danach folgt das nächste Bit an DATA-OUT, das ebenfalls in das Schieberegister mit dem nächsten CLOCK-Impuls übernommen wird. Das vorhergegangene Bit ist dabei aber auch um eine Position nach rechts gerutscht, um dem nachfolgenden Platz zu machen. Nach insgesamt acht solcher Datenübertragungen ist das ganze Ausgabewort im Schieberegister abgelegt. Das zuerst übertragene Bit ist im Verlaufe des Datentransfers ganz nach recht durchgeschoben worden. Von der Aktivität im Schieberegister ist aber bislang an seinen Ausgängen noch nichts spürbar. Die Ausgangsverstärker werden nicht direkt über das Schieberegister angesteuert, sondern über ein zwischengeschaltetes Speicherregister, das auch noch im Schieberegister-Baustein integriert ist. Erst mit dem Übergang von low nach high am Ausgang LOAD-OUT erfolgt die Übernahme in das Speicherregister. Die zeitliche Abfolge der Signale können Sie dem Impulsdiagramm Parallels fischertechnik Interface : Impulsdiagramm entnehmen.

Ob die Daten allerdings auch die Leistungsverstärker durchsteuern, hängt wiederum von der Freigabesteuerung des Speicherbausteins ab. Die Freigabesteuerung erfolgt durch ein Monoflop. Die Schaltung erzeugt ein Freigabesignal von einer halben Sekunde Dauer, wenn ein Impuls an der CLOCK-Leitung vorliegt. Wir können davon ausgehen, daß zunächst die Leistungsverstärker angesteuert werden, da zuvor gerade die Daten mit Hilfe der Clock-Leitung übertragen wurden. Sollte aber innerhalb der nächsten halben Sekunde kein weiterer Datentransfer erfolgen, so kippt das Monoflop wieder in seinen stabilen Zustand zurück und das Freigabesignal wird zurückgenommen. Das Monoflop ist übrigens nachtriggerbar, d.h. die Zeitdauer von einer halben Sekunde rechnet sich jeweils vom Zeitpunkt des letzten CLOCK-Impulses an.

Auch das Monoflop besitzt einen Freigabeeingang. Über jenen kann letztlich die Ausgabe an die Verstärker sofort unterbunden werden. Beim fischertechnik Interface erfolgt dies, wenn ein ungültiges Datenmuster am Ausgang des Speicherregisters anliegen würde, das einen angeschlossenen Motor quasi in Rechts- und Linkslauf gleichermaßen steuern würde.

Nun zu der Übertragung der digitalen Signale an E1 bis E8. Im Prinzip findet bei der Eingabe eine Umkehrung des oben Beschriebenen statt. Durch das Ausgabe-Signal LOAD-IN werden die an den Eingängen anstehenden Signale in das Eingaberegister übernommen. Dies erfolgt wiederum für alle acht Eingänge, auch wenn nur ein einziger abgefragt werden soll. In dem Schieberegister angelangt, bringt jeder Impuls auf der CLOCK-Leitung ein Bit auf der Eingabeleitung DATA-IN zum Vorschein, jenes von E8 zuerst und das von E1 zuletzt. Durch Testen dieser Leitung kann der Computer die Bits "aufsammeln" und wieder ein Datenwort bilden. Das gewünschte Bit wird anschließend herausgefiltert und dem Programm übergeben.

Da zur Übertragung der Daten dieselbe CLOCK-Leitung wie bei der Ausgabe benutzt wird, wird auch bei der digitalen Eingabe das Monoflop aktiviert, das das Freigabesignal für die Ausgabedaten steuert. Eine Fehlfunktion des Ausgabeschieberegisters durch die Mehrfachfunktion der CLOCK-Leitung steht nicht zu befürchten, denn die aktuellen Ausgabedaten stehen ja nicht im Ausgabeschieberegister, sondern im Speicherregister. Ersteres wird zwar wohl durch die CLOCK-Impulse beeinflußt, nicht aber letzteres., das ja nur auf das Signal LOAD-OUT reagiert.

Bleiben zum Schluß die Analogeingänge EX und EY. Die Potentiometer oder sonstigen veränderlichen Widerstände dienen als zeitbestimmendes Bauelement in zwei weiteren Monoflop-Schaltungen. Ein niedriger Widerstandswert wird in einen Impuls kurzer Dauer, ein hoher Widerstandswert in einen Impuls langer Dauer umgesetzt. Der Impuls selbst wird durch Startsignal TRIGGER-X bzw. TRIGGER-Y (mit negativer Logik) ausgelöst und erscheint dann auf der Leitung COUNT-IN. Ein Maschinenprogramm stellt die Impulsdauer anhand der Zahl der Schleifendurchläufe fest, die während der Impulsdauer durchgeführt werden können. Diese Zahl wird in das aufrufende Programm zurückgegeben. Sie sehen also, daß der Analogwert weder die Winkelstellung noch den Widerstandswert der Potentiometer darstellt. Dagegen geht die Arbeitsgeschwindigkeit des Prozessors ein. Zwischen der letzlich ermittelten Zahl und dem Widerstandswert besteht ein linearer Zusammenhang. Dieser muß gegebenenfalls im Programm noch anhand einer Eichung in Winkelgrade oder Widerstandswerte umgerechnet werden.

Wir wollen jetzt noch kurz zusammenfassen, wie das Interface mit dem Computer verbunden wird. Es wird die Parallel-Druckerschnittstelle verwendet. Von deren acht Datenleitungen werden die untersten sechs für die oben besprochenen Ausgabesignale verwendet, siehe auch die nachstehende Tabelle.

Ein kleines Problem gilt es für die Eingabeleitungen zu lösen. Die Parallele-Druckerschnittstelle beinhaltet nur eine für alle PC verbindliche Eingabeleitung, das Aktiv-Signal des Druckers, BUSY. Es entsteht jedoch kein Konflikt, wenn alle Eingabeleitungen mit Hilfe einer ODER-Schaltung zusammengefaßt werden. Da das Maschinenprogramm ja "weiß" , welche Eingabefunktion es angefordert hat, kann es die Signale an dieser einzigen Eingabeleitung auch korrekt interpretieren.

Interface Signal Drucker Signal Stiftnummer
LOAD-OUT Datenbit 0 2
LOAD-IN Datenbit 1 3
DATA-OUT Datenbit 2 4
CLOCK Datenbit 3 5
TRIGGER-X Datenbit 4 6
TRIGGER-Y Datenbit 5 7
DATA/COUNT-IN Busy 11
- - -

Pin-Belegung