18
Messdatenerfassung mit dem Computer • Einführung - C.Zeitnitz • Beispiel Programme – M.Fuidl • Kleines digitales Interface für den Druckerport

Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Embed Size (px)

Citation preview

Page 1: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Messdatenerfassung mit dem Computer

• Einführung - C.Zeitnitz• Beispiel Programme – M.Fuidl • Kleines digitales Interface für den Druckerport

Page 2: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Signale, die verarbeitet werden ⃟ digitale Signale (TTL/CMOS Signale)

- zählen von Pulsen- starten/stoppen von Timern

⃟ analoge Signale (müssen erst digitalisiert werden)→ Analog zu Digital-Converter ADC wird benötigt

Ausgabe von Signalen ⃟ digitale Signale (TTL/CMOS)

- schalten von Relais- LED ansteuern- weitere Elektronik ansteuern

⃟ analoge Signalformen → Digital zu Analog Converter DAC wird benötigt

Signalgenerierung per DAC ist sehr viel einfacher als Digitalisierung !!

Signalverarbeitung mit dem Computer- Hardware -

Page 3: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Digital zu Analog Converter ⃟ einfachste Version per R-2R Widerstandsnetzwerk

Tietze, SchenkHalbleiterschaltungstechnik

4-Stellen Binärzahl

Ausgangsspannung

⃟ Annahme:- jedes Bit liefert die gleiche Spannung Uref (1) der Masse (0)- Lastwiderstand sollte etwa 2R entsprechen (jedenfalls nicht

zu klein sein!)⃟ Wie kommt die Ausgangsspannung zu Stande ?

Page 4: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Widerstand zur Masse beträgt 2R

Widerstand zur Masse beträgt 2R

Spannung1/3 U1

⃟ Jede Spannung Ui´ ergibt sich zu 1/3 von Ui (für gesetztes Bit i)⃟ U3´ fällt direkt am Ausgang ab⃟ U2´ erscheint halbiert am Ausgang ⃟ U1´ erscheint halbiert am Punkt U2´ und damit mit Gewicht ¼ am Ausgang ⃟ Insgesamt ergibt sich )

81

41

21(

31

0123 UUUUU a

Page 5: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Analog zu Digital Converter (ADC)⃟ Sehr viel komplizierter als ein DAC !!⃟ Verschiedene Verfahren vorhanden • Zählverfahren Addiere eine Referenzspannung, bis Eingangsspannung

erreichtSehr langsames Verfahren, aber einfach realisierbar

• WägeverfahrenBeginnend beim höchstwertigen Bit, teste ob Eingangsspannung

ober- oder unterhalb der Wertigkeit des Bits liegt.Anzahl der Schritte entspricht der Bitbreite des ADCBis ca. 1Ms einsetzbar

• ParallelverfahrenBinärzahl wird in einem Schritt gebildet, indem jeweils ein OPnachprüft welcher der 2n Werte der Eingangsspannung entsprichtSehr schnell, aber extrem aufwendig, da für n-Bits 2n-1 OPsbenötigt werden

Page 6: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Parallelverfahren (auch Flash-ADC genannt)

Tietze, SchenkHalbleiterschaltungstechnik

8-Bit ADC

Register zum zwischenspeichern

der Konversion

8 auf 3 Decoder

OP mit Open-Loop

Verstärkung

Widerstandsnetzwerkzur Einstellung der

Schwellen

Page 7: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Einige ADCs kombinieren verschiedene Verfahren, um die Anzahl der OPs akzeptabel klein zu halten

Oft ist die genaue Signalform nicht von Interesse. Es reicht z.B. die Amplitude eines Pulses zu bestimmen

⃟ Sample und Hold Schaltung vor den ADC

-

+C-

+Ue

Ua

⃟ Ausgangsspannung folgt der Eingangsspannung solange diese höher ist als die auf dem Kondensator gespeicherte⃟ Wenn das Maximum des Pulses überschritten wird (Ue fällt ab) bleibt die Ausgangsspannung stabil⃟ Amplitude kann mit langsamen ADC gemessen werden !

Page 8: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Welche Digitalisierungsmöglichkeiten bieten sich an?

⃟ Multimeter mit RS-232 Schnittstelle - für quasi-statische Signale - z.B. Temperaturmessfühler - elektrostatische Messungen - Anpassung des Arbeitsbereichs durch Messverstärker - Software: z.B. DMMProfilab

⃟ Externe Digitalisierungsgeräte mit Parallelport, RS-232 oder USB Anschluss - CASSY: analoge und digitale Signale, aber nicht sehr flexibel auf der Softwareseite ! - PCS-64: 2-Kanal Speicheroszilloskop von CONRAD (Preis: ca. 260 €) mit 64Ms Universell einsetzbar, aber kein Zugriff auf Werte in eigenen Programmen! - Digitaloszillograf mit RS-232 oder Ethernetanschluss

⃟ Eigenbau: - Selbstbauprojekt aus der Zeitschrift MNU 54/6 (Sept. 2001) 8-Bit 10ks ADC an serieller Schnittstelle

Platine kann beim Autor bestellt werden

Page 9: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

8-Bit ADC mit seriellem Ausgang

digitaler Eingang

analoger EingangSerielle Schnittstelle

R.-J. BrandenburgMNU 54/6 Sept. 2001

Page 10: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Einige Anmerkungen zu moderner Messtechnik ⃟ Moderne Elektronik sieht so aus:

6 x 40MHz ADC mitDifferentiellen Eingängen

Xilinx FPGA(Field-Programmable Gate Array)

CAN-Bus Interface

⃟ Lässt sich noch mit der Hand löten, aber nicht einfach!⃟ 4-Lagen Platine notwendig, um stabilen Betrieb zu erhalten

Page 11: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Was ist tut das Board? ⃟ Die digitalisierten Signale werden mit 40MHz in den

FPGA Baustein übernommen und dort durch einen digitalen Bandpass geschickt

⃟ Die Amplitude der Signale wird bestimmt

⃟ Bei genügend hoher Amplitude wird das Datum in ein Histogramm im externen Speicher geschrieben

⃟ Nach einer voreingestellten Zahl von genommenen Pulsen wird der am CAN-Bus angeschlossene Rechner darüber

informiert, dass die Datennahme abgeschlossen ist

⃟ Der Computer liest das Histogramm aus und analysiert es

CAN-Bus

⃟ Controller-Area-Network: von Bosch für Autos entwickelt ⃟ Extrem zuverlässiges Bus-System, aber nicht sehr schnell (1Mb/s).

Sinnvoll in Bereichen, wo man nur selten rankommt.

Programmierung eines FPGA (großer Bruder von PAL und GAL) ⃟ Spezielle Compiler notwendig (Spezialsoftware des Herstellers)

Page 12: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Signalverarbeitung mit dem Computer- Software -

Spezielle Software, die mit Hardware geliefert wird ⃟ Oft nicht sehr flexibel ⃟ Selten Dokumentation über die Verwendung der Hardware

in eigenen Programmen

Eigenbauprojekte ⃟ Software muss selbst geschrieben, oder vom Autor geliefert werden ⃟ Vorteil: meist liegt der Quelltext der Programme vor

d.h. Verwendung in eigenen Softwareprojekten ist einfach

Programmiersprachen ⃟ Höhere Programmiersprachen PASCAL, BASIC, C (C++) Nachteil: oft erheblicher Aufwand für gut bedienbare Programme ⃟ Grafische Programmierung (schnell und einfach) z.B. DMMProfilab LabView von National Instruments

Page 13: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Anforderungen

⃟ Konfigurierbar an eigene Anforderungen ⃟ Grafische Darstellung der Messreihen (Histogramme,

xy- oder yt-Diagramme) ⃟ Möglichkeit der statistischen Auswertung - Mittelwertbildung, Streubreite - Bestimmung einer Ausgleichsgeraden für Eichzwecke …

Probleme bei Selbstbauprojekten ⃟ Aufwand oft recht groß ⃟ Freier Zugriff auf Parallele und serielle Schnittstelle

nur unter DOS, Win 95/98/ME möglich ⃟ Windows NT/2000/XP benötigen spezielle Treiber hierfür

z.B. Freeware Bibliothek DLPORTIO

Page 14: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Beispiel LabView ⃟ Rein grafische Programmierung ⃟ Extrem schnelle Erstellung von gut aussehenden Benutzeroberflächen ⃟ Allerdings sehr teuer !! Sollten die Kultusministerien zentral beschaffen !

Page 15: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Einfaches digitales Interface für den Druckerport

CentronicsBuchse

4 Datenbits alsAusgang

Masse

„Busy“ und „Paper Empty“ als Eingang

Schutzschaltungaus Widerstand (2x 1k) und Zenerdiode 5,1V

Alle Widerstände: 1kΩ Alle Z-Dioden: 5V1

2 x BC547

Page 16: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Schutz der Ausgänge:1k 1k

5V1Max. Spannung: 5.1VMin. Spannung: ca. -0.7V

Schutz der Eingänge und der „Open-Collector“ Treiber:

1k

5V1Max. Spannung: 5.1VMin. Spannung: ca. -0.7V 10

0k

Page 17: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Wie wird’s programmiert?

⃟ Unter DOS, Win95/98/ME - Schreiben der 8 Datenbits des Druckerports auf Adresse 378Hex (im Bios nachsehen, welche Adresse eingestellt ist!) - Lesen des Statusregisters auf Adresse 378Hex+1

outport(0x378,0); // setze alle Bits zu 0status=inport(0x379);

⃟ Unter Win NT/2000/XP sind spezielle „Kernel Device Treiber“ notwendig. Z.B. DLPORTIO, sonst genauso wie oben!

Zu beachten:

⃟ „Paper Empty“ Signale wird invertiert gelesen ! d.h. bei anliegender „0“ wird „1“ beim lesen des Statusregisters

zurückgegeben und umgekehrt

Page 18: Messdatenerfassung mit dem Computer Einführung - C.Zeitnitz Beispiel Programme – M.Fuidl Kleines digitales Interface für den Druckerport

Busy auf Pin11 (invertiert!)Paper Empty auf Pin12Lesen auf 0x379 (für LPT1)

Datenausgänge D0-D3Schreiben auf port 0x378 (für LPT1)