Diese Interfaces
der Firma Modul-Bus verwenden Analog-Digitalwandler zum direkten Anschluß
an die serielle Schnittstelle. Sie kommen ohne zusätzliche Stromversorgung
aus und werden von der seriellen Schnittstelle des PCs aus mit Energie
versorgt.
SERAI 1/8: 1 x 0...5V, Auflösung 8 Bit
Serai1/8 starten
Handbuch und Programmbeispiele
SERAI 6/10: 2 x 0...10 V, 2 x -5V ... +5V, 2 x -10V ...+10V,
Auflösung10 Bit
Serail6/10 starten
Handbuch und Programmbeispiele
SERAI 8/12: 8 x 0...4,195 V, Auflösung 12 Bit
Serai8/12 starten
Handbuch und Programmbeispiele
SERAI 1/8
Ein serielles Analog-Interface mit einem Eingangskanal und 8 Bit Auflösung
Das SERAI18
ist ein Analoginterface zum direkten Anschluß an die serielle Schnittstelle
des PC. Die Stromversorgung erfolgt über die Schnittstelle. Die gesamte
Schaltung läßt sich in einem 25-poligen Sub-D Steckergehäuse
unterbringen. Das fertige Gerät ist bei Modul-Bus erhältlich.
Das Projekt eignet sich jedoch auch zum Eigenbau auf einem Stück Lochrasterplatine.
Technische Daten:
Meßbereich 0...5,1 V Auflösung 20 mV, 8 Bit Eingangswiderstand > 10 MOhm Linearität +/- 1 LSB Eingangskanäle 1 Wandlungszeit 20 µs ... 1 ms
Das Interface verwendet den AD-Wandler TLC549 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. Der Eingang ist durch einen Vorwiderstand gegen Überspannungen geschützt. Er liegt an Schraubklemmen, wo auch die interne Referenzspannung von 5,1 V zur Verfügung stellt. Die Programmierung kann in einer beliebigen Programmiersprache erfolgen. Beispiele für BASIC, PASCAL und Word-Basic liegen bei.
Anschlußbelegung der Anschlußklemme (1 rechts)
1 Uref 5,1 V 2 Masse 3 Eingang 0...5,1V
Die direkte Ansteuerung der Schnittstellenleitungen ermöglicht die
Verwendung des seriell gesteuerten AD-Wandlers TLC549. ie anliegende Spannung
wird mit einer Auflösung von 8 Bit in einen digitalen Wert umgesetzt.Der
Wandler kommt mit einer einfachen Betriebsspannung von 5V bei einem Strom
von ca. 1mA aus, so daß die Stromversorgung direkt von der Schnittstelle
möglich ist. Er benötigt nur wenige Steuerleitungen, weil die
Daten seriell ausgelesen werden. Die Anschlüsse des 8-beinigen ICs
zeigt die folgende Tabelle:
Pin Bezeichnung Funktion 1 Ref+ Eingang für die Referenzspannung 2,5V...5V 2 Ain analoger Eingang 3 REF- negativer Referenzeingang 4 Gnd Masseanschluß 5 /CS Chip-Select, low beim Auslesen 6 Dout serieller Datenausgang 7 Clk Takteingang 8 Vcc Versorgungsspannung +5V
Der Baustein benötigt nur drei Leitungen zum Anschluß an den PC. Für jede Wandlung muß die /CS-Leitung für ca. 20 µs hochgezogen werden. Das gewandelte Datenbyte wird dann bei heruntergezogener /CS-Leitung bitweise über Dout gelesen. Das erste Bit ist D7. Nach jedem positiven Taktimpuls an Clk legt der TLC549 das jeweils folgende Bit an Dout. Der gesamte Ablauf wird durch das Diagramm verdeutlicht.
1 REM *************** SERAI18 ******************* 10 BA=&H2F8 : REM COM2 20 OUT (BA+3), 64 100 REM Ausgabe von Spannungen 110 GOSUB 500 120 PRINT BYTE 130 GOTO 110 500 REM ************* Ansteuerung des TLC549 ****** 510 OUT (BA+4),2 520 FOR T=1 TO 20:NEXT T 530 OUT (BA+4),0 540 BYTE=0:BIT = 128 550 FOR NR = 1 TO 8 560 IF (INP(BA+6) AND 16)=16 THEN BYTE = BYTE + BIT 570 OUT (BA+4),1 580 BIT = BIT \2 590 OUT (BA+4),0 600 NEXT NR 610 U=BYTE/50: RETURN
Program SERAI18; Uses CRT; const BA = $2F8; {COM2} function AD : Byte; var m, n, Stelle : Integer; Wert : Byte; begin Port [BA+4] := 2; {/CS an (RTS)} for m:=1 to 500 do; {Verzögerung} Port [BA+4] := 0; {/CS aus (RTS)} for m:= 1 to 50 do; Wert := 0; Stelle := 128; for n:= 1 to 8 do begin if (Port[BA+6] AND 16) = 16 then {Daten lesen} Wert := Wert + Stelle; Port [Ba+4] := 1; {Clock an DTR)} for m:= 1 to 50 do; Port [BA+4] := 0; {Clock aus(DTR)} Stelle := Stelle div 2; end; AD := Wert; end; begin ClrScr; Port[BA+3] := 64; {BRAK-Zustand,5V} repeat GotoXY(10,10); writeln (AD / 50 :3:2,' V '); delay (500); until KeyPressed; Port[BA+3] := 0 {BRAK aus} end.
Das folgende Listing zeigt ein Word-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 Messen. Das Beispiel ist aus dem Buch "MSR mit Word und Excel" entnommen. Die RSAPI.DLL liegt dem Buch bei.
Das Makro schreibt den Meßwert in die Statuszeile. Ebenso können auch Meßwerttabellen angelegt oder Meßergebnisse in den laufenden Text eingefügt werden.
Declare Sub OPENCOM Lib "RSAPI.DLL"(Parameter As String) Declare Sub CLOSECOM Lib "RSAPI.DLL"() Declare Sub DTR Lib "RSAPI.DLL"(Pegel As Integer) Declare Sub RTS Lib "RSAPI.DLL"(Pegel As Integer) Declare Sub TXD Lib "RSAPI.DLL"(Pegel As Integer) Declare Function CTS Lib "RSAPI.DLL"() As Integer Declare Sub DELAY Lib "RSAPI.DLL"(Zeit As Integer) Sub MAIN OpenCOM "COM2,300,n,8,1" TxD 1 'Spannungsversorgung ein Delay 30 DTR 0 'Clock RTS 0 '/CS Delay 10 For N = 1 To 1000 Print Str$(Messen / 50) + " V" 'Einfügen Str$(Messen / 50) + " V" 'Einfügen Absatz Delay 100 Next n End Sub Function Messen RTS 1 'Messung starten Bit = 128 Delay 1 RTS 0 'Auslesen starten Wert = 0 For n = 1 To 8 If CTS = 1 Then Wert = Wert + Bit DTR 1 DTR 0 Bit = Bit / 2 Next n Messen = Wert End Function