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 -
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 ?
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
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
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
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 !
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
8-Bit ADC mit seriellem Ausgang
digitaler Eingang
analoger EingangSerielle Schnittstelle
R.-J. BrandenburgMNU 54/6 Sept. 2001
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
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
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
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
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
Busy auf Pin11 (invertiert!)Paper Empty auf Pin12Lesen auf 0x379 (für LPT1)
Datenausgänge D0-D3Schreiben auf port 0x378 (für LPT1)
Top Related