TTL-Pegel loggen

Gast #3098569
Lesenswert?

Hallo

ich hab eine allgemeine Frage: Und zwar möchte ich einen Datanlogger 
bauen, der TTL-Signale von einer I/O Leitung loggt und 
zwischenspeichert. Diese Signale sollen dann per RS232 ausgelesen 
werden. Die Datenaufzeichnung soll den Pegel und die Länge (Timestamp) 
enthalten.

Das Problem ist jetzt, dass die TTL-Signale auf der I/O Leitung mit bis 
zu 200kHz übertragen werden. Ich stelle mir vor, dass das Programm auf 
dem Prozessor in einer Schleife ständig den Eingang prüft und bei einer 
Änderung des Eingangssignals einen Datensatz anlegt.

Abgesehen von der Datenmenge: Ist ein Prozessor (welcher?) überhaupt in 
der Lage den Eingangspin mit dieser Geschwindigkeit abzufragen?

Danke schon mal im vorraus.
Gast #3098595
Lesenswert?

>Und zwar möchte ich einen Datanlogger
>bauen, der TTL-Signale von einer I/O Leitung loggt und
>zwischenspeichert.

Warum?

>Das Problem ist jetzt, dass die TTL-Signale auf der I/O Leitung mit bis
>zu 200kHz übertragen werden. Ich stelle mir vor, dass das Programm auf
>dem Prozessor in einer Schleife ständig den Eingang prüft und bei einer
>Änderung des Eingangssignals einen Datensatz anlegt.

Ich stelle mir vor das du keine Ahnung hast.

>Diese Signale sollen dann per RS232 ausgelesen
>werden.

Wie lange möchtest du die Signale denn aufzeichnen?
Also Worst case müsstest du so 200kHz mal 10 pro Sekunde speichern
um da was verwertbares zu bekommen.

2MB per RS232 auszulesen ist nicht wirklich lustig.
Wenn du 100s gespeichert hast wirds echt langweilig.
So viel Kaffe kannst du nicht trinken
Gast #3098633
Lesenswert?

Hallo,

>Warum?

Weil ich sehen möchte, welche Bits übertragen werden.

>Ich stelle mir vor das du keine Ahnung hast.

Richtig vorgestellt. Aber wie sonst, ausser in einer Schleife oder per 
Interrupt?

>Wie lange möchtest du die Signale denn aufzeichnen?
>Also Worst case müsstest du so 200kHz mal 10 pro Sekunde speichern
>um da was verwertbares zu bekommen.

>2MB per RS232 auszulesen ist nicht wirklich lustig.
>Wenn du 100s gespeichert hast wirds echt langweilig.
>So viel Kaffe kannst du nicht trinken

Maximal 15 Sekunden. Die Daten könnte man ja mit einem Algo packen.
Gast #3098640
Lesenswert?

Hey,

im Grunde ist das etwas, was auch ein Logik-Analysator macht - in der 
Regel sind jedoch hier die Aufnahmezeiten nicht so lang.

Du musst dir Überlegen, wie viel Speicher du benötigst. Gerade wenn du 
nicht einfach nur die Daten Roh speichern möchtest, sondern hier den 
Zeitraum, in welcher ein Pegel besteht.

Gibt es denn noch weitere Informationen über das Signal? Ist es nur 1 
Bit breit?

Grüße,
  Thomas
Gast #3098641
Lesenswert?

>2MB per RS232 auszulesen ist nicht wirklich lustig.
>Maximal 15 Sekunden. Die Daten könnte man ja mit einem Algo packen.

Dann packen wir die Bits doch mal in ein Byte.
250000 Bytes pro Sekunde. Mal 15s = knapp 4MByte.
Immer noch nichts was ich per RS232 übertragen möchte.
Gast #3098649
Lesenswert?

holger schrieb:
>>2MB per RS232 auszulesen ist nicht wirklich lustig.
>>Maximal 15 Sekunden. Die Daten könnte man ja mit einem Algo packen.
>
> Dann packen wir die Bits doch mal in ein Byte.
> 250000 Bytes pro Sekunde. Mal 15s = knapp 4MByte.
> Immer noch nichts was ich per RS232 übertragen möchte.

Wenn ich es noch recht in Erinnerung habe kann man mit den FTDI-Chips 
3MBit/s erreichen. Trotz overhead sollten die 4MByte also in relativ 
kurzer Zeit übertragen sein.

Wie kommst du eigentlich auf den Wert? Es fallen doch in 1 Sekunde 
200kBits an, das sind doch nur 25kByte, und nicht 250kByte. Oder Irre 
ich mich da?

Grüße,
  Thomas
Gast #3098651
Lesenswert?

Hallo,

vielleicht habe ich mich (als Laie) falsch ausgedrückt:

Maximal gehen 200000 Bits pro Sekunde über die I/O Leitung.

>Gibt es denn noch weitere Informationen über das Signal? Ist es nur 1
Bit breit?

Versteh die Frage nicht ganz. Die Signale sind einfache Bitfolgen.
Gast #3098655
Lesenswert?

Hallo,

>im Grunde ist das etwas, was auch ein Logik-Analysator macht - in der
>Regel sind jedoch hier die Aufnahmezeiten nicht so lang.

Ich denke das wäre anstatt eines Eigenbaus, die einfachste Lösung. Danke
Gast #3098780
Lesenswert?

Reinhard Kern schrieb:
> Völlig. Er will ja Events mit Timestamps speichern, da braucht er für
> die Zeitangabe schon mehr als 24bit.

Und was sollen die vielen Timestamps? Wenn man das Signal mit 200kHz 
gleichmäßig abtastet und in Bytes verpackt als 25kByte/s Datenstrom 
überträgt, reicht es, vorher den Timestamp vom Startzeitpunkt zu 
speichern. Die Timestamps für jeden einzelnen Signalwechsel lohnen sich 
nur, wenn die Wechsel so selten sind, dass die Datenmenge für die 
Timestamps kleiner als die für die "langweiligen" Daten ist, wobei die 
natürlich durch RLE [1] kräftig verkleinert werden kann.
http://de.wikipedia.org/wiki/Rle
Gast #3099102
Lesenswert?

Wolfgang schrieb:
> Und was sollen die vielen Timestamps?

Das hat der TO so gefragt, lies mal von vorne. Und dass je nach Signal 
die eine oder andere Methode sinnvoller ist musst du nicht nochmal 
erklären, das ist längst bekannt. Schliesslich ist die Datenmenge bei 
fester Abtastrate auch nicht einfach zu vernachlässigen.

Gruss Reinhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren