B. Kainka, H.- J. Berndt

PC-Schnittstellen unter Windows


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

 

1 Einleitung

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.