Next: Anforderungen an einen Up: Ein Schnittstellenumsetzer für Previous: Ein Schnittstellenumsetzer für

Der Multiplexer

Ein komplexeres Gerät als das Digital-I/O-Modul ist die Kollimatorsteuerung der einzelnen Spektrometer. Die Spektrometer A und C haben jeweils einen Kollimator; Spektrometer B hat vier Kollimatoren. Da das Steuerungsmodul für die Ein- und Ausgabe jeweils 18 Bit benötigt, müßten also auf den einzelnen VME-Bus-Rechnern insgesamt sechs Digital-I/O-Module eingesetzt und dicke Kabel bis zu den Steuerungsmodulen gezogen werden. Um viele lange Kabel zwischen den Rechnern und der Elektronik zu vermeiden und weil auch nicht genügend TVM744-Schnittstellenkarten zur Verfügung standen, wurde in der Elektronikwerkstatt des Instituts für Kernphysik ein Multiplexer entwickelt, über den bis zu acht Geräte an derselben Schnittstelle betreibbar sind. Hier sind jeweils die ersten vierundzwanzig Bits für das Gerät als Daten nutzbar. Die restlichen Bits benutzt der Multiplexer für die eigene Steuerung (siehe Anhang ).

Im Rahmen dieser Arbeit wurde für diese Hardware ein Gerätetreiber erstellt, der die Funktionalität des Multiplexers unterstützt. Er sollte für Programme, die auf den Digital-I/O zugreifen möchten, ,,transparent`` sein, das heißt die gleiche Schnittstelle zur Verfügung stellen wie der Digital-I/O-Treiber selbst, damit die Programme, die ihn benutzen wollen, nicht geändert werden müssen.

Für die Implementation wurde folgendes Konzept verwendet. Es wird ein neuer Gerätetreiber für die Multiplexerfunktionen erstellt, der seinerseits auf den alten Digitial-I/O-Treiber zugreift. Für jeden zu bedienenden Kanal des Multiplexers meldet der Treiber einen eigenen Service und damit auch einen eigenen Messagesystem-Namen an. In der Datenbank wird zu jedem dieser Namen eine Kanalnummer festgelegt, anhand derer der angesprochene Service am Anfang jeder eingehenden Aktionsanforderung den entsprechenden Multiplexerkanal öffnen und ihn nachher wieder schließen kann. Die Nachricht wird dabei einfach an den Digital-I/O-Treiber durchgereicht.

Um einen Kanal der Multiplexerelektronik zu öffnen, werden die vier Bits der Kanalnummer gesetzt. Erst wenn dann das sogenannte Handshake-Bit auf 1 gesetzt wird, wird die Programmierung des Kanals wirksam. Anschließend ist der Kanal geöffnet, und die Nachricht kann an den eigentlichen Digital-I/O-Treiber weitergereicht werden. Danach wird das Handshake-Bit wieder auf 0 gesetzt, um den Kanal wieder zu schließen (siehe Abbildung ).

Zum Einsatz kam dieser Treiber im Zusammenhang mit der Kollimatorsteuerung von Spektromenter A (siehe Abschnitt ). Diese war bis dahin das einzige Gerät, das am Multiplexer angeschlossen war, so daß die Funktionalität nur eingeschränkt getestet werden konnte. Während des Experimenteinsatzes sind keinerlei Probleme aufgetreten.

Seit dem Aufbau von Spektrometer B wird die zugehörige Stromversorgung der Quadrupolspulen zur Gradientenkompensation für die NMR-Feldmessung (siehe [Kra92a]) auch über den Multiplexer gesteuert. Dabei sind einige gravierende Probleme zu tage getreten.

Da die Hardware des TVM744 den Zustand der Ausgabebits speichert, liegen die Datenbits des einen Gerätes beim Anwählen eines zweiten Gerätes an diesem an, was zu unvorhersehbaren Reaktionen führen kann, da das Gerät auf die eingestellten Bits reagiert.

Auch ist es so nicht möglich, Befehlssequenzen zu senden, also z.B. mehrere Datenbits und dann ein Handshake-Bit, da nach jedem Befehl der Multiplexerkanal wieder geschlossen wird. Nach dem Schließen stehen dann alle Bits hinter dem Multiplexer wieder auf Null (siehe Abbildung ). Beim Setzen der Datenbits bereitet das keine Probleme, da die angeschlossenen Geräte ähnlich wie der Multiplexer erst mit dem Setzen ihres Handshake-Bits die Datenbits einlesen. Für das Setzen dieses Handshake-Bits aber wird erst der Multiplexerkanal wieder geöffnet und damit die Datenbits wieder an das Endgerät angelegt. Durch die Schaltzeiten in der Elektronik kann das aber in nicht vorhersehbarer Reihenfolge geschehen, so daß eventuell einige Datenbits erst nach dem Handshake-Bit am Gerät anliegen und damit nicht mehr berücksichtigt werden.

All dies hat zur Folge, daß der Multiplexer mit diesem Treiber nicht einsetzbar ist. Es wurde deswegen ein neues Konzept erarbeitet.



Next: Anforderungen an einen Up: Ein Schnittstellenumsetzer für Previous: Ein Schnittstellenumsetzer für


martin@daisy.zdv.Uni-Mainz.DE
Fri Apr 21 10:02:42 MESZ 1995