.
Start Spezial Hardware Software Download Links

Anwenderseiten und technische Informationen
Startseite_

.
.

SERAI 812
Download: serai8.zip (447K) enthält Windows-Programme und diese Beschreibung
Allgemeine Beschreibung
Technische Daten
Programmbeispiel GW-Basic
Programmbeispiel Turbo Pascal
Programmbeispiel VBA
Technische Beschreibung des Wandlers

 

zum Shop 


Allgemeine Beschreibung
Das SERAI812 ist ein Analoginterface zum direkten Anschluss an die serielle Schnittstelle des PC. Die Stromversorgung erfolgt über die Schnittstelle.
Das Interface verwendet den AD-Wandler MAX186 mit seriell getakteter Datenübertragung. Die Datenübertragung zum und vom Wandler erfolgt durch direkte Steuerung der Handshakeleitungen der seriellen Schnittstelle. Die Stromversorgung wird durch die hochgesetzte TXD-Leitung gespeist. Alle Eingänge sind durch Vorwiderstände gegen Überspannungen geschützt. Die Eingänge liegen an Schraubklemmen und zusätzlich an einem 10-poligen Pfostenstecker, der auch die interne Referenzspannung von 4,095V zur Verfügung stellt. Die Programmierung kann in einer beliebigen Programmiersprache erfolgen. Beispiele für BASIC, PASCAL und Excel-VBA liegen bei.

Technische Daten

Meßbereich

0...4095 mV

Auflösung

1 mV, 12 Bit

Eingangswiderstand

> 10 MW

Linearität

+/- 1 LSB

Eingangskanäle

8

Wandlungszeit

10 µs ... 1 ms


Belegung des Pfostensteckers


Programmbeispiel GW-Basic


10 BA=&H2F8 : REM COM2
20 OUT (BA+3), 64
30 CLS
40 PRINT " SERAI812 an COM2
100 REM Messung an 8 Kanälen
110 LOCATE 10,1
120 FOR N= 0 TO 7
130 SEL = 7-(N\2) -4*(N AND 1)
140 GOSUB 500
150 PRINT N,
160 PRINT USING "##.###"; U;
170 PRINT " V"
180 NEXT N
190 FOR T= 1 TO 10000 : NEXT T
200 LOCATE 10,1
210 GOTO 120
500 REM ************* Ansteuerung des MAX186 ******
510 CMD = 128 + 16 * SEL + 8 + 4 + 2
520 BIT = 128
530 FOR B= 1 TO 8
540 IF (CMD AND BIT)=BIT THEN RTS = 2 ELSE RTS=0
550 OUT (BA+4),RTS
560 OUT (BA+4),RTS+1
570 OUT (BA+4),RTS
580 BIT = BIT \ 2
590 NEXT B
595 OUT (BA+4),0
600 FOR T= 1 TO 10 : NEXT T
610 BIT = 2048 : AUS = 0
630 FOR B= 1 TO 16
640 OUT (BA+4),1
650 OUT (BA+4),0
660 IF ((INP(BA+6) AND 16)=16) THEN AUS = AUS + BIT
670 BIT = BIT \ 2
680 NEXT B
690 U = AUS / 1000
700 RETURN

Programmbeispiel Turbo Pascal


Program MAX186;
Uses CRT;
var BA : Integer;
Offset: Real;
procedure Init;
begin
BA := $02F8; { COM2 }
Port[BA+3]:=$40; { Break, TXD=1, Betriebsspannung }
Port[BA+4]:=$00; { DTR(Sclk) = 0, RTS(Din) = 0 }
delay (100);
end;
function shift8 (Commando: Byte):Byte;
var Aus, Lesen, Bit, N: Byte;
i : Integer;
begin
Bit := 128;
Lesen := 0;
for n:=1 to 8 do begin
if (Commando AND Bit) = Bit then Aus := 2 else Aus := 0;
Port[BA+4]:=Aus; { Din }
for i:= 1 to 30 do;
Port[BA+4]:=Aus+1; { Din + Sclk }
for i:= 1 to 30 do;
Port[BA+4]:=Aus; { Din }
for i:= 1 to 30 do;
if (Port[BA+6] AND 16)= 16 then Lesen := Lesen + Bit;
Bit := Bit div 2;
end;
Shift8 := Lesen;
Port[BA+4]:=$00; { Din=0, Sclk=0 }
end;
function Messung (Steuerbyte: Byte): Real;
var Ausgabe: Byte;
Wert, i: Integer;
begin
Ausgabe := shift8(Steuerbyte); {Start}
{repeat until (Port[BA+6] AND 32)= 32;} {SSTRB, fertig}
for i:= 1 to 100 do;
{delay (10);}
Wert := 16 * shift8(0); {Highbyte}
Wert := Wert + shift8(0) div 16; {Lowbyte}
Messung := Wert/1000;
end;
procedure Achtkanal;
var n, Sel: Integer;
begin
GotoXY (10,3);
write ('Kanal Spannung');
for n := 0 to 7 do begin;
GotoXY (10,5+n); write (N);
Case N of
 7: Sel := 0;
 6: Sel := 4;
 5: Sel := 1;
 4: Sel := 5;
 3: Sel := 2;
 2: Sel := 6;
 1: Sel := 3;
 0: Sel := 7;
end;
GotoXY (20,5+n);
write (Messung(128+16*Sel+8+4+2):5:3,' V');
end;
delay (500)
end;
begin
Init;
ClrSCR;
writeln ('SERAI812 an COM2');
repeat Achtkanal until Keypressed;
end.


Programmbeispiel VBA


Das folgende Listing zeigt ein Excel-Makro unter Verwendung der RSAPI.DLL zur direkten Steuerung der seriellen Schnittstelle in Excel. Die serielle Datenübertragung zwischen PC und Wandler erfolgt mit der Funktion Shift8. Während beim Übertragen des Steuerbytes der Rückgabewert der Funktion nicht ausgewertet wird, werden zum Auslesen der gewandelten Daten Nullbytes an Shift8 übergeben. Das Beispiel ist aus [1] entnommen und verwendet eine andere Zuordnung der Eingänge. Die RSAPI.DLL liegt dem Buch bei.

Declare Sub OPENCOM Lib "RSAPI.DLL" (ByVal Parameter$)
Declare Sub CLOSECOM Lib "RSAPI.DLL" ()
Declare Sub DTR Lib "RSAPI.DLL" (ByVal Pegel%)
Declare Sub RTS Lib "RSAPI.DLL" (ByVal Pegel%)
Declare Sub TxD Lib "RSAPI.DLL" (ByVal Pegel%)
Declare Function CTS Lib "RSAPI.DLL" () As Integer
Declare Function DSR Lib "RSAPI.DLL" () As Integer
Declare Sub Delay Lib "RSAPI.DLL" (ByVal ms%)
Dim mode(8)
Sub MAIN()
mode(8) = 142 + 0 * 16: mode(7) = 142 + 4 * 16
mode(6) = 142 + 1 * 16: mode(5) = 142 + 5 * 16
mode(4) = 142 + 2 * 16: mode(3) = 142 + 6 * 16
mode(2) = 142 + 3 * 16: mode(1) = 142 + 7 * 16
Sheets("Tabelle1").Select
Columns("A:K").Select
Selection.ClearContents
OPENCOM "COM2,19200,n,8,1"
TxD 1: Rem TXD einschalten
Delay 100
DTR 0: Rem SCL=0
RTS 0: Rem DIN=0
For N = 1 To 1000
For K = 1 To 8
Dummy = Shift8(mode(K)): Rem Kanal K, unipolar
Delay 1
Highbyte = Shift8(0)
Lowbyte = Shift8(0)
Cells(N, K).Value = (16 * Highbyte + Lowbyte / 16)
Cells(K, 10).Value = (16 * Highbyte + Lowbyte / 16)
Next K
Next N
End Sub
Function Shift8(Kommando)
Bit = 128
Lesen = 0
For N = 1 To 8
If (Kommando And Bit) = 0 Then RTS 0 Else RTS 1
DTR 1
DTR 0
If CTS = 1 Then Lesen = Lesen + Bit
Bit = Bit / 2
Next N
Shift8 = Lesen
RTS 0
End Function


Technische Beschreibung des Wandlers


Der verwendete Baustein MAX186 ist ein CMOS-Wandler mit acht Eingangskanälen bei einer Auflösung von 12 Bit. Er enthält eine interne Spannungsreferenz mit 4,096V und benötigt nur ca. 1,5mA an 5V. In ca. 7µs wird eine sukzessive Approximation mit zwölf Schritten durchgeführt, so daß Wandlungsraten bis über 100 kHz erreicht werden können.

Die folgende Tabelle zeigt die Anschlüsse des IC's:

Pin Bezeichnung Funktion
1 CH0 Eingangskanal 0
bis
8 CH7 Eingangskanal 7
9 AGND Masse des Analogteils
10 /SHDN Low: Power-down-Modus (10µA)
11 VREF Referenzspannung 4,096V
12 REFADJ Justiereingang der Referenz
13 AGND Masse des Analogteils
14 DGND Masse des Digitalteils
15 DOUT Serieller Datenausgang
16 SSTRB Statusausgang für laufende Wandlung
17 DIN Serieller Dateneingang
18 /CS Chip-Selekt-Eingang
19 SCLK Serieller Clockeingang
20 VDD Versorgung +5V

Das Schaltbild zeigt den Anschluss des Wandlers an die serielle Schnittstelle. Der PC stellt an DTR Taktimpulse bereit, mit denen über RTS Daten seriell in den Wandler getaktet werden. Serielle Daten des ICs werden über CTS eingelesen. Der Eingang DSR der Schnittstelle liest den Statusausgang SSTRB des Wandlers, um das Ende einer Wandlung erkennen zu können, was allerdings in der Software meist nicht nötig ist, weil die Datenübertragung ausreichend langsam ist. Die erhöhte Ausgangsspannung von ± 12V wird über hochohmige Widerstände in Zusammenarbeit mit den internen Schutzdioden des MAX186 begrenzt. Die Stromversorgung erfolgt über die hochgesetzte TXD-Leitung (BREAK-Zustand).

 

Die Beschriftung der Eingänge auf der Platine ist gegenüber der Kanal-Bezeichnung des MAX186 invertiert, d.h. CH7 der Anschlussklemme entspricht CH0 am MAX186. Dadurch entspricht das Layout der üblichen Anordnung von Binärzahlen. Die Umkehrung ist bei der Erstellung von Software zu beachten.

Der Wandler kennt zahlreiche Betriebsarten, die beim Start einer Wandlung über das seriell übertragene Steuerbyte festgelegt werden. Die Wandlung kann mit internem oder externem Takt erfolgen. Wählt man den externen Takt, dann erfolgt die eigentliche Wandlung mit ihrer sukzessiven Approximation synchron zum Auslesevorgang. Dabei muss eine symmetrische Rechteckform eingehalten werden, und es darf eine Taktrate von 100 kHz nicht unterschritten werden, weil es sonst durch Entladung des internen Abtast-Halteglieds zu einer Verschlechterung der Messgenauigkeit kommen kann. Weil eine ausreichend hohe Taktfrequenz bei der direkten Programmierung der Portleitungen nicht sichergestellt werden kann, wird hier nur mit internem Takt gearbeitet. Die Taktimpulse des PC dienen nur zur Datenübertragung und dürfen im Bereich Null bis 10 MHz liegen.

Die Betriebsarten werden über zwei Bits des Steuerbytes eingestellt. Es stehen zwei Power-down-Modi zur Verfügung, die nur bei batteriebetriebenen Geräten von Bedeutung sind. Die totale Abschaltung aller internen Schaltungsteile führt zu einer Reduzierung des Versorgungsstroms auf 2µA. Nach dem erneuten Aktivieren ist jedoch eine Wartezeit von 50 ms einzuhalten. Eine schnellere Variante schaltet die interne Referenz nicht ab und führt zu einer Stromreduzierung auf 30µA. Über die Power-Down-Bits PD1 und PD0 wird außerdem zwischen internem oder externem Takt während der Umsetzung umgeschaltet.

Weitere Steuerbits wählen die Art der Messung aus. Außer den üblichen massebezogenen Eingängen können Differenzeingänge gewählt werden, wobei immer zwei Eingänge zusammenarbeiten. Neben der unipolaren Messung (0...4,095V) ist für Differenzeingänge auch eine bipolare Betriebsart (-2,047V ... +2,047V, bezogen auf den negativen Eingang) möglich. Die aktiven Eingangskanäle werden über drei Bits (SEL0...SEL2) gewählt.

Die Übertragung des Steuerworts beginnt immer mit dem als Startbit gesetzten MSB. Die folgende Tabelle zeigt den Aufbau des Steuerbytes:

Bit Name Funktion

7 START immer gesetzt
6 SEL2
5 SEL1 Auswahl des Eingangskanals
4 SEL0
3 UNI//BIP 1=unipolar, 0=bipolar
2 SGL//DIF 1= massebezogen, 0=Differenzeingänge
1 PD1 00: Power-Down 2µA, 01: 30µA, schnell
0 PD0 10: Clock intern, 11: Clock extern

Die Steuerbits SEL0 bis SEL2 wählen den aktiven Eingangskanal aus. Ihre drei Bits stellen einen Zahlenwert im Bereich 0 bis 7 dar. Es stehen entweder vier Differenzeingänge oder acht massebezogene Eingänge zur Verfügung. Bipolare Messungen sind nur für Differenzeingänge möglich, weil die Eingangsspannungen nur im Bereich 0 bis 5V liegen können. Wählt man Differenzeingänge, dann muss der negative Eingang während der gesamten Umsetzzeit eine stabile Spannung aufweisen, während der positive Eingang nur kurz abgetastet wird und schnelle Änderungen verträgt.

SEL0...2 Differenzeingänge Einzeleingang

0 CH0 gegen CH1 CH0
1 CH2 gegen CH3 CH2
2 CH4 gegen CH5 CH4
3 CH6 gegen CH7 CH6
4 CH1 gegen CH0 CH1
5 CH3 gegen CH2 CH3
6 CH5 gegen CH4 CH5
7 CH7 gegen CH6 CH7

Nach der Übertragung des Steuerbytes beginnt die eigentliche Umsetzung mit einer Dauer von maximal 10µs. Dann können zwei Bytes ausgelesen werden. Das zuerst gelesene Highbyte enthält die acht höchstwertigen Bits. Das Lowbyte enthält Nullen in den vier niederwertigen Bits und vier Datenbits in den Bits 4 bis 7.


Literatur:
[1] Berndt/Kainka, Messen, Steuern und Regeln mit Word und Excel, Franzis-Verlag 1997


.
.
Start Spezial Hardware Software Download Links

AK MODUL-BUS Computer GmbH, Münsterstr. 45, 48477 Hörstel-Riesenbeck, Tel. +49-54 54 / 9 34 36 36 Fax +49-54 54 / 9 34 36 37
 Mail: info@ak-modul-bus.de