original in en Bob Smith
en to de Hubert Kai�er
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.
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.