Multiplexer

 

Signal i

 

Signal k
De-Multiplexer

 

Signal x

 

Signal y


Was ist ein Multiplexer?

Im Forum: "Was ist ein Multiplexer?" wird eine passende Definition gegeben:

"Laut DIN 44300 ist ein Multiplexer (kurz: MUX) eine Funktionseinheit, die
Nachrichten von Kanälen einer Anzahl n an Kanäle einer anderen Anzahl m
übergibt.

Herkoemmlicherweise besitzt ein Multiplexer mehrere Eingänge und einen Ausgang. Mit Hilfe von Signalen an Steuerleitungen wird jeweils ein Eingang auf den Ausgang geschaltet (parallel - seriell Umwandlung). So hat z.B. der 74151 drei Steuereingänge und acht Dateneingänge sowie einen Ausgang.

Ein Multiplexer, der einen Eingang auf mehrere Ausgänge schaltet, wird auch Demultiplexer genannt. Es handelt sich aber nach der Definition um einen Multiplexer, nur dass hier n < m ist."

Was ein Multiplexer ist, haben wir nun schon definiert, aber wozu braucht man so was?

Eigentlich wurde diese Technik erst relevant mit der Elektronik, aber es gibt sie schon viel länger und es gelten die gleichen Gesetze, nur wurde es nicht als Multiplexer behandelt.
Wir wollen ein Beispiel betrachten.
Die Eisenbahn ist da ein ganz tolles Beispiel. Wir wollen einmal annehmen, dass wir einen großen Hafen haben und dieser mit einer Stadt verbunden ist. Wie weit die Stadt entfernt ist, ist noch zu klären.


Wenn man einmal einwenig genauer hinschaut, wird im Hafen nicht alles an jeder Stelle umgeschlagen, es gibt Spezialisierungen.
So z.B. wird das Schüttgut Kies aus dem Schiff mit speziellen Fördermitteln in die Eisenbahnwagen transportiert, das sind sicher andere als für Kohle.
Fährschiffe brauchen Rampen damit die Fahrzeuge schnell aufs Schiff und auch wieder runter kommen. Kreuzfahrtschiffe brauchen einen ebenen Kai mit Personenabfertigungs- gebäude.
Na ja, und die Arbeiter im Hafen müssen ja irgendwie zum Arbeitsort kommen, das erledigt die S-Bahn. Die braucht keinen Kai aber liegt zentral im Hintergrund und es fahren da sicher nur S-Bahnen ab.

Auf der anderen Seite, die Stadt, gibt es aber auch ganz spezielle Anlaufpunkte, z.B. die Kohle kommt zum Kraftwerk, der Kies zum Betonwerk, die Container zum Containerbahnhof, die Passagiere zum Stadtbahnhof usw.
Man kann also exakt immer zwei Punkte (einen im Hafen, einen in der Stadt) miteinander verbinden. Im oberen Beispiel erfolgt das durch jeweils eine Gleisverbindung.

Ob solche mehrere Verbindungen sinnvoll sind, hängt sicher von den örtlichen Gegebenheiten ab, wie Entfernung, geografische Hindernisse, Nutzungshäufigkeit der Strecke(n) usw.
Nehmen wir an, dass zwischen dem Hafen und der Stadt ein großer Fluss liegt. Dann wird man selbst bei kurzen Entfernungen zwischen den Punkten nicht wie im Beispiel 8 Brücken nebeneinander bauen, sondern alle Gleise vereinen und über nur eine Brücke führen:


Es gibt nun aber neue Probleme:

Das sieht dann so aus:


Zur Selektion müssen also immer 7 Weichen gestellt werden, in diesem Fall waren zum vorhergehenden nur 3 zu stellen.
Um den Durchsatz zu erhöhen kann man sich nun neue Verfahren zum Ablauf erarbeiten, z.B. wenn die Gleisverbindung sehr lang ist, können im entsprechenden Sicherheitsabstand weitere Züge auf die Strecke geschickt werden.
Das gibt aber ein neues Problem, man muss wissen welcher Zug nun an der Verzweigung ankommt um die Weichen zu steuern.
Entweder organisiert die zentrale Steuerung die Kontrolle und Auswahl
oder
der Zug trägt selbst die Informationen (ich komme von Gleis4, ich will nach Gleis4)

Wenn man das zentral organisiert, könnte man so eine Art Warteschnlange machen:

| G1 | G4 | G8 |( G1 )|

Nehmen wir einmal an, es könnten mximal 4 Züge unterwegs sein. Die Warteschlange wird vom Management im Hafen gefüllt, d.h. es fahren die 4 Züge nacheinander los.
Im Stadt-Management ist immer das letzte Fenster, also in diesem Fall das rechte G1 sichtbar, also fährt der Zug nach G1. Ist er angekommen wird die Warteschlange einmal nach rechts geschoben:

| 00 | G1 | G4 |( G8 )|

Links fährt kein weiterer Zug ein, dann muss man das irgendwie mitteilen z.B. wird nun 00 eingeschoben. Die Warteschlange zeigt nun der Reihe nach: G8, G4, G1 und dann 00. Für diesen Fall gibt es ja keinen Impuls, also muß nach einer den Betriebsbedingungen angepaßten Zeit weitergeschoben werden. Wird wieder ein Zug eingeschoben, dauert es 4 Zeitintervalle bis das Stadt-Management Informationen erhält.

Die zweite Variante gibt es in ähnlicher Weise im Internet. Da kann man nur ins Netz, also auf die Strecke, wenn sie frei ist (logisch) und dann wird der Zug noch in einzelne Wagen (Pakete heißen die Dinger in der Informatik) zerlegt und jeder weiß wo er hin will. Außerdem muss noch die Wagennummer mit angegeben werden, denn im Internet gibt es viele Wege und da kann schon mal der 3.Wagen vor dem 1.Wagen ankommen, also muss der Zug wieder richtig zusammengesetzt werden.

Und noch etwas sollte auffallen, das Gleis G1 in der Stadt ist noch besetzt.
Entweder gibt es mehrere Gleise G1 oder,
und das ist das nächste Problem,
die Züge müssen auch wieder zurück, es gibt noch Gegenverkehr!
Baut man dafür ein zweites Gleis, braucht man auch eine zweite oder breitere Brücke und weitere Weichen, die nun auch wieder gesteuert werden müssen.


Diese Anordnung kommt mit zwei zusätzlichen Weichen aus, aber an den Knotenpunkten KP1 und KP2 muss nun mehr geregelt werden. Es gibt auch andere Lösungen, die aber aufwendiger sind.

Wir wollen uns noch einmal mit den sieben zuerst vereinbarten Weichen beschäftigen. Die vorgestellte Lösung ist nicht die einzige, folgendes ist möglich:

   
(links die alte, rechts die neue Lösung)

Das es funktioniert sieht man, aber es ist doch verwirrender. Noch verwirrender wird es, wenn man die Ansteuerung mit angibt:

   

Es wurde einfach von rechts begonnen die Ansteuerung der Weichen durchzunummerieren. Aber man glaubt es nicht, so ist es nicht sinnvoll, die zweite Reihe der Beschriftung ist besser - eigentlich genauso blöd.
Hier spielen die Kenntnisse von der theoretischen Informatik mit ein. Wenn man einmal die Eigenart einer Weiche schematisiert, ist sie dadurch gekennzeichnet, dass sie zwei Zustände einnehmen kann, ihr folgen zwei "Linien", der nächsten Weiche erneut zwei, also nun schon 4 - das hat irgendwie etwas mit der digitalen Welt zu tun!
Wir stellen einmal folgende Definition auf:

Immer wenn die Weiche in waagerechter Stellung steht, sagen wir, sie hat den Wert 0,
im anderen Fall, den Wert 1.
Das kann auch völlig anders sein, sie könnte auch nach unten zeigen, man muss nur die beiden Möglichkeiten kennzeichnen.

Die theoretische Informatik stellt solchen Sachverhalt durch ein spezielles Bild, man sagt Graph, dar. Und in diesem Fall kann man noch weiter spezifizieren, es ist ein
vollständig ausgeglichener Binärbaum.
Binärbaum bedeutet, dass jeder Weiche, Weiche verallgemeinert wäre ein Knoten, dass jedem Knoten zwei weitere Linien, wir sagen nun Kanten, folgen.
So ein Baum sieht dann folgendermassen aus:

Die Knoten werden durchnumeriert nach einem Schema, man beginnt (hier) von rechts und numeriert fortlaufend (hier) von unten nach oben die einzelnen Ebenen.
Der 1. Knoten hat die Bezeichnung 1. Die nächste Ebenen der Knoten, alle werden nur durch eine Kante erreicht, und es sind (logisch) zwei Knoten, haben die Bezeichnung 2 und 3, die nächste Ebene dann 4, 5, 6 und 7.
Nun wenden wir in etwa die eben getroffene Festlegung an:
nach oben 1, nach unten 0.
Die Bezeichnung schreiben wir an die Kanten (eine kann nur 0 und eine nur 1 sein).
Nun kann man mit dem Finger vom Knoten 1 zu einem Ende des Baumes (man sagt Blatt dazu) fahren und schreibt immer die Kennung der Kanten auf, z.B. zum Blatt/Gleis G0 kommt man mit den Kanten 0, 0 und 0, das ist aber, wenn man die Bezeichnung als Dualzahl interpretiert, genau die Dezimalzahl 0.
Oder nach G5 ist das 101 also 5.
Wieder zurück zur Digitaltechnik, hat man mit 3 Werten 8 verschiedene Möglichkeiten!

Wendet man das alles auf unsere Weichen an bedeutet das:

Man kommt mit 3 Signalen zur Steuerung aller Weichen aus!
Oder noch anders:
Das Ziel beinhaltet zugleich die Steuersignale der Weichen, z.B. der Zug will nach G4, d.b. 4 = 100 (erste Weiche nach oben, die nächsten Weichen wagerecht).
Die Weichen 4, 5, 6 und 7 und die Weichen 2 und 3 werden zusammen umgeschaltet und dazu die Weiche 1 - das sind die 3 Signale.

Wenn nicht alle Weichen gesteuert werden sollen, kann man aus dieser Anordnung auch die Nachfolgeweiche bestimmen. Das ist vom oben genannten Baum ableitbar:
dem Knoten i folgt der Knoten i * 2 und der Knoten i * 2 + 1
z.B. dem Knoten 3 folgt der Knoten 3 * 2 = 6 und der Knoten 3 * 2 + 1 = 7
Das stimmt. Mit den Weichen geht es auch so, die Formel wird etwas verändert:

        mit:
Win - Nachfolge von Weiche i
Wi - aktuelle Weiche
Wist - Stellung der aktuellen Weiche (0 - waagerecht, 1 - nach oben)

Damit kann man nun genau nur eine Weiche ansteuern:
Adresse Gleis Stelle 0 AND Win

Damit soll das Prinzip eines Multiplexers ausreichend beschrieben sein.


Wo braucht man nun so ein Teil?

Ein großes Feld gibt es in der Rechnerarchitektur, da ist sicher schon einmal der Begriff Multiplex-Bus aufgetaucht. Es ist ein wirtschaftliches Problem, ob man für jeden Bus im Rechner, man hat mehrere im Rechner, ein Leitungssystem anlegt oder nur einen Bus als Multiplexbus nutzt, also alle Signale nacheinander über den einen Bus führt. Welche Probleme entstehen, sieht man am Beispiel der Eisenbahn.
Man kann natürlich auch jeden Bus einzeln durchziehen, bei 64 Bit Rechner sind das nur für Adress- und Datenbus ja schon 128 Leitungen. Intern im Prozessor ist das sicher machbar (sieht man ja), aber diese Busse müssen nach außen, z.B. zur Festplatte, zum Hauptspeicher usw. geführt werden, da werden die Stecker dann ein Problem. Sicher deshalb sind die neuen Rechner mit SATA (serieller Bus) ausgerüstet. Da werden nun die Daten seriell übertragen, d.h. die einzelnen Bit's werden pro Bus gemultiplext. Wird die Frequenz um 64 erhöht, gibt es keinen Unterschied, jedoch wird die Frequenz immer mehr zur Störfrequenz im Rechner selbst und zu anderen Geräten. Die Leitungen lassen sich nun aber auf Grund der wenigen Drähte besser abschirmen.

Im Prinzip funktioniert das so:
Ein Schalter verbindet der Reihe nach alle 64 Leitungen mit der Ausgangsleitung. Man könnte das auch als Parallel-Seriell-Wandler bezeichnen.
Rein technisch ist das natürlich so ganz einfach zu realisieren.

Es sollten uns dazu nun mindest zwei Lösungen einfallen. Links ist eine Variante gezeigt.
Basis sind 64 elektronische Schalter, die der Reihe nach durch einen Zähler angesteuert werden. Für 64 braucht man 6 Leitungen, also brauchen wir ein AND-Element mit 7 Eingängen. Man muss natürlich auch dafür sorgen, dass im gewünschten Fall alle 6 Bits 1 sind, damit die Leitung durchgeschaltet wird, im Fall 0 hat der Zähler die Ausgangswerte 000000, die müssen also durch einen Negator zu 1 gewandelt werden. Das schafft man durch ein entsprechendes Leitungssystem und den notwendigen Verzweigungen.
Die Schaltung ist so noch nicht komplett, es soll das Prinzip gezeigt werden.


Eine andere Variante ist natürlich das Schieberegister.
Wir brauchen ein Schieberegister mit 64 Stellen, 64 FF's. Diese FF's müssen auch gesetzt werden können. Dazu wird der S-Eingang mit dem jeweiligen Bit verbunden, R ist fest auf 0. Nur eine 1 an S kann also das FF auf 1 setzen (Set-Zustand). Aber das Setzen kann erst dann erfolgen wenn das Strobe-Signal auf 1 gesetzt wurde, die AND's fungieren wieder als elektronische Schalter.
Das Register wurde parallel beschrieben.
Nun kommt der Zähler in Aktion und gibt genau 64 Takte aus. Das bedeutet, das der Reihe nach vom höchsten Bit beginnent die 64 Bit's am Ausgang zur Verfügung stehen.
Wir geben den Inhalt des Registers seriell aus.
Will man auch wie oben mit dem niederwertigsten Bit beginnen, muss man einfach die Schieberichtung ändern.
Die Schaltung sieht formal viel einfacher als der erste aus, jedoch muss man beachten, dass hinter jedem FF auch noch eine Schaltung steckt.
Oder man nutz wieder Angebote der Industrie, denn in der 4000-er IC-Serie werden komplette Schieberegister angeboten, z.B. der IC 4014:


(aus: "Einfach DIGITAL SCHNELL; Die Datenblattsammlung
für die ICs der CMOS 4000 Serie")
   
(aus: "Data Sheet; Philips Semiconductors"
! andere Bezeichnungen: z.B. P0 hier = P1 links, usw.)

Wenn man 8 solcher IC's hintereinander schaltet, hat man auch ein 64Bit Schieberegister, der Aufwand ist nun sehr gering. Zu beachten ist auch, dass es in anderen IC-Familien auch Schieberegister gibt, die eventuell noch besser zu unserem Vorhaben passen.

Aber es gibt auch ganz anders gelegene Anwendungen der Multiplexer.

Beisielsweise kann ein Addierer für eine Bitstelle mit zwei 1 aus 8 Multiplexer aufgebaut werden. Es gibt ja 3 Eingangssignale a, b und Ü (von der vorhergehenden Stelle), damit auch 8 Möglichkeiten zur Bildung des Ergebnisses. Diese werden vorbelegt und nur noch ausgewählt. Sicher ist diese Variante der Bildung von Summe und Übertrag aufwendiger als durch eine spezielle logische Schaltung, zeigt aber die Möglichkeit der Nutzung von Multplexern:

   

De-Multiplexer

Nach Definition gibt es die gar nicht!
Es soll eine Zuordnung von einer Leitung auf mehrere Leitungen erfolgen.

    In diesem Fall soll das Signal von einer Leitung auf 16 Leitungen verteilt werden.
Zur Realisierung braucht man 4 Steuerleitungen (Bit0 - Bit3).
Durch die Steuerung wird genau eine Leitung ausgewählt. Das kann man auch als Prizip erklären: "es wird eine Leitung ausgewählt, das Signal am Eingang ist uninteressant!"

        An den Eingang wird z.B. intern eine 1 gelegt, dann erscheint an genau einem Ausgang auch eine 1.
Der Multiplexer dekodiert aus den dual verschlüsselten Signalen der 4 Leitungen genau einen Dezimalwert, z.B. 0101(2) -> 5(10).
Wir haben im Prinzip einen einfachen Decoder gebaut.

    Elektronisch lässt sich das auch recht einfach realisieren.
Man braucht 16 AND-Gatter mit jeweils 5 Eingängen. Die 4 Signalleitungen werden zusätzlich einmal negiert, somit stehen 8 Leitungen bereit. Je nachdem welches AND-Gatter, Adresse, durchgeschaltet werden soll, müssen 4 Verbindungen von den 8 Leitungen hergestellt werden.
Z.B. soll bei Adresse 11 das obere Gatter eine 1 ausgeben. Die Zahl 11(dez) hat die duale Codierung 1011. Um eine 1 auszugeben müssen alle anderen 4 Leitungen eine 1 haben, das geht, wenn S3, S1 und S0 direkt auf das Gatter gelegt werden, von S2 wird das negierte Signal genutzt.
Somit liegt am Gatter 1 AND 1 AND 1 AND 1 AND 1 = 1 und da ist das Ergebnis 1
Man braucht nun die 1 gar nicht mehr durchschalten, denn 1 AND 1 AND 1 AND 1 ist ja bereits 1, also kommt man mit AND-Gattern mit 4 Eingängen aus.
Man muss sich immer wieder daran erinnern, dass Nichts durchgeschaltet, sondern nur eine Adresse ermittelt werden soll!

Anders dagegen bei Adresse 5(dez).
Aufs Gatter wird S3n, S2, S1n, S0 gelegt. Die Signale haben die Werte 1011. Für das Gatter Adresse 5 bedeutet das, es liegt am Eingang 0, 0, 0, 1, am Ausgang kann nur eine 0 erscheinen!


        Anders dargestellt, sieht dann der Umschalter (Multiplexer) etwa so aus. Das linke Bild zeigt den Multiplexer allgemein und rechts die gleiche Situation mit der Ansteuerung des Wertes 1011(dual).
Nur wenn das Muster der Signale mit der Bitfolge übereinstimmt, wird dort auch eine 1 ausgegeben.
Aber es gibt ein Problem, es gibt nicht die Stellung aus, egal welches Muster anliegt, es wird immer eine Übereinstimmung geben. Auch wenn 0000 anliegt, wird eben eine 1 an der Stelle 0 ausgegeben. Aus diesem Problem kommt man nur raus, indem man z.B. die Adresse 0 nicht benutzt, zumindest nicht für die Auswahl oder man braucht pro Ausgang einen zusätzlichen elektronischen Schalter, der den Ausgang zu bestimmter Zeit durchschaltet, das erfordert eine weitere Leitung.

Nicht ohne Grund wurde die Variante aus 16 ein Signal auswählen vorgestellt, denn man könnte auch 5 Signale verwenden wollen, das geht, aber was bietet die Industrie an, man muss es auch einfach realisieren können!
Und genau für die 4 Signale hat die Industrie einen Baustein anzubieten, den IC 4514 und 4515.

    Im Unterschied zur besprochenen Variante gibt es hier am Eingang 4 elektronische Schalter, die festlegen, ob die Signale weitergestellt werden, gesteuert durch das Signal Strobe (EL). Dann folgen 4 RS-Latch, die das Signal speichern.
Danach erfolgt in zwei Stufen die Zuordnung zu den Ausgängen. In der zweiten Stufe ist jeweils wieder ein elektronischer Schalter integriert, gesteuert durch das Signal INHB/T (En), es legt fest, ob am Ausgang ein Signal erscheint oder nicht.
Je nach Baustein (4514/4515) wird der Ausgang noch negiert.


    Wie immer müssen die Eingänge mit einem Pegel belegt sein, alle Eingänge werden mit einem Pull-Down-Widerstand auf 0 gelegt, der Schalter legt dann eine 1 auf den Eingang.
Das EL-Signal wird auf 1 gelegt, da ja der Decoder immer am Bus "hören" muss.
Mit En kann eine Selektion des Bausteins vorgenommen werden. Er hat intern schon den entsprechenden Ausgang aktiviert, nur erscheint es wegen des Schalters nicht am Ausgang.

    Was wir mit der Anordnung nun können, ist ein Signal aus 16 auszuwählen.
4 Leitungen werden durch das System gezogen. An diese wird an beliebiger Stelle ein Decoder mit entsprechender Codierung angeschlossen. Alle decoder "horchen" nun an den 4 Leitungen und wenn die eingestellte Codierung auftritt, senden sie ein Signal aus.
Natürlich kann man auf einem Decoder auch mehrere Signale decodieren, es wird ja immer eine andere Leitung ausgewählt.
Auch die umgekehrte Variante ist möglich, es wird an mehreren Decodern das gleiche Signal ermittelt.
Diese Schaltungsvariante kann man als Bus-System bezeichnen!
Weitere Informationen findet man auch unter: Steuer-Module (Elektrische Steuerung einer Modul-Modelleisenbahnanlage).

Kaskadieren der Multiplexer

    Erweiterung auf 8-Bit-Bus

Kaskadierung ist das Hintereinander bzw. Zusammenschalten von einzelnen Baugruppen/Elementen zu größeren Systemen!

Darüber müssen wir uns nun Gedanken machen, da mit 4 Leitungen nur aus 16 möglichen Varianten ausgewählt werden können, also 16 Adressen. Es kann sein, dass wir damit nicht auskommen, z.B. wollen wir 8 Leitungen verwenden, dann sind 256 Adressen möglich.

Das kann man so realisieren, dass ein Multiplexer (Mux0) 16 andere Multiplexer (Mux1 bis Mux16) steuert. Der höherwertige Teil des Busses, Signal 4 bis 7, steuern Mux0. Die anderen 4 Signale werden parallel auf Mux1 bis Mux16 gelegt. Damit nun nicht bei allen Mux i bei Ansteuerung 1011(dual) überall die 11(dez) ausgegeben wird, wird Mux0 zur Selektion genutzt. Das geht, da bis auf einen Ausgang alle Ausgänge der Mux0 0 sind kann man wieder vor jeden Eingang einen elektronischen Schalter setzen. Somit wird mit 00001011 nur die 11(dez) der Mux1 aktiv!


    Mit den Bausteinen 4515 und 4514 lassen sich real solche Schaltungen aufbauen.
Besonders günstig erweist sich, dass der Baustein 4515 als aktiver Ausgang eine 0 bereitstellt. Damit spart man 16 Negatoren, denn nun kann das Ausgangssignal direckt auf den En Eingang der folgenden Multiplexer gelegt werden. Für diese verwenden wir den Multiplexer 4514, der gibt als Ausgang eine 1 heraus, der kann dann direckt auf eine Schaltstufe gelegt werden, z.B. über einen Widerstand auf die Basis eines Transistors.

    Erweiterung auf 12-Bit-Bus

Und eine Erweiterung ist ohne Probleme möglich.
Definiert man die eben erarbeitete Schaltung als Block, so kann man mit 16 solcher Blöcke und einem weiteren Multiplexer 1 aus 16 (z.B. 4515) davor ein 12 Bit Bussystem schaffen und somit 4096 Adressen bereitstellen. Das ganze ist dann ein Multiplexer 1 aus 4096.
Der Schaltungsaufwand nimmt nun aber zu, man muss entscheiden ob man das will.
Weitere Informationen zum allgemeinen und praktischen Aufbau zu Multiplexersystemen erhält man auch unter:
Gedanken zu einer privaten Modulanlage
Elektonische Steuerung der Modulanlage

Da wir kein Signal auf die 4096 Stellen verteilen, sondern nur aus dem binär übertragenen Signal eine Adresse heraussuchen, kann man besser von einem Decoder sprechen.

In gleicher Weise ginge auch ein 16-Bit Bussystem, dann mit 65536 Adressen.

Die eben dargestellten Varianten der Nutzung von Multiplexer dienen der Steuerung einer Modul-Modelleisenbahnanlage, mit der Zielstellung, dass jede Schaltstelle auf einem Modul eine Adresse zugeordnet bekommt und diese unabhängig von dem Zusammenbau der Module immer diese Adresse behält.

Der Schaltungstechnische Aufwand scheint gewaltig zu sein, ist auch so wenn alles aufgebaut werden soll, es gibt beim praktischen Aufbau denn doch größere Einsparungen. Das kann man auch bei Elektonische Steuerung der Modulanlage nachlesen.

 

"R-Timmi muxt"
zurück zur Start-Seite