Diplomarbeit
Entstehung
Inhalt
Abkürzungen
Einleitung
Recherche
Konzept
Umgebung
Hardware
Software
Funktionsweise
Zusammenfassung
Anhang
Konzept

3 Konzept zur Erstellung eines universellen Interfaces.


3.1 Funktionsgruppen

3.1.1 Eingänge

Zum Einlesen der Meßdaten in den Speicher des Meßmittelinterfaces wird ein Prozessor vom Typ MC6802 mit 8-Bit-Arithmetik und einem 8-Bit-breiten Datenbus verwendet (Mehr dazu im Abschnitt 4.2.1). Da die Peripherie über 8-Bit-breite Portbausteine (beschrieben in 5.1 ff.) angesprochen wird, liegt es nahe, einen 8-Bit-Port für die Ein-und Ausgänge zu verwenden. So sind dann auch vier identische Eingänge, welche als universelle Eingänge für beliebige Spannungen zwischen +/-15V verwandt werden können, auf dem Meßmittelinterface zu finden. Für die meisten seriellen Schnittstellen wird eine Anzahl von vier Messkanälen ausreichen (Meist ist eine Taktleitung und eine Datenleitung erforderlich).

Die Triggerschwelle der Eingangskomparatoren sollte möglichst frei auch nach Fertigstellung der Schaltung noch einstellbar sein. Leistungsfähige Schutzschaltungen sollen einen sicheren Betrieb der Schaltung gewährleisten und die nachgeschalteten integrierten Bauteile vor zerstörenden Überspannungen und Überströmen schützen.

Die Eingangsschaltung muss eine hohe Eingangsimpedanz haben, um die Ausgänge der Meßmittel nicht unzulässig zu belasten, sie sollte Schmitt-Trigger-Charakteristik besitzen, damit Störfrequenzen und Störsignale ausreichend unterdrückt werden und damit nachgeschaltete TTL- und CMOS-Schaltungen die digitalen Nutzsignale mit einer ausreichenden Flankensteilheit der Impulsflanken erhalten.

Hochohmige Pullup-Widerstände sorgen für einen definierten Pegel, wenn die Eingänge einmal unbeschaltet sein sollten, was in der Praxis häufiger vorkommt, da es zu aufwendig ist, alle unbenutzen Eingänge über den Meßmittelstecker auf definiertes Potential zu legen.


3.1.2 Ausgänge

Die anderen vier Bits des für die Eingänge schon halb belegten Ports werden an die vier Ausgänge vergeben. Ein TTL/CMOS-Treiber sorgt dafür, dass der TTL-Ausgang des Portbausteins vom nachfolgenden Analogteil der Schaltung nicht belastet wird. Die Ausgangsspannung soll in weiten Grenzen möglichst feinstufig zwischen etwa -10V und +10V einstellbar sein. Trotz der geforderten Feinstufigkeit soll auf analog abzugleichende Schaltungen verzichtet werden.

Auf zuerst vorgesehene Digital/Analog-Wandler zur Erzeugung von Referenzspannungen für die Ausgangstreiber wurde wegen des hohen Aufwandes und des geringen Nutzens verzichtet, da die Spannungen nur einmal während der Konfiguration des Interfaces eingestellt werden müssen.


Die Ausgangsspannung sollte stabil und störungsfrei sein und bei digitalen Zustandsänderungen eine steile Flanke besitzen. Die Geschwindigkeit sollte TTL- und CMOS-Spezifikationen genügen (Etwa 5ns/V für TTL). Alle Ausgangspegel beziehen sich immer auf Massepotential. Eine logische "0" am Portbaustein entspricht bei jeder eingestellten Ausgangsspannung einem Pegel von 0V am Ausgang. Variable Pegel für den digitalen "0" und "1" - Pegel wären schaltungstechnisch zu aufwendig, es gibt auch kaum Schnittstellen, bei denen nicht einer der beiden logischen Zustände "0" oder "1" durch eine Spannung von 0V
abgebildet wird.


3.1.3 Die RS232 - Schnittstelle

Für die RS232-Schnittstelle sollten nur Bauteile verwendet werden, welche eine in allen Punkten normgerechte RS232-Schnittstelle zur Verfügung stellen können. Für die seriell/parallel-Wandlung der digitalen Daten vom Prozessorbus zur Schnittstelle und für die Fehlererkennung und Baudratengenerierung existieren fertig integrierte Schaltkreise, die sogenannten ACIA's. Die Arbeitsweise dieser IC's ist vollständig vom Prozessor aus über die Programmierung diverser Steuerbits in den Steuerregistern der ACIA möglich. Die Generierung des Parity-Bits beim Sendevorgang und die Überprüfung und Ausfilterung desselben beim Empfang von Daten über die Schnittstelle erfolgt vollautomatisch, ohne dass ein Eingriff des Prozessors erforderlich wäre.

Die Daten- und Steuerleitungen zur Schnittstelle verlassen die ACIA mit einem Standard-TTL-Pegel. Zur Anpassung an die Spezifikationen nach V.24 ist noch eine Treiber/Empfängerstufe erforderlich, welche die TTL-Signale der Sendeleitungen auf die relativ hohen RS232-Pegel (+10V/-10V) bringt und die empfangenen Signale umformt auf für die ACIA verdauliche Werte von 0V und +5V. Ein fertig integrierter Chip mit den oben genannten Eigenschaften wird von der Firma MAXIM mit der Bezeichnung MAX232 angeboten. Die Triggerschwellspannungen der Eingänge liegen zwischen +0,8V und +2.4V, so dass die Spezifikation V.24 (Triggerschwelle zwischen -3V und +3V) und die TTL-Vereinbarungen (Triggerschwelle zwischen +0.8 und +2.4V) gleichermassen eingehalten werden. Man kann also die Eingänge des MAX232 auch direkt mit TTL-Pegeln ansteuern.

Mit dieser Konfiguration (ACIA 6551 und MAX232) erhält man eine RS232-Schnittstelle mit vier Leitungen: TxD (Sendedaten) und RxD (Empfangsdaten), RTS (Sendeteil einschalten) und CTS (Sendebereitschaft). Für die meisten Anwendungsfälle reichen diese Steuerleitungen aus. In der Norm zusätzlich angegebene Leitungen (DTR, DSR, DCD, etc.) dienen zur Modem- und Druckersteuerung und sind für den eigentlichen Datenverkehr nicht erforderlich. Eventuell muss man durch einige Drahtbrücken im Meßmittelstecker für einen konstanten Pegel auf diesen Steuerleitungen sorgen, damit das entsprechende RS232-Gerät bereit wird, Daten zu senden.


3.1.4 Die Sylvac-Schnittstelle

Die Sylvac-Schnittstelle auf dem Interfacemodul dient zu Lesen von Daten, die von sehr schnellen TTL- und Sylvac-Ausgängen gesendet werden. Da die Sylvac-Schnittstelle zu schnell ist, um vom Prozessor über einfaches Polling eingelesen werden zu können, wurde eine Applikation der Firma PAV aus der Schweiz übernommen und modifiziert. Als Eingangsstufe muss eine hochohmige MOS-FET Verstärkerstufe vorgesehen werden, um die Stromversorgung des Meßmittels zu schonen und um die Daten ohne Spannungseinbrüche übernehmen zu können. Anschliessend gelangen die Daten in ein Schieberegister mit variabler Länge (maximal 64 Bit, über Jumper binär einstellbar), welches während des Einlesevorgangs von dem Meßmitteltakt und während des Auslesevorgangs vom Prozessor getaktet wird. Gesteuert wird das Schieberegister vom Prozessor über ein EPLD (Erasable Programmable Logic Device), zu dessen prinzipieller Funktionsweise mehr im Abschnitt 5.5 gesagt wird.

Der Prozessor erhält über verschiedene Gatter, die als Logikfunktion in das EPLD programmiert werden können, die Möglichkeit, die Eingänge vom Meßmittel zu sperren oder freizugeben, die Taktleitung des Schieberegisters auf das Meßmittel oder auf eine Portleitung eines Portbausteins zu schalten (und somit das Schieberegister selbst zu takten), den Dateneingang des Schieberegisters zu sperren und den Inhalt des Schieberegisters zu löschen.

Nachdem die Daten vom Meßmittel mit hoher Geschwindigkeit in das Schieberegister geschoben worden sind, kann der Prozessor den Eingang des Schieberegisters sperren und die Daten aus dem Schieberegister "in aller Ruhe" langsam auslesen. Ist er damit fertig, kann er über das EPLD die Eingänge der Interfaceschaltung für den nächsten Messzyklus wieder freigeben.

Im ersten Planungsstadium war noch eine Startbiterkennung vorgesehen, in der das 44mys lange Startbit am Anfang eines Sylvac-Datentelegramms erkannt werden sollte. Insgesamt vier D-Flip-Flops sollten als Logik in das EPLD integriert werden und einen Zähler steuern. An den Zuständen der Zählausgänge des Zählers, welcher durch den Systemtakt F2 mit 1MHz getaktet (und somit jede mys weitergestellt) wird, kann man dann über logische Verknüpfungen erkennen, ob das Startbit kürzer als 44ms war (dann handelt es sich vermutlich um einen Störimpuls) oder ob es länger dauerte (dann ist es vermutlich ein durch Anschlussfehler hervorgerufener falscher Pegel auf der Datenleitung oder ähnliches).

Sobald ein Fehler bei der Startbiterkennung auftritt, wird die nachfolgende Logik gesperrt, die falschen Daten können nicht in das Schieberegister gelangen. Erst nach einer korrekten Startbiterkennung wird das Schieberegister freigegeben und kann die ankommenden Daten einlesen.

Eine genauere Schilderung der Vorgänge in dieser (nur hypothetisch existierenden) Schaltung soll hier nicht weiter erfolgen, da die Schaltung nicht realisiert werden konnte und somit auch nicht verifizierbar ist, obwohl eine Simulation mit einem Logiksimulator einwandfreie Funktion zeigte.

Diese Mimik musste also aufgegeben werden, da die dafür vorgesehene Logik nicht in einem EPLD des vorgegebenen Typs (Intel 5C032) untergebracht werden konnte. In diesem Chip sind zwar 8 D-Flip-Flops mitintegriert, welche aber fest und nicht über die Programmierung beeinflussbar gemeinsam getaktet werden. Der Sinn dieser Flip-Flops war von Intel wohl eher in einem Latching (gesteuerte Ausgabe der Logiksignale an den Ausgängen mit Zwischenspeicherung in den Flip-Flops) gesehen worden. In der entworfenen Schaltung ist es aber ganz wesentlich, dass die steuernden Flip-Flops von den unterschiedlichsten, oft erst durch Logik-Verknüpfungen erzeugten Signalen getaktet werden. Meines Erachtens ist es ein unschöner Designfehler in dem EPLD, dass die Takteingänge der Flip-Flops nicht auf die interne Logik-Matrix gelegt werden können. Eine Simulation der D-Flip-Flops mit diskreten Gatterstrukturen wurde am Logiksimulator entwickelt und getestet, konnte aber wegen der Komplexität der Schaltung wiederum nicht in ein EPLD integriert werden.

Trotzdem soll sie hier gezeigt werden:

D-FlipFlop diskret


Abb. 7: D-Flip-Flop diskret


Die Schaltung besteht im wesentlichen aus den beiden gepunktet eingerahmten und hintereinandergeschalteten (invertierenden) T-Flip-Flops, welche bei Freigabe ihrer Eingänge durch die Gatter-Strukturen A1 mit A2 (für T-FF 1) und A3 mit A4 (für T-FF 2) den Zustand am Eingang von N2 (für T-FF 1) bzw. am Eingang von N4 (für T-FF 2) an den Ausgang des jeweils obenliegenden Gatters übernehmen (Ausgang von N1 bei T-FF 1 bzw. Ausgang von N3 bei T-FF 2). Die erwähnten Gates werden von der Taktleitung des gesamten D-Flip-Flops gesteuert, wobei die erste T-FF-Stufe über einen Inverter I1 den invertierten Takt als Steuersignal erhält.

So wird bei einer fallenden Flanke am Clockeingang der Wert am D-Eingang in das T-FF 1 übernommen und invertiert, während bei einer steigenden Flanke der Wert im T-FF 1 wiederum invertiert an den Ausgang von T-FF 2 gelangt und somit als Gesamt-Ausgang des D-Flip-Flops verwandt werden kann. Über das Or-Gatter O1 kann das T-FF 1 jederzeit in den "1"-Zustand und über O2 das T-FF 2 in den "0"-Zustand gezwungen werden, unabhängig von dem D-Eingang oder der Taktleitung. Man kann so eine Clear- oder Reset-Funktion eines realen D-Flip-Flops simulieren.

Leider war diese Schaltung nicht in ein EPLD zu programmieren, da die logischen Rückfuehrungen (Feedbacks) von dem Logic Optimizer des Intel- EPLD-Entwicklungssystems nicht in eine entsprechende Logik-Kombination in der Verbindungsmatrix des EPLD's überführt werden konnten.

Da diese Nachteile der EPLD's erst in einem relativ fortgeschrittenen Stadium des Gesamtprojektes erkannt wurden, sind auf dem Platinenlayout des Prototyps, der zu diesem Zeitpunkt schon fertiggestellt war, noch die freien Steckplätze für den Zähler und ein Logikgatter zu sehen, womit die Zählausgänge des Zählers miteinander logisch verknüpft werden sollten, da sich auch die Pin-Anzahl des EPLDs für die erste Version -mit Startbiterkennung- als nicht ausreichend erwies, um alle erforderlichen Zählerausgänge innerhalb des EPLDs zu verschalten.

Als Erweiterung zu der mit den exotischen Pegeln 0V und -1.5V arbeitenden Sylvac-Schnittstelle wurde noch ein TTL-kompatibler Eingang für die Schieberegister-Mimik vorgesehen, der hier auch gelegentlich als Trimos-Eingang bezeichnet wird, da Trimos einen Höhenreisser anbietet, welcher ein Signal mit TTL-Pegel, aber Sylvac-Datenformat erzeugt. Über eine Schutzbeschaltung und zwei Schmitt-Trigger kann eine Daten- und eine Taktleitung analog zum Sylvac-Meßmittel betrieben werden. So sind auch sehr schnelle (bis etwa 1MHz Taktfrequenz) TTL/CMOS-Schnittstellen bis maximal 64 Bit Datenwortlänge ansprechbar.


3.1.5 Die Spannungsversorgung

Zur Spannungsversorgung von normalerweise batteriebetriebenen Meßmitteln wurde auf dem Meßmittelinterface eine variabel zwischen etwa -13V und +13V einstellbare, stabilisierte Gleichspannungsquelle vorgesehen. Für die meisten Meßmittel mit LCD-Anzeige reicht ein maximaler Versorgungsstrom von etwa 20mA aus, so dass ein ohnehin schon auf dem Interface vorhandener und bis dahin nutzloser Operationsvertärker für diese Aufgabe verwendet werden konnte. Der Ausgang ist kurzschlussgeschützt und kann am Meßmittelinterfacestecker abgegriffen werden. Somit ist ein batterieunabhängiger Bertrieb von Meßmitteln am Interface möglich.


3.1.6 Das Betriebssystem

Das Betriebssystem wurde in seiner Funktion weitgehend von dem alten Multiplexer 1080, (nähere Beschreibung in Abschnitt 4.2), übernommen. Es wurden jedoch in einigen Details Verbesserungen und Erweiterungen vorgenommen.

Der Multiplexer ist für eine maximale Bestückung mit 8 Interfaceplatinen vorgesehen, welche dann einzeln vom Prozessor selektiert und initialisiert werden, so dass an 8 verschiedenen Interfaces auch 8 verschiedene Meßmitteltypen arbeiten können. Diese Interfaceplatinen werden dann im Gegensatz zum alten Multiplexer von vorne in das Gehäuse eingeschoben und stellen mit der direkt fest an der Platine angebrachten Frontplatte fertige autonome Funktionsmodule dar.

Nach einem Reset der Schaltung bzw. nach dem Einschalten muss man mit dem Taster auf der Frontplatte ein Interfacemodul auswählen und kann anschliessend sofort mit dem Einlesen der Meßdaten beginnen. Jederzeit ist über den Taster an der Frontplatte ein anderes Modul anwählbar, mit dem dann wiederum sofort gearbeitet werden kann. Die Meßwerte werden über einen Fussschalter eingelesen, so dass der Bediener die Hände zum Arbeiten mit dem Meßmittel frei hat.

Auf jedem Modul existiert ein 8-Bit-DIP-Schalter, mit dem ein bestimmter Code als binäre 8-Bit-Zahl eingestellt werden kann, der im folgenden als Softwarecode bezeichnet wird. Zu jedem Schnittstellentyp gehört ein bestimmter Softwarecode. Ein Softwarecode von 0 bedeutet, dass das betreffende Modul abgeschaltet ist. Jedesmal, wenn eine Platine über den Auswahltaster an der Frontplatte ausgewählt wird, wird der Stand dieses Softwarecode-Schalters gelesen. Das MUX- Programm verzweigt dann bei einer Datenanforderung per Fussschalter in die zugehörige Meßmittelroutine. So kann man einfach ein anderes Meßmittel einem Modul neu zuordnen. Selbstverständlich wird dann vorausgesetzt, dass alle anderen Einstellungen auf der Interfaceplatine (Spannungspegel, Triggerpegel etc.) richtig in Bezug auf die Anforderungen des Meßmittels eingestellt wurden, dessen Softwarecode gewählt wird.

Der hier beschriebene Arbeitsmodus wird bei Brankamp als "Ein Mass, alle Teile" (E.M.A.T) bezeichnet, da von allen Teilen immer mit demselben Meßmittel nur jeweils ein Mass abgenommen wird. Für den Modus "Ein Teil alle Masse" (E.T.A.M) muss man mit mehreren verschiedenen Meßmittelmodulen arbeiten können, ohne dass man diese manuell umschalten muss. Man schaltet dann das Programm in einen Lernmodus und betätigt dann der Reihe nach die Modulauswahltaster in der Reihenfolge, wie man später auch die Meßmittel verwenden möchte. Nach Beendigung des Lernmodus' schaltet das Muxprogramm nach jeder erfolgreichen Meßwertübergabe auf das nächste "eingelernte" Meßmittelmodul automatisch um. Dieser Arbeitsmodus ist im Rahmen der Diplomarbeit nicht implementiert, da nur ein Prototypmodul zu Verfügung stand und der Modulwechsel so schlecht simulierbar war. Die Erweiterung ist jedoch durch eine Softwareänderung jederzeit nachträglich zu implementieren.


3.2 Anforderungen an das Gesamt-Konzept

3.2.1 Flexibilität

Die neue Interfaceplatine sollte nach Vorgabe durch die Firma Brankamp mindestens die Meßmittel prinzipiell ansprechen können, welche mit dem bestehenden Multiplexer 1080 gelesen werden können. Zusätzlich war eine RS232-Schnittstelle mit den Normen entsprechenden Kenndaten gefordert. Das neue Interfacemodul sollte universell sein, leicht umkonfigurierbar und anpassbar auch an heute vielleicht noch unbekannte Schnittstellen. Ohne größeren Aufwand (z.B. Austausch von Baugruppen oder umfangreichen analogen Abgleichvorgängen etc.) sollte eine Anpassung von Meßmittelmodulen auch vor Ort beim Kunden direkt möglich sein.


3.2.2 Steuerbarkeit durch den Prozessor

Je mehr Parameter des Interfaces vom Prozessor aus per Software zu steuern sind, um so kleiner wird der Aufwand bei der Anpassung des Interfaces an neue Schnittstellen, wenn die Software einmal für dieses Meßmittel vorliegt. Die notwendigen Umstellungen werden dann vom Prozessor per Software vorgenommen. Jedoch wurde bei der Entwicklung des Konzeptes auch das Preis-Leistungs-Verhältnis der fertigen Schaltung in die Überlegungen mit einbezogen, so dass auf den ersten Blick verlockende Ideen wieder verworfen wurden, da die Bauteilkosten und der zusätzliche Aufwand an Platz auf dem Platinenlayout etc. hoch waren im Vergleich zu dem Nutzen dieser Baugruppen. So wurde auch die unter 3.1.2 erwähnte Digital/Analog-Wandlung zur Erzeugung der Referenzspannungen für die Ausgänge wieder fallen gelassen. Auch auf die Verwendung programmierbarer Operationsverstärker wurde im Hinblick auf die Kosten verzichtet. Die komplette Steuermimik für die Sylvac-Schnittstelle wurde in ein EPLD integriert, der Prozessor erhält so platzsparend (auf der Platine) vollständige Kontrolle über die Ein- und Ausgänge des Schieberegisters. Die Programmierung der Schieberegisterlänge jedoch wurde z.B. wieder mit Jumpern ausgeführt, da diese Einstellungen nur einmal bei der Konfiguration erforderlich sind und daher den höheren Aufwand eines Portbausteins nicht rechtfertigen.

Es war sogar einige Zeit die Implementierung eines I^2C-Busses auf dem Interface in Diskussion. Bei diesem Bus handelt es sich um einen weit verbreiteten seriellen Bus mit genau festgelegtem Datenformat und Handshaking. Jedem Datenpaket geht ein Header voraus, der den Adressaten dieses Paketes definiert. Die restlichen am Bus angeschlossenen Teilnehmer ignorieren dann diese Nachricht, welche nur an den spezifizierten Teilnehmer gerichtet ist. Man hätte so mit nur einem 8-Bit-Port alle Teilnehmer (I^2C-D/A-Wandler, -OP-verstärker, -Schieberegister etc.) am Bus ansprechen können. Aus der Unterhaltungselektronik gibt es beispielsweise fertige Chips für I^2C-Bus-Systeme, welche die Helligkeit, den Kontrast und die Lautstärke eines Fernsehgerätes mit drei fertig auf dem Chip integrierten 12-Bit-D/A-Wandlern erledigen. Als Eingang wäre dann nur der I^2C-Bus mit seinen drei Leitungen vorhanden gewesen, über den dann die drei D/A-Wandler (im gleichen DIP-Gehäuse integriert) adressiert und mit Daten versorgt werden könnten.

Wegen des relativ hohen Aufwandes und der zusätzlichen Fehlerquellen wurde dann diese Lösung trotz ihrer unbestrittenen Eleganz wieder fallengelassen. Nicht zuletzt hätten wahrscheinlich auch Timing-Probleme (der I^2C-Bus ist ein serieller Bus mit allen Nachteilen der seriellen Datenübertragung) den Aufbau eines schnellen Interfaces erschwert, denn trotz der letztendlich realisierten direkten Lösung (Ein-und Ausgänge liegen direkt an einem Portbaustein) ist die gesamte Schaltung mit einer Grenzfrequenz von etwa 50kHz (durch die Software gegeben) für einige Meßmittel (z.B. Sylvac) zu langsam.

Im RS-232-Teil der Schaltung wurde auf dem neuen Interface erstmalig im Hause Brankamp eine neue ACIA vom Typ 6551 als Schnittstellen-Baustein eingesetzt. Dieser Chip erzeugt im Gegensatz zum bisher verwendeten Typ MC6850 die Baudrate für die serielle Datenübertragung intern selbst, es wird lediglich ein extern anzuschliessender Quartz benötigt. Der bisher verwandte externe Taktgenerator mit DIP-Schalter zur Baudratenerzeugung entfällt. Über das Control-Register der ACIA kann die Baudrate entweder von 50Bd bis 19200Bd in 15 Stufen gewählt werden oder man kann die Baudrate als das 16-fache einer extern über einen separaten Eingang einzuspeisenden TTL-Taktfrequenz definieren. Die Standard-RS232-Frequenzen sind jedoch über den 15-stufigen Teiler erzeugbar, so dass die manuelle Einstellung der Baudrate entfällt und vom Prozessor vorgenommen wird.

Auf die prozessorgesteuerte Einstellung der Versorgungsspannung für Meßmittel wurde ebenfalls verzichtet, da - sofern dieser Schaltungsteil überhaupt eingesetzt wird - diese Einstellung einmal während der Interfacekonfiguration vorgenommen wird und anschliessend unverändert bleibt.

3.2.3 Wartungsfreundlichkeit

Wichtig waren bei der Neuentwicklung des Interfaces die Aspekte der Modularität und leichten Fehlerlokalisierbarkeit. Die Meßmittelinterfaceplatinen sind modular aufgebaut, sie besitzen als einzige Verbindungen die Messerleiste zur Busplatine auf der Rückseite und den Stecker für die Meßmittel an der Frontseite. Die Aufgaben im Meßmittelmultiplexer sind klar gegliedert: Jedes Interfacemodul ist für genau ein Meßmittel zuständig. Wie bei allen modulbasierenden Systemen ist eine fehlerhafte Funktion eines Meßmittelkanals z.B. durch den Austausch des betreffenden Moduls sehr schnell behoben.

Weiterhin wurde darauf geachtet, dass möglichst viele Einstellungen analoger Werte mit Jumpern auf vorgegebene Werte eingestellt werden können, so dass analoge Abgleicharbeiten nicht erforderlich sind. Trotzdem wurde beispielsweise bei der Einstellung der Triggerschwelle der Eingangs-Komparatoren neben zwei voreingestellten Werten von etwa +/-1.4V zusätzlich eine analoge Einstellung vorgesehen, auf welche man bei Bedarf durch Umstecken eines Jumpers umschalten kann, um so nicht durch die digitale Stufung eingeschränkt zu sein.


3.2.4 Erweiterungsmöglichkeiten

Durch die relativ freie Auslegung des Allgemeinkonzeptes (frei verwendbare, in den Parametern weiträumig einstellbare und direkt beeinflussbare Ein- und Ausgänge) ist das Interface durch Erweiterung der steuernden Software jederzeit an andere Schnittstellen anpassbar. Der Software-Kodierschalter hat 255 verschiedene Einstellmöglichkeiten, so dass theoretisch 255 verschiedene Schnittstellentypen von einem Programm unterstützt werden könnten. Vermutlich wird man jedoch vor dem Erreichen dieser Grenze an die Grenze der Speicherkapazität der drei auf der Prozessorplatine MPC 104 (Siehe auch Abschnitt 4.2.1) zur Speicherung des Programms verwandten EPROMS vom Typ 2764 stossen, welche Speicherplatz für 3*8kByte (1kByte=2^10Bytes=1024 Bytes) bieten.

Die EPROMS sind zur Zeit schon über 60% ausgelastet, allerdings hauptsächlich wegen der umfangreichen Softwaremodule aus dem Terminalprogramm der Processa 2090 (Kurzbeschreibung der Funktion des Terminals 2090 im Abschnitt 4.1). Da diese jedoch sehr komplex und umfangreich sind, habe ich mich während dieser Diplomarbeit nicht in die Terminalsoftware eingearbeitet, sondern das MUX-Programm über die von H.Baumfalk beschriebene Softwareschnittstelle eingebunden. Mehr zur Software steht im Kapitel 6.

Weiterhin lässt sich durch eine Revision des Platinenlayouts (z.B. durch Erhöhung der Bauteiledichte im analogen Schaltungsteil durch stehende Montage von Widerständen und Dioden etc.) sicherlich noch Platz schaffen, um vielleicht noch einige Optokoppler und einige TTL-Treiber/Empfänger zur direkten Nutzung von schnellen TTL-und CMOS-Schnittstellen unterzubringen.


3.2.5 Störsicherheit

Die Störsicherheit des Interfaces in Bezug auf Störungen, welche von aussen in das Gerät einstreuen, hängt zum allergrössten Teil von der in der Serie verwandten Gehäusebauform des die Meßmittelmodule umschliessenden Gehäuses ab. Da das Gerät erst als Prototyp in einem provisorischen Gehäuserahmen existiert, konnten diesbezüglich keine Erkenntnisse gewonnen werden.

Als ein relativ grosses Problem entpuppte sich die Unterdrückung von intern erzeugten Störungen durch Übersprechen von Leiterbahnen, welche hochfrequente Digitalsignale führen, auf die hochohmige Operationsverstärkerbeschaltung bei den Ausgängen. Durch die hochohmige Auslegung der Beschaltung der Operationsverstärker für die Dimensionierung der Ausgangsspannung ist die Schaltung sehr empfindlich für hochfrequente Einstreuungen von benachbarten Leiterbahnen. Die Folge waren hohe Störpegel auf einem der vier Ausgangskanäle, welche in der Größenordung einiger 100mV lagen. Derartig hohe Werte sind jedoch nicht vertretbar. Um das Störverhalten der Schaltung zu verbessern, wurden die Widerstände in der Operationsverstärkerbeschaltung auf 1/10 ihres ursprünglichen Wertes verringert, Leiterbahnen auf der Platine umgelegt, Massepotentiale umdefiniert, masseführende Leiterbahnen verdickt und je ein Kondensator von 10pF parallel zum Rückkopplungswiderstand der Beschaltung eingesetzt.

Diese Kondensatoren verschlechtern jedoch die Flankensteilheit der Ausgangstreiber erheblich, es wurden Werte von etwa 50ns gemessen, bis die Ausgangsspannung auf 90% des Endwertes gestiegen war. Für einige TTL-Serien kann dieser Wert schon problematisch werden. Dieses Problem könnte sich zwar durch ein besseres Platinenlayout verringern (wodurch vielleicht die Einstreuungen so gering würden, dass die Kondensatoren entfallen könnten), besser wäre es jedoch, wahlweise den TTL-Pegel der Treiberschaltung schon vor dem Analogteil der Schaltung abzugreifen und für die Meßmittelansteuerung zu verwenden. Bei einer Weiterentwicklung des Interfaces wird diese Modifikation jedenfalls vorgesehen.


3.3 Grenzen des Konzeptes

3.3.1 Geschwindigkeit

Da für die digitalen Ein- und Ausgänge analoge Baugruppen verwandt werden, um eine grosse Flexibilität bei der Wahl der Spannungspegel zu gewährleisten, mussten in den Bereichen Geschwindigkeit und Flankensteilheit einige Abstriche gemacht werden.

Die Geschwindigkeit der Operationsverstärker nebst deren Beschaltung wird dabei hauptsächlich von den oben erwähnten Kondensatoren im Rückkopplungszweig der Schaltung gebremst, welche durch ihre Umladezeiten die Impulsflanken der digitalen Rechtecksignale etwas verrunden. Man kann jedoch durchaus bis zu einer Frequenz von etwa 500kHz akzeptable Impulsformen messen, welche sich nach den oben genannten Änderungen des Platinenlayouts für eine spätere Serienversion durch den Wegfall der Kondensatoren weiter erheblich verbessern werden. Da mit einem mit 1MHz getakteten Prozessor jedoch ohnehin nicht mit einer derart hohen Geschwindigkeit eingelesen werden kann, ist dieses Problem nicht so gravierend. Die schnellste per Software erreichbare Geschwindigkeit (nur Ein- und Ausschalten von Ausgängen ohne Datenspeicherung, ohne Lesevorgänge und ohne Zählermanipulationen) liegt bei etwa 200kHz. In den Leseroutinen kommen dann noch zeitverbrauchende Tätigkeiten hinzu wie die Abspeicherung der gelesenen Daten, Inkrementierung des Zeichenzählers, welcher die Anzahl der eingelesenen Zeichen mitzählt, Inkrementierung des Pointers auf den freien Speicherplatz, Bedienung der Interrupt-Routine zur Erkennung eines Timeout-Fehlers usw. hinzu, so dass wohl von einer realen Maximalfrequenz auf der Taktleitung von ca. 50kHz ausgegangen werden kann.

Die maximale Geschwindigkeit der RS232-Schnittstelle ist mit 19200Bd dem Standard entsprechend, laut V.24-Spezifikation ist eine minimale Maximalübertragungsrate von 19200Bd vorgeschrieben.

Die maximale Geschwindigkeit der Sylvac-Schnittstelle wird durch die maximale Arbeitsfrequenz der Eingangsimpedanzwandlung und des Schieberegisters bestimmt und liegt bei etwa bei 500kHz.


3.3.2 Eingangs/Ausgangspegel

Die Spannungspegel an den Eingängen sind relativ unkritisch. Durch einen hochohmigen Serien-Schutzwiderstand und zwei folgende Ableitungsdioden gegen +/-15V sind die Eingänge relativ gut gegen Über- und Unterspannungen geschützt, deren maximal ohne Zerstörung verkraftete Werte bei etwa +/- 50V liegen. Durch die freie Wahl des Triggerpegels der Schmitt-Trigger in den vier Eingangskanälen sind beliebige Eingangspegel zwischen etwa +/-14V für logisch "0" und "1" differenzierbar.

Die Spannungspegel der Ausgänge für logisch "1" sind digital binär codiert mit Jumpern in 1V- bzw. 0.5V-Schritten einstellbar, je nach Dimensionierung des Rückkopplungswiderstandes. Bei der kleineren Stufung sind jedoch lediglich Spannungen bis zu +8.5V bzw. -7.5V möglich, da pro Kanal nur vier 8-4-2-1- gewichtete Widerstände vorgesehen sind: (8+4+2+1)*0.5V=7.5V. Eine detaillierte Beschreibung dieser Zusammenhänge ist in dem Abschnitt 5.3 zu finden, in dem die Hardware der Ausgänge beschrieben wird. Der Spannungspegel für logisch "0" beträgt immer 0V. Für eine invertierte Logik ist lediglich die Logikdefinition per Software zu invertieren, eine logisch erforderliche "1" wird dann als reale "0" ausgesendet und umgekehrt.

Meist werden jedoch Spannungspegel von bis zu etwa +/-8V ausreichen, um die meisten Meßmittel anzusprechen. Bei der Prototypversion wurde übrigens eine 1V-Stufung vorgesehen, um die Grenzen der Ausgangstreiber besser erfassen zu können.

3.3.3 Systematische Grenzen

Hier ist zu erwähnen, dass man mit der vorliegenden Version des Interfaces keine digitalen Strom-Schnittstellen ansprechen kann. Derartige Schnittstellenströme müssten über Shuntwiderstände in äquivalente Spannungen umgeformt werden, welche dann vom Interface verarbeitet werden könnten. Diese Shuntwiderstände könnten auch im Gehäuse des 25-poligen Sub-D-Steckers am Kabel zum Meßmittel untergebracht werden, so dass auch Strom-Schnittstellen mit vertretbarem Aufwand anschliessbar sind. Digitale Strom-Schnittstellen sind jedoch bei Messgeräten ungebräuchlich.

Nur der Vollständigkeit halber wird an dieser Stelle nochmals darauf hingewiesen, dass mit dem vorliegenden Meßmittelinterface keine parallelen Schnittstellen aufgrund der fehlenden parallelen Eingangskanäle ansprechbar sind. Ebenso wären Meßmittel, welche über Impulsausgänge verfügen, die normalerweise an Eingängen von Zählern angeschlossen werden, nur problematisch anschliessbar, da das Zählen und die Detektierung der Zählrichtung per Software erfolgen müsste, wobei höchstwahrscheinlich Geschwindigkeitsprobleme auftreten würden. Diese Aufgaben sind viel einfacher mit fertig integrierten und sehr schnellen Vor-/Rückwärtszählern lösbar, wobei dann der Zählerstand jederzeit gelesen und ausgewertet werden kann. Es sind auch fertige Zählgeräte auf dem Markt erhältlich, welche den Anzeigewert beispielsweise über einer RS232- Schnittstelle zur Verfügung stellen.

Da nur ein Optokoppler (als Ausgang hauptsächlich zur potentialfreien Datenanforderung vorgesehen) auf dem Interface realisiert wurde, können auch keine Meßmittel angeschlossen werden, welche auf eine galvanische Trennung vom Interface angewiesen sind. Da aber noch 6 Bits an dem Portbaustein frei sind, an dem der Optokoppler angeschlossen ist, wäre es denkbar, bei einer späteren Version des Platinenlayouts durch Erhöhung der Bauteildichte noch etwas Platz zu schaffen für weitere Optokoppler-Ein- und Ausgänge.

© 2001 Marcel Sieling, http://www.powerslider.de
   Ich freue mich immer über nette EMails, die ich gerne beantworte.