B. Kainka, H.- J. Berndt
Vorwort
Auf den meisten
PCs scheinen die Tage des alten Betriebssystems DOS endgültig gezählt.
Die breite Einführung von Windows hat einerseits zu erhöhtem
Komfort geführt. Andererseits bedauern gerade viele Hobbyanwender,
daß vieles nun nicht mehr so ohne weiteres geht, was unter DOS kein
Problem war. Ein Windows-Programm hat nicht mehr in gleicher Weise die
vollständige Kontrolle über den Rechner wie ein DOS-Programm.
Unter DOS wurden zahlreiche sehr einfache Anwendungen entwickelt, die direkt auf Schnittstellenleitungen des PC zugreifen. Leuchtdioden oder einfache Schalter lassen sich ja ohne weitere Hilfsmittel z.B. direkt an eine COM-Schnittstelle anschließen. Auch einfache Schaltungen zur Steuerung externer Hardware können direkt angesteuert werden. Unter Windows erscheint dieser einfache Ansatz zunächst versperrt. Aber wozu die lange Vorrede, wenn es nicht doch Lösungen gäbe. Dieses Buch will Möglichkeiten des direkten Zugriffs auf die Schnittstellen unter Windows zeigen.
Ziel des Buchs ist es unter anderem, viele bereits vorhandene Schaltungen wieder zum Einsatz zu bringen. Es baut weitgehend auf seinem DOS-Vorgänger "PC-Schnittstellen angewandt" auf. Daneben werden aber auch einige neue Ansätze gezeigt, die sich gerade mit den neuen Möglichkeiten von Windows ergeben. Allgemein wird in diesem Buch nur noch Windows 95/98 eingesetzt. Die bevorzugten Programmiersprachen sind Visual Basic und Delphi, also die Windows-Nachfolger von GW-Basic und Q-Basic sowie Turbo Pascal. Viele vorhandene DOS-Programme lassen sich mit den neuen Werkzeugen relativ einfach auf die Windows-Ebene heben.
Wir wünschen unseren Lesern viel Erfolg!
Hans-Joachim Berndt und Burkhard Kainka
Vorwort
1 Einleitung
1.1 Die PORT.DLL
1.2 DLL-Aufrufe in Visual Basic 5
1.3 DLL-Aufrufe unter Delphi
2 Die serielle Schnittstelle
2.1 DLL-Funktionen zur seriellen Schnittstelle
2.2 RS232-Zugriffe in Visual Basic
2.3 RS232-Zugriffe in Delphi
2.4 Zugriff über Portbefehle
3 Direkte digitale Ausgaben
3.1 Zeitschaltuhr
3.2 Ansteuerung von Servos
3.3 Schrittmotorsteuerung
4 Direkte digitale Eingaben
4.1 Zeitliche Registrierung von Ereignissen
4.2 Nachbildung logischer Schaltungen
5 Einfache Analog/Digital-Wandler
5.1 Messung von Widerständen
5.2 Spannungsmessung
5.3 Ein 4-Kanal-A/D-Wandler
5.4 Messung an einem Transistor
6 Frequenzmessung
6.1 Software-Zähler
6.2 Temperatur- und Luftfeuchtemessung
6.3 Ein Spannungs/Frequenz-Wandler
6.4 Ein Frequenzplotter
7 Synchrone, serielle Datenübertragung
7.1 Serielle Ausgabe
7.2 Serielle Eingabe
7.3 Ein seriell auslesbarer A/D-Wandler
8 Ein Mehrzweck-Interface
8.1 Die Hardware und ihre Ansteuerung
8.2 Das universelle Meßprogramm COMPACT
8.3 Automatischer IC-Test
9 Der parallele Druckerport
9.1 Ein- und Ausgangsleitungen
9.2 Bidirektionale Druckerschnittstellen
10 Parallele Datenausgaben
10.1 Ein Funktionsgenerator
10.2 Steuerung einfacher Maschinen
11 16-Bit-Porterweiterung
11.1 Der Portbaustein 8243
11.2 Erweiterung auf 32 Portleitungen
11.3 Ein Eprommer
12 Der I²C-Bus
12.1 Datenübertragung und Adressierung
12.2 Ansteuerung über die parallele Schnittstelle
12.3 Anschluß an die serielle Schnittstelle
12.4 Der Porterweiterungsbaustein PCF8574
12.5 Der A/D- und D/A-Wandler PCF8591
12.5 Ein Speicheroszilloskop
13 Der Joystick-Port
13.1 Analoge und digitale Eingänge
13.2 Spannungsmessung
13.3 Grenzwertüberwachung
13.4 Ein Schaltausgang
13.5 Ein Digitalzähler
13.6 Joystickaufrufe über Treiber
14 Die Soundkarte
14.1 Aufnahme und Wiedergabe
14.2 Ein Oszilloskop in Excel
14.3 Ein Oszilloskop in Delphi
14.4 Berechnete Soundausgaben
14.6 Ein Hörtest mit der Soundkarte
5 Video-Capture-Karten
15.1 Darstellen eines Bildes
15.2 Meßwerte aus Farbinformationen
15.3 Längenmessung mit der Videokamera
16 Asynchrone serielle Übertragung
16.1 Auslesen einer seriellen Maus
16.2 Digitale Steuerungen über die RS232
16.3 Der ST62-Mikrocontroller-UART
16.4 Ein serieller Bus
Anhang
Literatur
Referenz zur PORT.DLL
Portbefehle
Serielle Schnittstelle
Soundkarte
Zeitroutinen
Sachverzeichnis
Jeder Versuch, mit Computern reale Prozesse zu steuern oder zu überwachen, erfordert zunächst einmal eine geeignete Verbindung zur Außenwelt des Rechners. Ein Programm muß in der Lage sein, Informationen von außen zu erfassen und Steuerungen an äußeren Geräten vorzunehmen. Die verarbeiteten Informationen können in binärer Form, also als Ja/Nein- Entscheidungen, oder als analoge Größen (größer/kleiner) vorliegen.
Das erforderliche Tor zur Außenwelt wird durch Interfaces geöffnet. Für PCs nach dem Industriestandard haben sich folgende Formen von Interfaces durchgesetzt:
- Erweiterungskarten werden in den Rechner gesteckt und erlauben höchste Arbeitsgeschwindigkeiten, sind allerdings auch mit hohen Kosten verbunden.
- Standardschnittstellen verbinden den PC mit externen Interface-Schaltungen. Üblich sind z.B. Interfaces an der seriellen RS232-Schnittstelle, die sich relativ preiswert aufbauen lassen.
- Interfaces mit einem eigenen Prozessor führen Aufgaben weitgehend ohne Datenaustausch mit dem PC durch. Der Anwender muß sich dabei zusätzlich mit der Programmierung dieser Systeme auseinandersetzen.
- Die ohnehin vorhandenen Schnittstellen des PC, also die serielle Schnittstelle, die Druckerschnittstelle und oft auch der Joystick-Anschluß, lassen sich direkt als Interface nutzen. Damit erübrigt sich für zahlreiche Anwendungen jegliche zusätzliche Hardware.
Die direkte Verwendung vorhandener Schnittstellen eignet sich besonders für einfache Versuche. So lassen sich z.B. an die serielle Schnittstelle ohne weiteres Schalter oder Leuchtdioden direkt anschließen, womit viele interessante Projekte möglich werden. Die Druckerschnittstelle stellt eine größere Zahl direkt ansprechbarer Leitungen zu Verfügung, mit denen hohe Übertragungsgeschwindigkeiten zu erreichen sind.
Viele Einschränkungen lassen sich durch einfache Zusatzschaltungen überwinden. So ist die Erfassung von Spannungen mit wenigen zusätzlichen Bauteilen möglich, wenn man etwas komplexere Programme und geringere Geschwindigkeiten in Kauf nimmt. Auch Projekte mit vielen Ein/Ausgabeleitungen lassen sich mit geringem zusätzlichen Aufwand durchführen.
Allgemein werden in diesem Buch Verfahren vorgestellt, die mit weniger Hardware und etwas rechenzeitintensiveren Programmen arbeiten. Der Leser sollte Vorerfahrungen mit einer Programmiersprache haben und über Grundkenntnisse der Elektronik verfügen. Die vorgestellten Schaltungen sind meist so einfach, daß sie problemlos auf Lochrasterplatinen aufgebaut werden können. Alle Projekte in diesem Buch sind in sich geschlossenen und eignen sich für den direkten Nachbau. Darüber hinaus stellen sie Bausteine für weitergehende Entwicklungen zur Verfügung, wobei die komplexeren Verfahren die sichere Anwendung geeigneter Meßgeräte erforderlich machen. Der interessierte Leser sollte z.B. über ein Oszilloskop verfügen.
Die in diesem Buch eingesetzten Programmiersprachen für das Betriebssystem Windows95/98 sind Visual Basic 5 und Delphi 3 und 4. Alle Programmbeispiele befinden sich mit auf der CD zum Buch.