32 Kanal Digital Eingangskarte fuer RS232


Der wesentliche Unterschied zwischen diesem Entwurf und
anderen Datenerfassungskarten am seriellen PC-Port liegt
darin, dass die Karte ohne Mikrocontroller oder UART
Spezifikationen:
für die serielle Kommunikation auskommt. Die Karte
Anzahl der Eingänge: 32
greift stattdessen für die Seriell/Parallel-Wandlung direkt
Art der Eingänge: TTL kompatibel
( 0 = 0 V,  1 = 5 V)
auf die Register des UARTs im PC zu.
Ausgang: RS232 (für seriellen PC-Port)
Kommunikation: Direct-access auf
UART-Register
Power Supply: 9 -15 V Gleichspannung
Entwurf von George Vastianos
32-Kanal-Digital-
Eingangskarte
für RS232
Datenerfassung einmal anders
Die digitale Erfassung und Verarbeitung dem Siegeszug des PCs hat die digitale die direkt auf einen lokalen Bus des
von Messdaten durch einen Computer Datenverarbeitung in den gesamten Rechners zugreifen, wie zum Beispiel
gibt es im Prinzip schon so lange, wie es Bereich der industriellen Mess-, Steuer- ISA, EISA, PCI und so weiter.
mittlere und kleine Rechner gibt. Erste und Regeltechnik Einzug gehalten. Für Bei dem hier beschriebenen Projekt
Anwendungen gab es schon in den die Verbindung zwischen dem Rechner handelt es sich um eine Karte mit 32
60er-Jahren, vor allem in der Militär- und der Außenwelt sorgen dabei digitalen Eingängen zum Anschluss an
und Raumfahrttechnik. Mit der spezielle Interfacekarten und Module. die serielle Schnittstelle (RS232) eines
Erfindung des Mikrocomputers und Besonders verbreitet sind dabei Karten, (IBM-kompatiblen) PCs.
Serielle Verbindung
Die serielle Schnittstelle wird
INPUTS 24...31 INPUTS 16...23 INPUTS 08...15 INPUTS 00...07
hauptsächlich für die Verbindung
8 8 8 8
zwischen zwei Computern oder
zwischen Computer und Peripherie wie
Modem und Maus verwendet. Hinter
BUFFER #4 BUFFER #3 BUFFER #2 BUFFER #1
diesem Port steckt fast immer ein UART
(Universal Asynchronous Receiver
8 8 8 8 Transmitter), der als integrierter Baustein
auf der Hauptplatine des PCs zu finden
ist. Die Hauptaufgabe ist Umwandlung
der Daten von serieller nach paralleler
MUX #4 MUX #3 MUX #2 MUX #1
Übertragung und umgekehrt, von
parallel nach seriell.
3 3 3 3
Ein PC kann mit bis zu vier seriellen Ports
(COM1 to COM4) ausgestattet sein,
1111
wobei jeder Port acht Plätze im I/O-
Speicherbereich belegt (siehe
COM DRIVER / RECEIVER
Tabelle 1).
Die vom UART verwendeten Haupt-
4 3
Signalleitungen für das serielle Senden
und Empfangen sind TxD und RxD.
COM PORT
Weitere Signalleitungen (DCD, DSR, RTS,
002012 - 11
CTS, DTR, RI) werden für
unterschiedliche Modi der seriellen
Bild 1. Blockschaltbild der 32-Kanal-D/I-Karte
Übertragung benötigt.
X-2 - 3/2000 Elektor EXTRA                    PC-PLUS
5V
5V 5V
20 20
IC1 C1 C3 IC3
8x 10k
R1 1 74HC541 74HC541 R3 1 8x 10k
IC1 IC3
19 19
100n 100n
& 10 10 &
EN EN
1 1
K1 K2
2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2
34 33 2 18 18 2 33 34
CH0 CH16
32 31 3 17 17 3 31 32
CH1 CH17
30 29 4 16 16 4 29 30
CH2 CH18
28 27 5 15 15 5 27 28
CH3 CH19
26 25 6 14 14 6 25 26
CH4 CH20
24 23 7 13 13 7 23 24
CH5 CH21
22 21 8 12 12 8 21 22
CH6 CH22
20 19 9 11 11 9 19 20
CH7 CH23
18 17 17 18
16 15 2 18 18 2 15 16
CH8 CH24
14 13 3 17 17 3 13 14
CH9 CH25
12 11 4 16 16 4 11 12
CH10 CH26
10 9 5 15 15 5 9 10
CH11 CH27
8 7 6 14 14 6 7 8
CH12 CH28
6 5 7 13 13 7 5 6
CH13 CH29
4 3 8 12 12 8 3 4
CH14 CH30
2 1 9 11 11 9 1 2
CH15 CH31
9 8 7 6 5 4 3 2
2 3 4 5 6 7 8 9
5V
1 1
20 20
&
& C2 C4
EN
EN
19 19
IC2 IC4
100n 100n
R2 1 8x 10k 10 10 R4 1
8x 10k
IC2 IC4
74HC541 74HC541
002012 - 12
5V
5V
Bild 2. Schaltbild der Puffereinheit.
Tabelle 1.
Obwohl einige dieser zusätzlichen
Transmit/Receive Buffer 3F8h 2F8h 3E8h 2E8h
Leitungen als Eingänge und andere als
Interrupt Enable Register 3F9h 2F9h 3E9h 2E9h
Ausgänge arbeiten, lässt sich jede
Interrupt Identification Register 3FAh 2FAh 3EAh 2EAh
Leitung (mit Ausnahme von RxD) durch
ein Bit des UART-Registers steuern. Line Control Register 3FBh 2FBh 3EBh 2EBh
Tabelle 2 gibt eine Übersicht über die
Modem Control Register 3FCh 2FCh 3ECh 2ECh
Pinbelegung der Schnittstelle und die
Line Status Register 3FDh 2FDh 3EDh 2EDh
I/O-Adressen.
Modem Status Register 3FEh 2FEh 3EEh 2Eeh
Die an der seriellen Schnittstelle
verwendeten Logikpegel (RS232-Pegel)
unterscheiden sich von TTL: Ein logische der Buffer Unit sind mit der Multiplexers durch die Multiplexer Unit werden drei
1 wird durch eine Spannung von  12V, Unit verbunden, die aus jeder Gruppe Ausgänge des seriellen Ports
eine logische 0 durch +12V dargestellt. jeweils nur eine Leitung auswählt. Die herangezogen (TXD, DTR, RTS). Über die
vier ausgewählten Leitungen COM Driver/Receiver Unit (hier wird von
durchlaufen die COM- RS232- auf TTL-Pegel gewandelt)
Die Hardware
Treiber/Empfänger-Einheit, in der die gelangen die drei Signale an die
Im Blockschaltbild der Schaltung (Bild 1) Umsetzung von 5-V-Logik auf die RS232- Adresseingänge des Multiplexers.
sind die verfügbaren Eingänge in vier Pegel erfolgt, so dass die Signale an vier
Gruppen zu je acht Eingängen unterteilt Pins der seriellen PC-Schnittstelle Puffer
(00-07, 08-15, 16-23, 24-31), alle sind mit angelegt werden können (CTS, DSR, RI, Im Schaltplan Bild 2 sind die 32
der Buffer Unit verbunden. Die Ausgänge DCD). Zur Steuerung der Auswahl Signale Eingänge für eine einfachere
Tabelle 2.
Pin-Name Pin # Pin # COM1 COM2 COM3 COM4 Bit I/O
25-Pin Konnector 9-Pin Konnector
TxD 2 3 3FBh 2FBh 3EBh 2EBh 6 O
DTR 20 4 3FCh 2FCh 3ECh 2ECh 0 O
RTS 4 7 3FCh 2FCh 3ECh 2ECh 1 O
CTS 5 8 3FEh 2FEh 3EEh 2EEh 4 I
DSR 6 6 3FEh 2FEh 3EEh 2EEh 5 I
RI 22 9 3FEh 2FEh 3EEh 2EEh 6 I
DCD 8 1 3FEh 2FEh 3EEh 2EEh 7 I
PC-PLUS                   Elektor EXTRA X-3 - 3/2000
Gestaltung der Platine in zwei Gruppen
5V 5V
zu 16 aufgeteilt, die über Steckverbin-
C5 C7
der K1 und K2 angeschlossen werden.
16 16
Die Zuordnung der Anschlüsse ist in
100n 100n
Tabelle 3 angegeben.
4 5 5 4
MUX MUX
CH0 CH16
0 0 Alle Eingänge sind mit Pull-up-
3 3
CH1 CH17
1 1
Widerständen beschaltet R1-R4 (10-k&!-
2 6 6 2
CH2 CH18
2 2
IC5 IC7
Arrays), damit auch offene Eingänge
1 1
3 3
CH3 CH19
74HC151 74HC151
15 11 11 15
auf definiertem Pegel liegen. Für die
CH4 CH20
4 0 0 4
14 0 10 10 0 14
CH5 G G CH21 Pufferung sorgen IC1-IC4 (74HC541).
5 5
7 7
13 9 9 13
CH6 CH22
6 2 2 6
Die vier Kondensatoren C1-C4 (100 nF)
12 7 7 12
CH7 CH23
7 EN EN 7
dienen als Entkoppelkondensatoren.
Die Steuereingänge (Output Enable,
8 8
Pin 1 und 19) der ICs 74HC541 liegen
an Masse, so dass die Puffer
kontinuierlich arbeiten.
5V 5V
Multiplexer
C6 C8
Wie Bild 3 zeigt, bestehen die
16 16
100n 100n Multiplexer aus vier 74HC151s (IC5-IC8)
mit vier 100-nF-Kondensatoren (C5-C8)
4 5 5 4
MUX MUX
CH8 CH24
0 0
zur Entkopplung. Der Output-Enable-
3 3
CH9 CH25
1 1
Steuereingang (Pin 7) eines jeden
2 6 6 2
CH10 CH26
2 2
IC6 IC8
1 1
74HC151 liegt an Masse, so dass auch
3 3
CH11 CH27
74HC151 74HC151
15 11 11 15
CH12 CH28 die Multiplexer kontinuierlich arbeiten.
4 0 0 4
14 0 10 10 0 14
CH13 G G CH29
5 5
Die A-, B-, und C-Adresseingänge aller
7 7
13 9 9 13
CH14 CH30
6 2 2 6
74HC151 sind miteinander verbunden,
12 7 7 12
CH15 CH31
7 EN EN 7
um alle 32 Eingänge selektieren zu
können.
8 8
COM-Treiber/Empfänger
002012 - 13
Dieser Schaltungsteil enthält mit IC10
(7805) auch einen Spannungsregler, so
dass die Karte mit einer unstabilisierten
Bild 3. Schaltung des Multiplexers.
Spannung versorgt werden kann,
wobei D1 für einen Verpolschutz sorgt.
In der Schaltung in Bild 4 ist IC9
(MAX237) der RS232-Sende-Empfangs-
C11
baustein, der über drei Kanäle zur
Umwandlung von RS232- nach TTL-
11
Pegel und 5 Kanäle zur TTL- nach
V+
10 5V
C1+
C9
9
RS232-Konversion. Die Erzeugung der
K3
IC1
12
Spannungen für die RS232-Pegel
C1
7 2 1
D0 T1IN T1OUT erfolgt durch Spannungsverdopplung
6 3 6
D1 T2IN T2OUT
mit Hilfe von fünf Kondensatoren (C9-
18 1 2
D2 T3IN T3OUT
C13: 1 µ/35V).
19 24 7
D3 T4IN T4OUT
21 20 3
Der MAX237 beinhaltet für jeden Kanal
T5IN T5OUT
5 4 8
A0 R1OUT R1IN einen Inverter. Da aber die vier
22 23 4
A1 R2OUT R2IN
invertierten Ausgänge der vier
17 16 9
A2 R3OUT R3IN
74HC151 verwendet werden, ergibt
C12
13 5
C2+
C10
sich eine zweifache Invertierung und
MAX237
14 8
damit keine Invertierung.
C2
V-
15
C13 Die Steuersoftware
C9 ....C13 = 1µ / 35V
Das Programm für die Kommunikation
IC10
LM7805CT mit der Karte wurde in QBASIC
D1
5V
geschrieben. Diese Kommunikations-
routine CARD32DI ist im Listing 1
1N4001
K4
angegeben. Beim Aufruf der Routine
C15 C14
(von jedem in Qbasic geschriebenen
330n 100n
Programm aus) ist die folgende Syntax
einzuhalten:
002012 - 14
CALL CARD32DI (COMADDRESS,
CHANNEL (), DATA0, DATA1,
Bild 4. Schaltbild der COM-Treiber/Empfänger-Einheit und der Stromversorgung.
DATA2, DATA3)
X-4 - 3/2000 Elektor EXTRA                    PC-PLUS
A0
A1
A2
D0
D1
D2
D3
Tabelle 3.
K1 K2
Kanal Pin-Nummer Kanal Pin-Nummer
00 33 16 33
01 31 17 31
02 29 18 29
03 27 19 27
04 25 20 25
05 23 21 23
06 21 22 21
Bild 5. Screendump des Demo-
07 19 23 19
Programms.
08 15 24 15
09 13 25 13
10 11 26 11
11 9 27 9
Darin sind:
12 7 28 7
13 5 29 5
14 3 30 3
COMADDRESS: Integer-Variable,
15 1 31 1
welche (vor dem Aufruf) die
Basisadresse des seriellen Ports
enthalten müssen. Zulässige Werte
dieser Variablen sind &H3F8 (für COM1),
&H2F8 (für COM2), &H3E8 (für COM3), http://www.robofreak.xs3.com
&H2E8 (für COM4).
Der Autor selbst ist via E-Mail zu
CHANNEL (): Matrix-Integer-Variable (mit erreichen: sebastian@mail.kapatel.gr
Pointern von 0 to 31), die (nach dem (002012-1e)
Aufruf) den logischen Zustand eines
jeden Kanals enthält (Werte 1 oder 0).
DATA0, DATA1, DATA2 & DATA3: Integer REM **************************************
REM * 32 Channel D/I Card *
Variablen, die (nach Aufruf) den
REM * CARD32DI Communication Routine *
arithmetischen Wert einer jeden
REM * Copyright (c) April 1999 *
Gruppe von 8 Kanälen (00-07, 08-15,
REM * by George Vastianos *
16-23 und 24-31). Die logischen
REM * email:robofreak@technologist.com *
Zustände aller 32 Kanäle ergeben ein
REM * http://members.xoom.com/robofreak/ *
doppeltes Wort (32 bit) mit Ch0 als LSB
REM **************************************

und Ch31 als MSB. Dieses doppelte
SUB CARD32DI (COMADDRESS, CHANNEL(), DATA0, DATA1, DATA2, DATA3)
Wort kann durch die vier Bytes DATA0,
DATA1, DATA2 & DATA3 ausgedrückt
DATA0 = 0: DATA1 = 0: DATA2 = 0: DATA3 = 0
werden, wobei DATA0 das LS-Byte und
DATA3 das MS Byte ist. Diese Variablen
FOR BIT = 0 TO 7
sind in den Fällen zu verwenden, in
denen man die Logikzustände aller IF (BIT AND 1) = (INP(COMADDRESS + 4) AND 1) THEN
OUT (COMADDRESS + 4), INP(COMADDRESS + 4) XOR 1
Kanäle in einer Datei speichern
END IF
möchte. Diese  Kompression erlaubt
IF (BIT AND 2) = (INP(COMADDRESS + 4) AND 2) THEN
es, mit nur 4 Bytes (anstelle von 32)
OUT (COMADDRESS + 4), INP(COMADDRESS + 4) XOR 2
auszukommen. Für den Test der 32-
END IF
Kanal-D/I-Karte wurde ein Demonstra-
IF (BIT AND 4) = (INP(COMADDRESS + 3) AND 64) / 16 THEN
tionsprogramm entwickelt (siehe Bild 5). OUT (COMADDRESS + 3), INP(COMADDRESS + 3) XOR 64
END IF
Um die Adresse des seriellen Ports zu
ändern, werden einfach die Tasten
OUT COMADDRESS + 1, 0
<1> bis <4> verwendet. Das
OUT COMADDRESS + 2, 0
Verlassen des Programms erfolgt mit
.
INDATA = INP(COMADDRESS + 6) AND 240
CHANNEL(BIT) = (INDATA AND 16) / 16
Bezugsquellen
CHANNEL(BIT + 8) = (INDATA AND 32) / 32
Der Quellkode der Kommunikations-
CHANNEL(BIT + 16) = (INDATA AND 64) / 64
routine (CARD32DI.SUB) und das
CHANNEL(BIT + 24) = (INDATA AND 128) / 128
Demons t r at i ons pr ogr amm
(32DICARD.BAS) mit einer Exe-Version
DATA0 = DATA0 + CHANNEL(BIT) * 2 ^ BIT
des Demonstrationsprogramms
DATA1 = DATA1 + CHANNEL(BIT + 8) * 2 ^ BIT
(32DICARD.EXE) sind über folgende DATA2 = DATA2 + CHANNEL(BIT + 16) * 2 ^ BIT
DATA3 = DATA3 + CHANNEL(BIT + 24) * 2 ^ BIT
Internetadresse erhältlich:
http://members.xoom.com/robofreak/
NEXT BIT
download/32dicard.htm
die für den tatsächlichen Download auf
END SUB
die Website des Autors führt:
PC-PLUS                   Elektor EXTRA X-5 - 3/2000


Wyszukiwarka

Podobne podstrony:
PC gesteuerter 32 Kanal Dimmer Luxus Regler fuer ohmsche und induktive Lasten
Model kartonowy Digital Card Model 2001 Nieuport RNAS School 1 32
32 Wyznaczanie modułu piezoelektrycznego d metodą statyczną
DP Miscallenous wnt5 x86 32
A Digital
STM32 Butterfly RS232
32 (108)
faraon 32
E book O Zachowaniu Sie Przy Stole Netpress Digital
32 Surfakanty w woda
980719 32

więcej podobnych podstron