180 likes | 338 Views
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)
E N D
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 ?
Spannung 1/3 U1 Widerstand zur Masse beträgt 2R 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 ⃟ Insgesamt ergibt sich
► 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 Register zum zwischenspeichern der Konversion 8-Bit ADC Widerstandsnetzwerk zur Einstellung der Schwellen 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: 6 x 40MHz ADC mit Differentiellen 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 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 Max. Spannung: 5.1V Min. Spannung: ca. -0.7V 5V1 Schutz der Eingänge und der „Open-Collector“ Treiber: 1k Max. Spannung: 5.1V Min. Spannung: ca. -0.7V 100k 5V1
► 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)