| 
 | 
|  | 
| 
 | 
| Dieses Dokument ist verfübar auf: English Deutsch Francais Turkce | 
| ![[Photo of the Author]](../../common/images/article300/BobSmith2.jpg)  von Bob Smith <bob(Q)linuxtoys.org> Über den Autor: Bob ist ein Elektronik-Bastler und Linuxprogrammierer. Sie können sein neuestes Projekt auf www.linuxappliancedesign.com finden und seine Homepage auf www.linuxtoys.org. Übersetzt ins Deutsche von: Hubert Kaißer (homepage) Inhalt: | 
| Ein 1-Bit-Datenoszilloskop  Zusammenfassung: 
    Das 1-Bit-Datenoszilloskop (Logic-analyser) erfaßt ein Bit an Daten mit einer Rate
    von 46080 (oder 92160) Impulsen pro Sekunde und kodiert die Daten in
    einen Strom von RS-232-Zeichen, die mit 57.6 (oder 115.2) Kilobaud
    gelesen werden können.  Das Datenoszilloskop ist ein ziemlich einfacher
    Projektaufbau, der weniger als sechs billige ICs braucht.
    
 | 
 
    
Das Problem ist, daß wir die Eingabemuster zwischenspreichern müssen während wir
    die Start- und Stopbits versenden. Die folgende Zeichnung zeigt das
    Problem. 
    Während den Bits 0, 1, 2 und 3 wollen wir, daß die Daten um zwei Datentakte
    verzögert werden, damit wir Q(B) vom Schieberegister des 4015 holen können.
    Während den Bits 4, 5, 6 und 7 wollen wir die Daten verzögert um
    einen Datentakt, damit wir Q(A) vom Schieberegister holen können. Während
    den Stop- und Startbits (Bit 8 und 9) wollen wir eine Null und eine Eins,
    damit wir Q(0) vom Bitzähler holen können.
 
    Der Schaltplan wurde mit einem sehr netten Softwarepaket namens "EAGLE" gemacht, erhältlich bei Cadsoft. Die Schemadatei für obigen Schaltkreis ist erhältlich als 1bitla.sch.gz (hier klicken).
Um den Schaltkreis bei 115.2 kHz laufen zu lassen, benutzt man die Ausgänge des 4024 anstatt der Ausgänge von Q(2) und Q(5). Andere Baudraten sind möglich, wenn man andere Werte für den Kristall nimmt oder indem man den Kristalloszillator durch einen RC-Oszillator ersetzt.
Es wird sich wahrscheinlich herausstellen, daß der Kristalloszillator bei der gleichen Frequenz weniger Strom verbraucht als ein RC-Schaltkreis. Um Strom zu sparen, sollte man sichergehen, daß die unbenutzten Eingänge des 4049-Hex-Inverters auf Masse liegen.
Ein besserer Eingabepuffer könnte der zweite Operationsverstärker im TL082 sein. Man kann einen Widerstandsteiler benutzen, den man an einen Operationsverstärkereingang klemmt und den anderen Eingang für die Eingabedaten benutzen. Dadurch kann man den Schwellwert sehr genau kontrollieren und es ergibt eine hohe Impedanz gegenüber dem Meßobjekt.
RTS stellt Strom (Vcc) für den Rest der Schaltung bereit. Im Prototypen war Vcc ungefähr 7 Volt stark. Ihre Spannung Vcc kann anders sein, das hängt von der RS-232-Schnittstelle ab. Die Software, die das Datenoszilloskop nutzt, muß sowohl DTR und RTS hochsetzen.
Hier sind ein paar Fotos, um Ihnen eine mögliche Bauweise zu zeigen.
    
    
 
    
|  | ||
|---|---|---|
| -r | -c | -t | 
| 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 | 0, 0 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 | 0, 0.000000 1, 0.000065 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 | 
Das einfache Programm 1bitla.c verarbeitet die seriellen Daten und kann die Daten in drei Formaten ausgeben. Das erste Format sind die Rohdaten, die ein Byte pro Zeile durch zwei Hex-Zeichen darstellen. Beachten Sie, daß das Programm die Daten invertiert und daß die Daten mit MSB zuerst verschickt werden. Rohdatenausgabe wird mit der Option -r aufgerufen. Das zweite Format ist ein Wert (0 oder 1) gefolgt von der Anzahl der 1-Bit-Muster, die der Wert hatte. Die Wert-/ Anzahlausgabe wird mit der Option -c aufgerufen. Die Auflösung bei 46080 kHz ist 21.7 Mikrosekunden. Die Wert-/Zeitausgabe wird mit der Option -t aufgerufen.
Das Programm wird mit
    1bitla [option] serial_port
    aufgerufen, wobei die Optionen -r, -c, oder -t sein können. Der
    bei Weglassen der Option wird  Wert/Anzahl (-c) genommen.
Der Aufbau des Programms ist recht einfach. Wir verarbeiten die Kommandozeilenoptionen, öffnen die serielle Schnittstelle und machen eine unendliche Schleife und zeigen die Bytes an. Da wir keine Verarbeitung im Hintergrund laufen haben, benutzen wir ein blockierendes read.
Vielleicht sind Sie zufrieden damit, nur die Bitmuster auf Konsole
    auszugeben oder sie in eine Datei zur späteren Bearbeitung umzuleiten
    oder Sie können auch eine echte "Logik-Analyse" mit den Daten durchführen,
    indem Sie einen Automaten basteln der die Bitmuster verarbeitet.
    Beispielautomaten können Dekoderbefehle haben, die ihnen von einer
    Infrarotfernsteuerung geschickt werden oder können die Position
    eines funkgesteuerten Takts mit modulierter Ausgabe dekodieren.
    
| 
 | 
| Der LinuxFocus Redaktion schreiben © Bob Smith, FDL LinuxFocus.org | Autoren und Übersetzer: 
 | 
2003-07-01, generated by lfparser version 2.38