Hiermit können Sie alte Karten an beliebig neuen Rechnern betreiben. Freilich lohnt sich das nur bei preisintensiven Spezialkarten (typischerweise Messtechnik und Industrieelektronik), die es nicht anderweitig neu zu kaufen gibt.
Dann wäre es immer noch möglich, diese Karte am Druckerport
(25-polige SubD-Buchse) zu betreiben;
vorausgesetzt, Ihr Rechner hat das noch: ein bidirektionales
Parallel-Interface, auch als ECP und EPP bekannt.
Hat man kein Druckerport, kann man eine entsprechende PCI-, PCIexpress- oder
ExpressCard-Karte für vergleichsweise wenig Geld kaufen.
Nur bei Notebooks ohne ExpressCard-Slot sieht's finster aus.
An die ISA-Karte werden bestimmte Voraussetzungen gestellt:
Klar: Am besten wäre open-source. Dann kann man auch über USB gehen. Aber das ist bei den Karten eher unwahrscheinlich.
Damit könnten Sie unter anderem die folgenden Karten betreiben:
Der parallele Betrieb von solchen Karten ist problemlos möglich.
Der vorgestellte Treiber ist für Windows 3.x/9x/Me. Für Windows NT/2k/XP/Vista/7 ist der Aufwand für 16-Bit-Programme noch geringer: Es wird nur ein VDD benötigt, der im Userspace läuft. Lässt sich leicht selbst bewerkstelligen.
Bei 32-Bit-Programmen (eher selten in Verbindung mit ISA-Karten) wird's kniffliger: Entweder werden die Portzugriffe wie beim USB2LPT abgefangen (wenn ein NT-Treiber dabei ist) oder der Prozess im Debug-Modus betrieben mittels meiner InpOut32.dll. (mit oder ohne Treiber). Letzteres ist der einzige Weg unter 64-Bit-Betriebssystemen.
Der Schaltungsaufwand ist geradezu lächerlich: 3 Standard-Schaltkreise, keine GAL, kein FPGA, kein Mikrocontroller!
Beachten Sie aber die Stromversorgung der Karte; im Idealfall begnügen sie sich mit +5 V und +12 V, dann genügt ein Verlängerungskabel aus dem Computergehäuse heraus. Ansonsten müssten Sie Ihr Netzteil anzapfen, oder benutzen ein altes Computernetzteil. Bei geringem Stromverbrauch können Sie einen Netztrafo auf der Leiterplatte mit unterbringen.
Der oben angegebene Schaltplan und das Board-Layout setzt stillschweigend voraus, dass die Karte nur +5 V und +12 V benötigt! Die Einspeisung erfolgt mit einem Floppy-Stecker. Werden weitere Spannungen benötigt, ist eine problemspezifische Stromversorgung sicherlich am besten.
Das Druckerkabel (ein SubD-Verlängerungskabel) muss bei dem angegebenen Schaltplänen so kurz wie möglich, maximal 50 cm lang sein. Am besten erfolgt der Anschluss direkt, ohne Kabel, direkt am PC oder an der Dockingstation.
Sind längere Kabel gewünscht, müssen:
Diese Variante benötigt ein paar Gatter mehr und ist inkompatibel,
hat aber den Vorteil mit nur einem E/A-Befehl pro E/A-Befehl
(bei gleich bleibender Adresse) auszukommen.
Bei Karten mit hohem Datendurchsatz, deren Software den Befehl
rep insb
bzw. rep outsb
verwendet, kann das von großem Vorteil sein!
Dazu wird zwingend ein EPP-Port vorausgesetzt. Das sind heutzutage faktisch alle Parallelports — ggf. muss man in der Spezifikation vor dem Kauf nachgucken. Bei BeyondLogic ist deren Programmierung sehr gut erläutert.
Beim lptisa muss SELIN bzw. STROBE bei jedem Byte „zu Fuß“ (= Bit-Banging) gesteuert werden. (= langsamer aber leichter kontrollierbar)
Der zur Virtualisierung der Hardware erforderliche Treiber LPTISA.386 (für Windows 3.1, 95, 98 und Me) ermöglicht den Hardware-Zugriff ohne Änderung der Software! Allerdings verlängert sich die Zugriffszeit auf das drei- bis siebenfache, Exception-Behandlung von Windows nicht eingerechnet.
Für NT-basierte Systeme ist vorgesehen, mein InpOut32.dll entsprechend zu erweitern, wenn Bedarf besteht. Dies wäre dann sowohl für 16- als auch für 32-Bit-Programme wirksam.
Um Portzugriffe aus DOS- und 16-bit-Windows-Programmen unter NT-basierten 32-Bit-Betriebssystemen (2k/XP/Vista/7) abzufangen benötigt man nur einen einfachen Virtuellen Gerätetreiber. Dieser läuft im User Mode. Damit ließen sich beispielsweise Portzugriffe auf eine GPIB-Karte abfangen und auf einen USB-GPIB-Adapter umleiten (der hoffentlich der USB-TMC entspricht).
Wie man einen solchen Treiber schreibt war hier dokumentiert. Internetquellen sind elend vergänglich; hier habe ich selbst so etwas ähnliches programmiert, was eine sinnvolle Quelltextvorlage darstellt. Das Stichwort auf einer älteren MSDN-CD ist InstallIOHook. In der aktuellen MSDN-Ausgabe und im Internet sind sämtliche Infos dazu verschwunden, es funktioniert trotzdem noch.
eppisa.psz 2003-06-04 11:35 27K Als PDF im Querformat Als Bild lptisa.psz 2003-01-20 19:49 23K Als PDF im Querformat Als Bild lptisa.scz 2003-01-20 19:49 7.8K UltiCap [ausgepackt] lptisa.zip 2003-05-12 00:06 27K VxD [Einsicht] eagle.zip 2015-12-20 00:06 27K Eagle-Layoutdaten [Einsicht]
Siehe auch: Wie man mit Software gänzlich fehlende Hardware emuliert