Forum: Mikrocontroller und Digitale Elektronik Parallelport


von ->Andre-< (Gast)


Lesenswert?

Hallo zusammen,

ich stehe vor folgendem Problem:

Ich hab ein Endgerät, welches über die Parallele Schnittstelle
angesteuert wird. Nehmen wir mal an, es ist ein Drucker.

Angesteuert wird das Gerät durch zwei Steuereinheiten, die jedoch beide
nichts miteinander zu tun haben.

Beide Geräte müssen nun das Endgerät mit Daten versorgen.

Was ich benötige ist ein Umschalter, der zwischen den beiden Geräten
schaltet.
Die Umschalteinheit sollte nach möglichkeit über ein Signal die Info
bekommen, welche Steuereinheit sendet. Also keine manuelle
Umschaltung.

Für die Umschalteinheit möchte ich gern einen µC verwenden.
Jedoch fehlt mir noch der passende Baustein, mit dem ich die
Datenleitungen des Parallelports schalten kann.

Und genau danach suche ich.

Hab schon gegoogelt, finde dann aber immer nur diese Data-T-Switche,
die erstmal ausscheiden.
Bei Maxim bin ich auch nicht so richtig fündig geworden.

Habt ihr eine Idee, mit welchem Bausteinchen ich das umschalten der
Datenleitungen realisieren könnte ?

Danke schonmal im vorraus....
Andre.

von Bernd Walter (Gast)


Lesenswert?

Was spricht gegen die Klassiker 74LS245/74LS541?
Ich habe zu C64 Zeiten damit mal eine aktive Druckerweiche gehabt, um
den Drucker am PC und am C64 zu betreiben.
Sobald ein Rechner gesended hat wurde ihm der Drucker zugewiesen und
der andere Rechner bekam solange ein Busy.
Mit einer RC Schaltung wurde zu Zuweisung irgendwann wieder
freigegeben.

von Profi (Gast)


Lesenswert?

Profis Tipps:
Das ist nicht so schwierig, wenn einige Punkte beachtet werden:
Es gibt Controller, die eine Centronic quasi eingebaut haben, das
heisst da meist strobed mode parallel input.
Es geht aber auch diskret. Dazu brauchst Du nur ein Flipflop, das mit
/Strobe (Pin1) gesetzt und einem Pin des Controllers gelöscht wird.

Den Ausgang legst Du auf Busy (Pin ) und auf den Interrupt des UC
(jeweils Polarität beachten).

Bei jedem Byte vom PC wird das FF gesetzt und dem PC mitgeteilt, dass
er momentan keine weiteren Daten senden darf. Die Interrrupt-Routine
liest das Byte ein und löscht das FF, evtl. gibt sie auch noch ein
Acknowledge an den PC und das Spiel beginnt von neuem.

Alternativ kannst Du versuchen, den Strobe auch direkt auf den
Interrupt zu legen und das Busy auf ein Port. Dann musst Du im
Interrupt-Handler als erstes Busy setzen.
Das ist aber nicht ganz Centronic-konfonm, da von Strobe bis Busy nur
ein paar ns vergehen dürfen.
Hier heißt es probieren, da das Busy im PC auch nicht gleich wieder
abgefragt wird.
So sparst Du Dir das FF, aber die Übertragung ist nicht mehr so
sicher.

Wenn Du 2 oder mehr Kanäle auf ein Gerät ausgeben willst, brauchst Du
im Controllerprogramm jeweils ein FIFO / Ringbuffer und eine
Timeout-Logik, die den Drucker "an einen neuen Job vermittelt",
sobald der aktuelle keine Daten mehr schickt.

Schwieriger wird es, wenn Daten bidirektional gehen sollen, wie bei den
meisten modernen Druckern. Aber ich habe den Eindruck, du willst gar
keinen Drucker ansteuern.

von ->Andre-< (Gast)


Lesenswert?

@Profi:

Das mit dem Drucker war nur ein Beispiel.

Es wird so sein, das alle 3 Geräte, also die beiden Steuereinheiten, so
wie auch das Endgerät, eigenentwickelte Hardware sein wird.

Grundlegend geht es nur darum, das ich halt einen Umschalter brauch,
der 1:1 die Datenleitungen schaltet.

@Bernd:

Danke für die Info.
Hab bei Reichelt den 74ALS541 gefunden. Das sollte er sein, oder ?

Gruß,
Andre.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.