PPT

Werbung
Messdatenerfassung mit dem
Computer
• Einführung - C.Zeitnitz
• Beispiel Programme – M.Fuidl
• Kleines digitales Interface für den
Druckerport
Signalverarbeitung mit dem Computer
- Hardware ► 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 !!
► Digital zu Analog Converter
⃟ einfachste Version per R-2R Widerstandsnetzwerk
Ausgangsspannung
Tietze, Schenk
Halbleiterschaltungstechnik
4-Stellen Binärzahl
⃟ 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 ?
Widerstand zur Masse
beträgt 2R
Spannung
1/3 U1
Widerstand zur Masse
beträgt 2R
⃟ 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
1
1
1
1
⃟ Insgesamt ergibt sich
U a  (U 3  U 2  U1  U 0 )
3
2
4
8
► Analog zu Digital Converter (ADC)
⃟ Sehr viel komplizierter als ein DAC !!
⃟ Verschiedene Verfahren vorhanden
•
•
•
Zählverfahren
Addiere eine Referenzspannung, bis Eingangsspannung erreicht
Sehr langsames Verfahren, aber einfach realisierbar
Wägeverfahren
Beginnend beim höchstwertigen Bit, teste ob Eingangsspannung
ober- oder unterhalb der Wertigkeit des Bits liegt.
Anzahl der Schritte entspricht der Bitbreite des ADC
Bis ca. 1Ms einsetzbar
Parallelverfahren
Binärzahl wird in einem Schritt gebildet, indem jeweils ein OP
nachprüft welcher der 2n Werte der Eingangsspannung
entspricht
Sehr schnell, aber extrem aufwendig, da für n-Bits 2n-1 OPs
benötigt werden
► Parallelverfahren (auch Flash-ADC genannt)
OP mit
Open-Loop
Verstärkung
8-Bit ADC
Widerstandsnetzwerk
zur Einstellung der
Schwellen
Register zum
zwischenspeichern
der Konversion
8 auf 3 Decoder
Tietze, Schenk
Halbleiterschaltungstechnik
► 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
+
Ue
+
-
C
-
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 !
► 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
digitaler Eingang
analoger Eingang
Serielle Schnittstelle
R.-J. Brandenburg
MNU 54/6 Sept. 2001
8-Bit ADC mit seriellem Ausgang
► Einige Anmerkungen zu moderner Messtechnik
⃟ Moderne Elektronik sieht so aus:
Xilinx FPGA
(Field-Programmable Gate Array)
6 x 40MHz ADC mit
Differentiellen Eingängen
CAN-Bus Interface
⃟ Lässt sich noch mit der Hand löten, aber nicht einfach!
⃟ 4-Lagen Platine notwendig, um stabilen Betrieb zu erhalten
► 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)
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
► 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
► Beispiel LabView
⃟ Rein grafische Programmierung
⃟ Extrem schnelle Erstellung von gut aussehenden Benutzeroberflächen
⃟ Allerdings sehr teuer !! Sollten die Kultusministerien zentral
beschaffen !
Einfaches digitales Interface für den
Druckerport
2 x BC547
Masse
„Busy“ und „Paper Empty“
als Eingang
4 Datenbits als
Ausgang
Centronics
Buchse
Schutzschaltung
aus Widerstand (2x 1k) und Zenerdiode 5,1V
Alle Widerstände: 1kΩ
Alle Z-Dioden: 5V1
Schutz der Ausgänge:
1k
1k
5V1
Max. Spannung: 5.1V
Min. Spannung: ca. -0.7V
Schutz der Eingänge und der „Open-Collector“ Treiber:
Max. Spannung: 5.1V
Min. Spannung: ca. -0.7V
5V1
100k
1k
► 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 0
status=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
Datenausgänge D0-D3
Schreiben auf port 0x378 (für LPT1)
Busy auf Pin11 (invertiert!)
Paper Empty auf Pin12
Lesen auf 0x379 (für LPT1)
Herunterladen