Paraport

background image

Man kann sich es kaum noch vorstel-
len, aber der Personal-Computer
wurde ursprünglich einzig zur
Automatisierung des Büroalltags ent-
worfen. So hat man seinerzeit diese
elektronische Sekretärin mit
Anschlußmöglichkeiten für
Standardgeräte wie Drucker oder
Modem ausgestattet, verschwendete
aber nicht den geringsten Gedanken
daran, den Anwendern analoge
und/oder digitale Ein- und Ausgänge
für Steuer- und Regelaufgaben zur
Verfügung zu stellen.
Paraport ist eine Schaltung oder bes-
ser ein komplettes System, daß mit
geringem technischen und finanziel-
len Aufwand einen normalen PC mit
einer großen Zahl von I/O-Leitungen
ausstattet. Dazu nutzt Paraport die par-
allele Standard-Druckerschnittstelle. In
der maximalen Ausbaustufe können
256 I/O-Leitungen realisiert werden,
und zwar nicht nur je 128 Ein- und
Ausgänge, sondern in fast jeder belie-
bigen Verteilung.
Die Eingänge arbeiten auf TTL-Niveau.
Die Ausgänge sind Puffer mit offenem
Kollektor und können direkt auch
schwerere Lasten schalten. Dank des
modularen Aufbaus ist der Anwender in
der Lage, genau die Ausbaustufe zu
verwirklichen, die er als ideal ansieht. So
kann Paraport so preiswert und so kom-
pakt wie möglich gehalten werden.

Ein Ansatz

Paraport ist modular aufgebaut und
besteht aus einem Interface zur
Druckerschnittstelle (Bus-Einheit) und

X-12 - 2/99 Elektor

EXTRA

———————————————————— PC-P

LUS

Nur einige wenige Bauteile verwandeln die Standard-
Druckerschnittstelle des PCs in ein I/O-System mit
maximal 256 I/O-Leitungen. Wir stellen die dazu not-
wendige Hardware und ein kleines BASIC-Programm
vor. Doch auch in anderen Programmiersprachen
kann die Hardware angesteuert werden.

Entwurf von V. Himpe

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

K1

D25

K3

10

11

12

13

14

15

16

1

2

3

4

5

6

7

8

9

K2

7805

U1

C4

100

µ

25V

C3

47

µ

10V

C1

100n

C2

100n

5

6

1

U2c

5

6

1

U3c

9

8

1

U2d

9

8

1

U3d

11

10

1

U2e

11

10

1

U3e

13

12

1

U2f

13

12

1

U3f

1

2

1

U3a

RA1

9x 47k

STROBE

D0

D2

D1

D3

A2

A3

A0

A1

R1

100k

U2

14

7

U3

14

7

U2 = 74LS04

U3 = 74LS05

5V

5V

5V

5V

5V

GND

+12V

990025 - 11

STR

STR

1

2

1

U2a

3

4

1

U2b

3

4

1

U3b

5V

5V

1

2

3

4

5

6

7

8

9

10

Paraport

256 I/O-Leitungen an der Druckerschnittstelle

Bild 1. Das Schaltbild der Bus-unit, an die sämtliche I/O-Module angeschlossen werden.

background image

den eigentlichen I/O-Einheiten. Jede
I/O-Einheit besitzt acht TTL-kompatible
Eingänge und acht gepufferte
Ausgänge. Es können maximal 16 I/O-
Einheiten an die Bus-Unit angeschlos-
sen werden. In der höchsten
Ausbaustufe sind also 17 Platinen mit
der Druckerschnittstelle verbunden.

Port-Verlängerung: bus-unit

In Bild 1 ist der Aufbau der Bus-Einheit
zu sehen. Es handelt sich dabei ledig-
lich um eine Anzahl von Invertern, die
die Signale der Druckerschnittstelle
adäquat puffern. Da die Standard-
Druckerschnittstelle vor allem als
Ausgang eingesetzt wird, finden sich
auch nur wenige Steuer-Eingänge an
dem Port. Vom PC werden die
Datenleitungen D0...D3 als digitale
Ausgänge, die Steuerleitungen ackno-
wledge
, busy, paper empty und sel-
ect
als digitale Eingänge genutzt. Die
Adressierung der maximal 16 I/O-

PC-P

LUS

———————————————————

Elektor

EXTRA

X-13 - 2/99

K5

10

11

12

13

14

15

16

17

18

19

20

1

2

3

4

5

6

7

8

9

K4

10

11

12

13

14

15

16

1

2

3

4

5

6

7

8

9

D0

D2

D1

D3

A2

A3

A0

A1

5V

S1

8243-

MCS48

PROG

U4

P40

P41

P42

P43

P50

P51

P52

P53

P20

P21

P22

P23

P60

P61

P62

P63

P70

P71

P72

P73

23

22

21

20

19

18

17

13

14

15

16

12

24

11

10

CS

2

3

4

5

1

9

8

7

6

8x 47k

RA3

8x 47k

74LS688

U7

1P=Q

COMP

11

13

15

19

G1

17

18

12

14

16

1

2

4

6

8

0

7

3

0

5

7

9

7

P

Q

5V

5V

5V

STR

STR

3

4

5

6

U7

20

10

C5

47

µ

10V

990025 - 12

5V

1

2

8

7

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

U6

2803

VEE

+VS

ULN

11

12

13

14

15

16

17

18

I0

I1

I2

I3

I4

I5

I6

I7

O0

O1

O2

O3

O4

O5

O6

O7

10

1

2

3

6

7

8

4

5

9

U5

2803

VEE

+VS

ULN

11

12

13

14

15

16

17

18

I0

I1

I2

I3

I4

I5

I6

I7

O0

O1

O2

O3

O4

O5

O6

O7

10

1

2

3

6

7

8

4

5

9

ULN2803

OUT 1

OUT 0

OUT 2

OUT 3

OUT 4

OUT 5

OUT 6

OUT 7

IN 0

IN 1

IN 2

IN 3

IN 4

IN 5

IN 6

IN 7

VEE

+VS

10

11

12

13

14

15

16

17

18

1

2

3

4

5

6

7

8

9

Bild 2. Maximal 16 dieser I/O-Module können eingesetzt werden.

Bild 3. Der innere Aufbau des 82C43: ein Controller, der über fünf 4-bit-Ports verfügt.

background image

Module erfolgt über die übrigen
Ausgänge D4...D7. Letztendlich erfüllt
auch das Strobe-Signale eine
Funktion: Es sorgt dafür, daß Paraport
die Daten oder Befehle auf den
Leitungen D0...D3 im richtigen
Moment liest.

I/O-Module

Die I/O-Module, deren Aufbau in Bild
2
zu erkennen ist, werden an der Bus-
Platine angeschlossen. Am Eingang
jedes I/O-Moduls befindet sich ein
82C43, ein sogenannter Port-
Expander, der von Intel speziell ent-
wickelt wurde, um die I/O-
Möglichkeiten des 8048 (des
Vorgängers der berühmten 8031/51-
Mikrocontroller) zu erweitern. Hier ein
kurzer Blick ins Innere dieses Bausteins:
Der Chip wird in einem 24poligen
Gehäuse geliefert und umfaßt fünf
bidirektionale 4-bit-Ports (P2, P4...P7)

X-14 - 2/99 Elektor

EXTRA

———————————————————— PC-P

LUS

Bild 4. Das Platinenlayout der Bus-Einheit samt Bestückungsplan stammt vom Autor.

Bild 5. Layout und Bestückungsplan des I/O-Moduls.

Stückliste Bus-Einheit

Widerstände:
R1 = 47 k

RA = 9

⋅47 k Widerstandsarray SIL

Kondensatoren:
C1,C2 = 100 n

C3 = 100

µ/25 V

C4 = 47

µ/25 V

Halbleiter:
U1 = 7805
U2 = 74LS04
U3 = 74LS05

Außerdem:
K1 = 25poliger Sub-D-Verbinder, männ-
lich, gewinkelt für Platinenmontage
K2 = 2polige Platinenanschlußklemme
RM5

K3 = 2

⋅8poliger Pfostenverbinder,

gewinkelt, mit Schutzkragen und
Auswerfern mit Gegenstück für Aufpreß-
Kabelmontage
20 cm 16poliges Flachbandkabel

Stückliste I/O-Einheit
(maximal 16 Stück)

Widerstände:

RA1,RA2 = 8

⋅47 k Widerstandsarray SIL

U5,U6 = 8

⋅330 Ω Widerstandsarray

(DIL)

*

Kondensator:

C5 = 10

µ/25 V

Halbleiter:
U4 = 82C43 oder 8243
U5,U6 = ULN2803 U7 = 74LS688

Außerdem:

K4 = 2

⋅8poliger Pfostenverbinder,

gewinkelt, mit Schutzkragen und
Auswerfern mit Gegenstück für Aufpreß-
Kabelmontage

K3 = 2

⋅10poliger Pfostenverbinder,

gewinkelt, mit Schutzkragen und
Auswerfern
SW1 = 4facher DIL-Schalter

*: siehe Text

background image

sowie die beiden Steuereingänge
prog und cs. Die Innenblockschaltung
des 82C43 zeigt Bild 3. Die
Portnumerierung mag auf den ersten
Blick seltsam erscheinen, ergänzt aber
die Bezeichnungen der Ports des 8048.
Einer der 4-bit-Ports (P2) wird genutzt,
um mit der Druckerschnittstelle zu kom-
munizieren und ist darum direkt mit
den Ausgangsleitungen D0...D3 ver-
bunden. So bleiben 16 Leitungen frei
für die I/O-Funktionen. Das Strobe-
Signal der Druckerschnittstelle ist an
den Prog-Eingang des 82C43 gekop-
pelt und deshalb für das Lesen der
Daten direkt verantwortlich. Der letzte
Steuereingang dieses Chips ist mit
einem Adreßdekoder verbunden, der
mit einem 74LS688 aufgebaut ist.
Dieses IC ist ein alter Bekannter und
wird häufig als Adreßdekoder einge-
setzt. Mit einem vierfachen DIP-
Schalter (SW1) läßt sich die Modul-
Adresse zwischen 0 und 15 einstellen.
Stimmt diese mit der Adresse auf dem
Adreßbus überein, wird der Ausgang
des 74LS688 Low: Die I/O-Einheit ist
selektiert.
Wie im Schaltbild zu sehen, sind alle
I/O-Leitungen in gleicher Weise konfi-
guriert. Dies bedeutet, daß im Prinzip
jede Leitung wahlweise als Ein- oder
Ausgang betrieben werden kann. Da
die verwendeten Puffer immer zu acht
auf einem Chip sitzen, muß man aller-
dings immer Achtergruppen als Ein-
oder Ausgänge festlegen.
Fällt die Wahl auf Eingänge, entfällt
der Leistungstreiber ULN2803 und wird
durch ein 8faches Widerstandsarray (á
330

Ω) ersetzt. Achten Sie darauf, daß

das Widerstandsarray die Eingänge
mit den korrespondierenden
Ausgängen verbindet. Richtig ist, wenn
die IC-Anschlußpunkte 9 und 10 frei
bleiben. Die Widerstände haben die
Aufgabe, die Eingänge vor zu hohen
Eingangsströmen zu schützen. Das
Array mit den Pull-up-Widerständen
sorgt dafür, daß offene Eingänge auf
einem definierten logischen Niveau
bleiben. Da die Eingänge nur für TTL-
Pegel geeignet sind, müssen die
Eingangssignale natürlich diese
Vorbedingung erfüllen.
Konfiguriert man die Leitungen dage-
gen als Ausgänge, setzt man den
ULN2803 ein. Die acht Ausgangstreiber
dieses ICs weisen offene Kollektoren
auf, die von je einer Freilaufdiode
geschützt werden. Die Kathoden die-
ser Dioden sind gemeinsam an V

P

angeschlossen und können über K5
auf ein höheres (als TTL-) Potential
gelegt werden. Der Masseanschluß an
K5 ist mit der Systemmasse verbunden.
Der ULN2803 kann Spannungen bis 50

V und Ströme von maximal 500 mA
schalten. Dies erlaubt ein weites
Einsatzgebiet des Paraport-Systems.

Kompakte Hardware

Die Layouts und die Bestückungspläne
der Platinen von Bus- und I/O-Einheit
sind in Bild 4 respektive Bild 5 zu
sehen. Beide Platinen sind einseitig
und deshalb einfach anzufertigen. Der

Preis für die Einseitigkeit ist allerdings
eine Anzahl von Drahtbrücken auf der
Busplatine. Da diese aber nur einmal
aufzubauen ist, scheint der Aufwand
vertretbar.
Um einen möglichst kompakten
Aufbau von Paraport zu ermöglichen,
verlaufen die Verbindungen zwischen
Bus- und I/O-Platine über
Pfostenverbinder mit Auswerfern und
ein Flachbandkabel. Stellt man die

PC-P

LUS

———————————————————

Elektor

EXTRA

X-15 - 2/99

´ REM PARAPORT Programmierbeispiel

´ Verfasst von : Vincent Himpe

´ Initialisierung der Druckerschnittstelle

´ LPT1= &h378 &h379 &h37A

´ LPT2= &h278 &h279 &h27A

´ PRN = &h3BC &h3BD &h3BE

´ Controller Befehlssatz

´ Read

= 0

´ Write

= 4

´ Write_or

= 8

´ Write_and

= 12

´ Ports sind von 0 bis 3 numeriert

´ entsprechend den Chip-Portbezeichnungen 4 bis 7

´***** Initialisierung *****

OUT &378,255

´ alles auf 1 setzen

OUT &h37A,0

´ Strobe auf High setzen

´***** Schreiben *****

´ Formel, um das Befehlswort zu berechnen, ist:

´ (I/O-Einheit-Adresse * 16)+Befehl+Port

´ Beispiel: Schreiben zu Port 2 von Einheit 1

´ (1*16)+4+1 = 21

OUT &h378,21

´ Einheit-Adresse + Portadresse + Befehl

OUT &h37A,1

´ Strobe auf Low setzen

´ Formel, um Daten zu berechnen, ist:

´ (I/O-Einheit-Adresse * 16)+Daten

´ in diesem Beispiel (1*16)+Daten

´ Für einen Test werden die beiden letzten Bits High (HHLL = 12),

´ so daß das Resultat (1*16)+12 = 28 ist.

OUT &h378,28

´ Daten sind bereit

OUT &h37A,0

´ Strobe auf High setzen

´ Die Daten stehen nun am gewünschten Port

´***** Lesen *****

´ Befehlsformel wie beim Schreiben,

´ nur der Befehl ist unterschiedlich

´ (1*16)+0+1 = 17

OUT &h378,17

´ Einheit-Adresse + Portadresse + Befehl

OUT &37A,1

´ Strobe auf Low setzen

OUT &378,255

´ Die Controllerausgänge werden hochimpedant

WERT = inp(&h379)

´ Lesen

WERT = ((WERT and &hF0)/16)

´ höchstes Nibble extrahieren

OUT &h37A,0

´ Strobe auf High setzen

´***** Ende *****

Bild 6. Dieses kurze BASIC-Programm steuert Paraport.

background image

Platinen mit 10-mm-Abstandsbolzen zu
einem “Super-Sandwich” zusammen,
reicht ein höchstens 20 cm langes
Kabel aus. Bei jeder I/O-Einheit stellt
man an den DIP-Schaltern eine indivi-
duelle Adresse ein.
Zur Stromversorgung eignet sich ein
gewöhnliches Steckernetzteil, daß
eine Ausgangsgleichspannung von 12
V liefern kann. Über den Bus wird die
von einem Festspannungsregler stabili-
sierte +5-V-Betriebsspannung an die
I/O-Einheiten weitergereicht.

Stufen in BASIC

Die Hardware ist natürlich funktionslos,
solange nicht eine geeignete
Software die Steuerung übernimmt.
Um das BASIC-Listing zu verstehen, sind
ein paar Anmerkungen zum 8243 not-
wendig. Dieses IC, das ja speziell für
die Zusammenarbeit mit dem 8048-
Mikrocontroller entwickelt wurde,
kennt besondere Prozeduren für den
Schreib- und den Lesevorgang. Diese
sollen dem 8048 ermöglichen, mit je
einem Befehl Daten zu lesen oder zu

schreiben. Ein Ansatz, den wir uns
zunutze machen.
Der 4-bit-Bus kann sowohl Befehls- als
auch Datenbus sein. Um einen Befehl
zum Expander zu leiten, muß er auf
den Bus gesetzt werden und der Pegel
auf der Strobe-Leitung von High nach
Low wechseln. Die Daten können nun
auf den Bus gelegt werden. Der
Lesevorgang wird durch einen erneu-
ten Wechsel der Strobe-Leitung (auf
High) eingeleitet.
Der 8243 kennt die vier Basisbefehle
READ, WRITE, WRITE_AND sowie
WRIT_OR. Mit READ werden Daten
gelesen, mit WRITE geschrieben, logi-
sche Funktionen, die keiner weiteren
Erläuterung bedürfen. Bei WRITE_AND
werden neu gelesene Daten mit

denen AND-verknüpft, die schon am
Port liegen. Das Resultat dieser
Verknüpfung erscheint am Port. Bei
WRITE_OR geschieht ähnliches, nur
haben wir es mit einer logischen
ODER-Verknüpfung zu tun.
Tabelle 1 und Tabelle 2 zeigen, wie
die Ports selektiert und die verschiede-
nen Funktionen aktiviert werden. Daß
der praktische Umgang mit Paraport
nicht allzu kompliziert ist, beweist das
gut kommentierte BASIC-Listing in Bild
6
. Dieses einfache Programm steuert
sämtliche Funktionen des I/O-Systems.

(990025)rg

X-16 - 2/99 Elektor

EXTRA

———————————————————— PC-P

LUS

Tabelle 1. Portselektion

Ein/Ausgang

selektierter

Adreßkode Ein/Ausgang

P21 (D1)

P20 (D0)

0

0

4

0

1

5

1

0

6

1

1

7

Tabelle 2. Befehlsselektion

Befehl

Funktion

P23 (D3)

P22 (D2)

0

0

Read

0

1

Write

1

0

ORLD

1

1

ANLD

Die Geschichte der Elektronik (2)
Volta und die Batterie

Schon lange vor Anbruch des 19. Jahrhunderts hatten sich ver-
schiedene Gelehrte eingehend mit dem Phänomen der Elektrizi-
tät beschäftigt. Die Versuche, die Ursachen zu ergründen und eine
naturwissenschaftliche Basis zu schaffen, führten jedoch nicht
zum Erfolg. Zwar konnte man schon seit längerer Zeit mit soge-
nannten Elektrisiermaschinen hohe Gleichspannungen erzeugen,
deren Existenz im Experimentierlabor durch gewaltige Entla-
dungsblitze nachgewiesen wurde. Die Elektrisiermaschinen lie-
ferten jedoch nur sehr geringe Ströme, so daß die Möglichkeiten
der experimentellen Forschung begrenzt waren. Ein Fortschritt
zeichnete sich ab, als um 1700 die “Leidener Flasche”, ein Vor-
läufer des modernen Elektrolytkondensators erfunden wurde.
Damit konnte man zum ersten Mal die von der Elektrisierma-
schine gelieferte elektrische Energie sammeln und für einige Zeit
speichern. Den Durchbruch brachte jedoch, pünktlich zur näch-
sten Jahrhundertwende, eine Erfindung des italienischen Hoch-
schullehrers Alessandro Volta. Er hatte schon im Jahr 1780 die
nach ihm benannte “Voltaische Säule” konstruiert, ein Stapel
aus Kupfer- und Zinkplatten, zwischen denen feuchte Filzschei-
ben eingefügt waren. Die Voltaische Säule konnte bereits, wenn
auch in recht bescheidenem Maß, einen Strom während einer län-
geren Zeit liefern. Die wichtigste Erfindung gelang Volta jedoch
im Jahr 1800, als er die erste elektrochemische Zelle baute. Sie
bestand aus einem gläsernen Becher, gefüllt mit verdünnter
Schwefelsäure, in die voneinander getrennt eine kupferne Platte
und eine Platte aus Zink eintauchte. Die elektrochemischen Vor-
gänge hatten eine Potentialdifferenz zwischen den beiden Platten
zur Folge, die ungefähr ein Volt betrug. Durch Hintereinander-
schalten von mehreren derartigen Zellen konnte Volta unter-
schiedliche Spannungen erzeugen, durch Parallelschalten wurden

die entnehmbaren Ströme vervielfacht. Volta
nannte eine solche aus mehreren Zellen beste-
hende Anordnung “Batterie”.

Die Volta’sche Batterie war die Stromquelle, auf
die die Wissenschaft schon lange gewartet hatte,
denn nun waren endlich ausreichend reproduzier-
bare Spannungen und genügend hohe Ströme ver-
fügbar. Deshalb dauerte es nicht mehr lange, bis
wichtige weitere Entdeckungen und Erfindungen
folgten. Schon zwei Jahre später, im Jahr 1802,
versetzte der englische Physiker Humphrey Davy
die Welt mit dem ersten elektrisch erzeugten Licht
in Erstaunen. Er schickte einen so hohen Strom durch einen Pla-
tindraht, daß der Draht deutlich sichtbar glühte und die nähere
Umgebung kurzzeitig in schwaches Licht tauchte. Eine brauchbare
Lichtquelle war der Platindraht noch nicht, denn
die Lichtausbeute war äußerst gering, und außer-
dem brannte der Platindraht nach kurzer Zeit
durch, so daß das Licht schnell wieder erlosch.
Davy gab sich jedoch mit diesem ersten Erfolg
nicht zufrieden. Er setzte seine Experimente fort,
so daß er der Öffentlichkeit im Jahr 1813 die erste
elektrische Bogenlampe vorstellen konnte. Ein hel-
ler Lichtbogen sprang zwischen zwei Holzkohle-
stiften über, die dafür nötige Energie lieferten nicht
weniger als 2000 Volta-Zellen. Auch die elektri-
sche Bogenlampe hatte noch zahlreiche Mängel
und Unzulänglichkeiten, sie war jedoch ein deut-
lich sichtbares Zeichen dafür, daß der Siegeszug
der elektrischen Beleuchtung nicht mehr aufzu-
halten war.

995016gd

R

ÜCK

-K

OPPLUNG

Volta-Zelle

Alessandro Volta (1745...1827)


Wyszukiwarka

Podobne podstrony:
07 Sposoby zmniejszenia obciążeń parapodatkowych
PARAPOXWIRUS
04b Przegląd i ogólna charakterystyka obciążeń parapodatkowych
04a Przegląd i ogólna charakterystyka obciążeń parapodatkowych
12b Obciążenia parapodatkowe rolnikówid 14233 pptx
12a Obciążenia parapodatkowe rolnikówid 14223 pptx

więcej podobnych podstron