parallelport IO Interface

background image

Die Steuerung der unterschiedlichsten
Aktionen über den PC-Parallelport ist
besonders beliebt, weil keine Eingriffe in
die PC-Hardware notwendig sind. Diese
Schaltung ist ein universelles Parallel-
Input/Output-Interface (UPIO) mit acht
Vor- und acht Rückwärtskanälen. Die
Schaltung ist unkritisch im Aufbau, die
zugehörige Windows-Software ist beson-
ders bedienerfreundlich gestaltet.

Schaltung

Der Aufwand an Hardware hält sich in
engen Grenzen. Wie aus Bild 1 hervor-
geht, werden nur gängige, leicht erhältli-
che Standard-Bauteile verwendet. Ein
8-bit-Latch vom Typ 74HCT574 (IC3, oben
im Bild) sorgt dafür, dass die Schaltzu-
stände der acht Ausgangsleitungen
während des gesamten Schreib-/Lese-
Zyklus stabil sind. Er steuert über den
8-fach-Treiber ULN2803 (IC1) die Relais
Re1...Re8. In umgekehrter Signalrichtung
stellt der Tri-State-Buffer 74HCT241 (IC5)
die Verbindung der acht Eingangsleitun-
gen von den Steckverbindern K12 und K13
zum PC-Parallelport her. Da ein PC-Paral-
lelport prinzipiell nur über vier Eingangs-
leitungen verfügt, müssen die Signale in
zwei Zyklen in den PC eingelesen werden.
Ein Steckernetzteil, das eine unstabili-
sierte Gleichspannung von ca. 12 V lie-
fert, kann die Stromversorgung überneh-
men. Der zur Schaltung gehörende Span-
nungsregler 78L05 (IC2) setzt die

COMPUTER& PERIPHERIE

58

Elektor

4/2000

Parallelport-I/O-Interface

Mit Windows-Software für den PC

Die acht Relais dieser Schaltung (oder andere Aktuatoren) können mit der zugehörigen
Windows-Software über den PC-Parallelport gesteuert werden. Gleichzeitig stehen acht
digitale Eingangsleitungen für Rückmelde- oder sonstige Signale zur Verfügung.

Bild 1. Schaltung des Parallelport-
Interface.

K10

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

1

2

3

4

5

6

7

8

9

74HCT574

IC3

12

13

14

15

16

17

18

19

EN

11

C1

1D

2

3

4

7

8

9

5

6

1

IC1

2803

VEE

+VS

ULN

11

12

13

14

15

16

17

18

I1

I2

I3

I4

I5

I6

I7

I8

O1

O2

O3

O4

O5

O6

O7

O8

10

1

2

3

6

7

8

4

5

9

K11

1

2

1

IC4a

D9

1N4001

IC5a

12

14

16

18

EN

4

6

8

1

2

IC5b

3

5

7

9

EN

13

15

17

19

11

C1

470µ

25V

K13

K12

R10

4x 10k

1

5

4

3

2

R11

4x 10k

1

5

4

3

2

C10

C13

C6

C9

RE1

D1

R1

22

RE2

D2

R2

22

K1

K2

RE3

D3

R3

22

RE4

D4

R4

22

K3

K4

RE5

D5

R5

22

RE6

D6

R6

22

K5

K6

RE7

D7

R7

22

RE8

D8

R8

22

K7

K8

78L05

IC2

C4

100n

C3

100n

C2

100µ

25V

R9

820

D10

K9

D11

1N4001

12V

5V

4x 22n

4x 22n

13

12

1

IC4f

11

10

1

IC4e

9

8

1

IC4d

5

6

1

IC4c

3

4

1

IC4b

IC5

20

10

C14

100n

IC4

14

7

C15

100n

IC3

20

10

C5

100n

STROBE

D0

D1

D2

D3

D4

D5

D6

D7

12V

12V

12V

12V

12V

12V

12V

12V

12V

IC5 = 74HCT241

IC4 = 74LS05

5V

5V

5V

002011 - 11

Hardware-Entwurf von D. Aggelos

background image

Spannung auf die Betriebsspannung 5 V
für IC3...IC5 herab. Das Treiber-IC
ULN2803 (IC1) liegt ebenso wie die
Relais-Spulen an der unstabilisierten
12-V-Spannung. Die Stromaufnahme der
Schaltung hängt im Wesentlichen von
den Spulenwiderständen der Relais ab.
Die Netzteil-Leistung muss so bemessen
sein, dass alle acht Relais gleichzeitig
aktiviert werden können.

COMPUTER& PERIPHERIE

59

4/2000

Elektor

Stückliste

Widerstände:

R1...R8 = 22

R9 = 820

R10,R11 = SIL array 4 x 10 k

Kondensatoren:

C1 = 470

µ/25V stehend

C2 = 100

µ/25V stehend

C3,C4,C5,C14,C15 = 100 n
C6...C13 = 22 n

Halbleiter:

D1...D8 = 1N4148
D9,D11 = 1N4001
D10 = LED
IC1 = ULN2803
IC2 = 78L05
IC3 = 74HCT574
IC4 = 74LS05
IC5 = 74HCT241

Außerdem:

K1...K8 = 3-polige

Anschlussklemme für
Platinenmontage, Raster 5mm

RE1...RE8 = 12-V-Relais für

Platinenmontage, z.B. Siemens
V23040-A0002-B201

K9 = 2-polige Anschlussklemme

für Platinenmontage, Raster 5mm

K10 = 36-polige Centronics-

Buchse für Platinenmontage

K11 = 3-polige Stiftleiste mit

Jumper

K12,K13 = 4-polige Stiftleiste
Platine EPS 002011-1,
Diskette 002011-11, siehe

Serviceseiten und
www.elektor.de (kostenloser
Download für Abonnenten)

Bild 2. Platine und Bestückungsplan.

002011-1

(C) ELEKTOR

C1

C2

C3

C4

C5

C6

C7

C8

C9

C10

C11

C12

C13

C14

C15

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

H1

H2

H3

H4

IC1

IC2

IC3

IC4

IC5

K1

K2

K3

K4

K5

K6

K7

K8

K9

K10

K11

K12

K13

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

RE1

RE2

RE3

RE4

RE5

RE6

RE7

RE8

0

+

002011-1

002011-1

(C) ELEKTOR

Anzeige

background image

Platine

Für die Schaltung in Bild 1 wurde eine Platine ent-
worfen, Bild 2 zeigt das Layout und den
Bestückungsplan. Die Verbindung zum PC stellt ein
für Platinenmontage geeigneter 36-poliger Centro-
nics-Konnektor her, so dass die Schaltung über ein
normales Druckerkabel mit dem PC verbunden
werden kann. Auf der Relais-Seite sind 3-polige
Platinen-Schraubklemmen vorgesehen, deren Kon-
takte direkt an den Umschaltkontakten der Relais
liegen. Die acht in Richtung PC führenden Signal-
leitungen sind an den beiden schon erwähnten
4-poligen SIL-Konnektoren K12 und K13 verfügbar.

Original-Software

Die ursprünglich vom Entwickler dieser Schal-
tung geschriebene Steuersoftware war eine recht
kurz gehaltene Programm-Routine, sie war auf die
Anwendung als einfache Ablaufsteuerung zuge-
schnitten. Die Relais konnten nach einem vom
Anwender programmierbaren zeitlichen Schema
aktiviert und deaktiviert werden, wobei sowohl
die Betriebsart “Hold” (Schaltzustand halten) als
auch “One-Shot” (Schaltzustand nicht halten)
möglich war. Ferner konnte die Programm-Rou-
tine die Schaltzustände mit Hilfe die Eingangs-
leitungen abfragen.

Parallelport-Steuerung
unter Windows

Beim Testen der Original-Software wurde schnell
deutlich, dass sie einige Unzulänglichkeiten aufwies
und verschiedene Ergänzungen wünschenswert
waren. Da die Modifikation des Originals schwieri-
ger erschien als das Neuschreiben, entschied sich
das Elektor-Labor für eine neu zu erstellende, mög-
lichst universell verwendbare Programm-Routine.
Unter DOS und Windows 3.1 ist es relativ einfach,

von der Ebene einer höheren Program-
miersprache wie Basic oder Pascal auf die
parallelen oder seriellen PC-Ports zuzu-
greifen. In Basic genügt die unkompliziert
zu handhabende IN/OUT-Instruktion, in
Pascal bietet sich hierfür die äquivalente
PORT-Instruktion an. Bei den späteren
Windows-Versionen (Windows
95/98/NT)läuft die Programmierung hard-
ware-ferner ab; hier ist es nicht mehr
möglich (und sogar verboten!), auf die
diversen Register und Speicherplätze
unmittelbar zuzugreifen. Der Grund liegt
in der Gesamtkonzeption dieser Betriebs-
systeme, die mit den unterschiedlichsten
Arten so genannter Device-Treiber arbei-
ten. Das Schreiben eines Device-Treibers
in eigener Regie ist fast immer eine ziem-
lich mühsame und zeitaufwendige
Arbeit. Oft kommt man wesentlich
schneller zum Ziel, wenn man im Inter-
net nachforscht, ob der gesuchte Treiber
nicht schon existiert. Bei unserer Suche
stießen wir bei www.entechtaiwan.com
auf eine (Shareware-)Routine mit dem
Namen “TVicPort”, geschrieben von Vic-
tor Ishikeev, die unseren Zweck erfüllt.
Die Routine existiert in verschiedenen
Versionen, unter anderem für Delphi (Ver-
sionen 2 bis 5), Java Builder (Versionen 1,
3 und 4), Visual Basic (Version 6) sowie
Borland C++ und MS Visual C++ für
Windows 95/98/NT.
Wie nicht anders zu erwarten, ist der Par-
allelport im Zeitalter der objektorientierten
Programmierung nichts anderes als ein
object mit den verschiedensten properties,
das auf die diversesten events antwortet.
Bei diesem Konzept hat der Programmierer
leichten Zugriff auf das object (sprich: Par-
allelport), wobei die Steuerung über die
zum object gehörenden methods abge-
wickelt wird. An dieser Stelle soll eine
kurze Beschreibung der methods und pro-
perties
anhand des Beispiel-Programms
(eine Delphi-2-Applikation) genügen.
Die wichtigsten Prozeduren heißen Open-
Driver
und CloseDriver, von denen, wie
schon die Namen verraten, TVicPort
geöffnet bzw. geschlossen wird. Die logi-
sche Variable (Property) ActiveHW zeigt
an, ob der Port geöffnet oder geschlossen
ist bzw. ob der Treiber vorhanden oder
nicht vorhanden ist. Die Property LPT-
NumPorts
gibt die Anzahl der im System
vorhandenen Parallelports an, während
LPTNumber bestimmt, welcher Parallel-
port vom Treiber gesteuert wird. Die Pro-
perty LPTBaseAdress enthält die Basis-
Adresse dieses Ports. Zum Parallelport
gehört außerdem eine Property mit dem
Namen Pin, ein aus 25 logischen Varia-

blen (Bits) bestehendes Array, das die
logischen Zustände (States) an den Port-
Pins repräsentiert. Über dieses Array hat
der Programmierer leichten Zugriff auf
die Signale der Portleitungen. Zu unter-
scheiden sind lediglich Eingangsleitun-
gen, Ausgangsleitungen und bidirektio-
nale Leitungen.

“HWTest”
und Programmbeispiel

Das Programm “HWTest”, das sich
zusammen mit der übrigen Software auf
der Projekt-Diskette befindet, demon-
striert anschaulich, wie die Steuerung der
Hardware abläuft. Für das Erstellen eige-
ner Applikationen kann HWTest als Basis
dienen. Auch für das Programmbeispiel,
das sich ebenfalls auf der Projekt-Diskette
befindet, war HWTest die Grundlage. Die
acht Relais auf der Platine können durch
Anklicken der zugehörigen Schaltflächen
aktiviert und deaktiviert werden. Darun-
ter werden die logischen Zustände auf
den digitalen Eingangsleitungen ange-
zeigt. Falls im System mehrere Parallel-
ports vorhanden sind, kann der Port mit
dem virtuellen Drehschalter ausgewählt
werden. Bleibt nur noch hinzuzufügen,
dass die Parallelport-Steuerung natürlich
nur arbeitet, wenn zuvor der Treiber erfol-
greich geladen wurde, was durch
Anklicken der Schaltfläche “Open Driver”
geschieht. Einen Eindruck vom Erschei-
nungsbild des Programms auf dem Moni-
tor gibt Bild 3.

Entwicklungs-Werkzeuge

Der Schaltungs-Entwickler erstellte sein
Programm UPIO.exe in der Entwick-
lungsumgebung von Borland’s Delphi,
Version 1, 16 bit. Alle Original-Dateien
(.dpr, .pas, .opt und .res) sind ebenso wie
eine korrigierte und ergänzte Version auf
der Projekt-Diskette zu finden. Der Origi-
nal-Source-Code des Autors hat lediglich
informativen Charakter; er kann nicht
editiert werden, da die LPT-Komponente
fehlt. Ferner wird wegen verschiedener
anderer Probleme empfohlen, die Origi-
nal .exe-Datei nicht zu verwenden.
Vollständigkeitshalber sei noch erwähnt,
dass die Original-Schaltung mit “Protel
Schematic Capture” gezeichnet wurde,
während für das Original-Platinen-Layout
die “Advanced Schematics Software” zum
Einsatz kam. Im Elektor-Labor wurde bei-
des überarbeitet und in die hier veröf-
fentlichte Form gebracht.

(002011-1)gd

COMPUTER& PERIPHERIE

60

Elektor

4/2000

Bild 3. Das Steuerprogramm auf dem Monitor.


Wyszukiwarka

Podobne podstrony:
8bit IO Port ueber I2C Interface
IO ALL
io wyk5
7000DELUXE INTERFUNK
Interfejsy
5 interferometria id 40157 Nieznany (2)
Instrukcja obsługi interfejs KKL OPEL, BMW, VAG
Do czego przydaje się interferencja
4 Ansys Interface
gprs t6 io pl 1013
io 8 z
Fizyka 25a, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, 25 - Interferencja fal akust
Jednomodowe czujniki interferencyjne, Studia, sprawozdania, sprawozdania od cewki 2, Dok 2, Dok 2, P
BD IO 3

więcej podobnych podstron