Forum: Mikrocontroller und Digitale Elektronik Signal abtasten---> speichern und auswerten


von Jasmin K. (hanane)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen !!
Ich habe ein Problem...und zwar ich muss ein Analoges Signal 
abfangen,abtasten und danach auswerten..dafür habe ich eine Schaltung 
entwickelt (siehe anhag)..Das Signal hat ein anstiegszeit von 869ns und 
bitbreite von 4,34µs.
um das Signal abzutasten habe ich ein AD Wandler der 40Msps kann und 
Parallele ausgänge hat und auch 14 bit auflösung ( MAX12554) die 
abtastung soll 24h dauern ( ein Tag)...die Abgetastete Daten sollen 
abgefangen von einem MC bearbeitet , ausgewertet, und in einem RAM 
speicher ablegen.
Ich habe die Wahl jetzt zwischen drei Kontrollern : NEC V850 (80MHz), 
NEC V850 (100MHz) , NEC V850 (200MHz)..
hat jemand einen Vorschlag??
oder eine bessere lösung für das ganze???
Gruss Hanane

von Schrotty (Gast)


Lesenswert?

>dafür habe ich eine Schaltung entwickelt (siehe anhag)

Das ist keine Schaltung, sondern ein extrem vereinfachtes 
Blockschaltbild mit ner Menge Fragen, die du stellst :-)


lt deiner Zeichnung:

alle 87ns ein neuer 14-Bit Wert vom Wandler ergibt ein 16 Bit-Wort im 
RAM.
Das heisst: 1 / 87 E-9 Werte pro Sekunde = 11,5 Mio Werte/s
=> 993 E09 Werte/d = 993 Mrd Werte wofür du ganz grob ca. 2000 GByte 
Speicher benötigst (da 16 Bit Werte)

Das sind (grob überschlagen) 2 Stück 1TByte-Festplatten voll

Oder hab ich mich irgendwo verrechnet???

Was ich damit sagen will: Du hast neben deinem Controller-Problem noch 
ein viel größeres Speicherproblem :-)

von Jasmin K. (hanane)


Lesenswert?

Hallo Schrotty!
Danke erstes mal für deine Antwort-...
das stimmt was du gesagt hast...das habe ich festgestellt ...ich habe 
habe mich denn überlegt um das ganze zu komprimieren..
das ich zum beispiel : Die frams die gut sind bewerte ich sie mit "ok" 
und brauche ich nicht zu speichern,..und nur die frams die 
fehlerbehaftet sind die tue ich speichern bzw die bits die gut sind 
bewerte ich mit "ok" und brauche ich sie nicht zu speichern sondern 
wieder nur die bits die schlecht sind...und wenn ich merke sagen wir mal 
nach einer stunde da kommen nur schlechte bits, dann überschreibe ich 
sie oder einfach sagen speicher ist voll !! nicht mehr speichern..
was meinst ?? habe damit enorm viele speicher gespart oder nicht???

von Schrotty (Gast)


Lesenswert?

Klar, somit kannst du natürlich Speicher sparen.
Aber eingangs sagtest du ja, dass du alle Werte abspeichern willst.

Wenn du aber nur "fehlerhafte" Werte abspeichern willst (was auch immer 
in deinem Fall einen fehlerhaften Wert kennzeichnet, dann sieht die 
Sache natürlich anders aus

von Jasmin K. (hanane)


Lesenswert?

ja...aber nächstes Problem wie erkenne ich am eingang des MC dass es der 
anfang der Fram ist bzw das ende vom frame!!??
ich werde bit zu bit abfragen...
inerhalb 869ns werde ich 10 abtastpunkte machen (analogwerte) diese 
werte werde ich vergleichen mit den werten die ich bei der 
signalspezifikation habe..bsp : nehme ein wert liegt das in diesem 
bereich dann ist das H + gut ( es handelt sich um eine anstiegzeit), 
auswerten "ok"...weiter liegt diesen wert in diesem Bereich dann ist das 
L + gut  (es handelt sich um abstiegzeit )auswerten "ok" ...liegt in so 
und so bereich dann ist das schlecht dann speichern....
so habe das vor....aber wie kann ich das im code oder C-programm 
umzuwandeln...es fällt mir nichts ein bis jetzt !"!!!!!!

von Schrotty (Gast)


Lesenswert?

Sorry, ich kann dich einfach nicht verstehen.. Versuche mal, ganze Sätze 
in einem verständlichen Deutsch zu bilden.

Und wie willst du Bit für Bit aus dem AD-Wandler lesen, wenn der ein 
16-Bit breites Interface hat?
Welche Frames meinst du?
Aus dem AD-Wandler kommt doch kein Frame.

Oder meinst du den Frame, dessen Verlauf du über den AD-Wandler 
abtastest?

von Schrotty (Gast)


Lesenswert?

Erkläre doch mal bitte, was du genau vor hast:
So wie ich dich verstehe, willst du ganz offensichtlich Flanken erkennen 
(steigende und fallende).
Ist dein Ziel, eine Aussage über die Qualität der Flanke zu machen und 
somit auch eine Aussage über die Signalqualität oder willst du die 
Flanken erkennen, weil du die Daten des abzutastenden Frames auswerten 
willst.
Also einfach nur erkennen willst, welche Bitfolge in deinem Frame kommt?

Was für ein Frames ist das denn? Du sagst ja, dass du dafür ne 
Spezifikation hast.

von Horst (Gast)


Lesenswert?

Bei 200MHz hast du 17 Taktzyklen zwischen zwei Abtastwerten. Ich nehme 
mal an, das werden beim V850 auch 17 Befehle sein, die abgearbeitet 
werden.
Mit den 17 Befehlen sollen also die Daten eingelesen, verarbeitet und 
dann gespeichert werden. Eventuell wäre noch eine Zeitangabe zu den 
Meßwerten sinnvoll. Das stell ich mir knapp vor.

Wie wäre es mit einer analogen Schaltung, die zumindest die Steigung des 
Signals in einen bestimmten Wert umwandelt (Differenzierer). Dazu eine 
Schaltung, die reagiert, wenn dieser Wert in einem bestimmten Bereich 
ist. Sollte halt etwas träge reagieren, da dieser Bereich wohl bei jedem 
Wechsel des Signals kurz durchlaufen wird.

Oder ein teures Oszi nehmen, auf dem man auch eigene Programme laufen 
lassen kann.

von Daniel G. (daniel83)


Lesenswert?

woher auch immer die 200Mhz kommen, aber bei 200 Mhz hast du eine 
Taktzeit von 500ns, das währen grob 1,7 Takte je 10 Messwerte, das wird 
eng mit auswerten und speichern.

Einzelne Bits zu speichern wird dich niht deutlich vorwärts bruingen um 
Platz zu sparen, da brauchst du ja dann noch eine Information um zu 
wissen welches Bit das mal war, sonst bringt dir der Wert ja gar nichts.

von Robert L. (manateemoo)


Lesenswert?

Eine FPGA ist möglicherweise besser geeignet als eine CPU.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>woher auch immer die 200Mhz kommen, aber bei 200 Mhz hast du eine
>Taktzeit von 500ns...

Das halte ich für ein Gerücht! 500ps passen besser.

von Justus S. (jussa)


Lesenswert?

Travel Rec. schrieb:
>>woher auch immer die 200Mhz kommen, aber bei 200 Mhz hast du eine
>>Taktzeit von 500ns...
>
> Das halte ich für ein Gerücht! 500ps passen besser.

dann biete ich mal 5ns...

von ich (Gast)


Lesenswert?

200MHz = 5ns

von Jasmin K. (hanane)


Lesenswert?

... ja ich will beides auswerten frame und bit....damit ich ein frame 
auswerten kann da muss ich zuerst die Bits auswerten oder nicht???
dazu muss ich auch wissen in welchem bereich kann ich mein abgetasteten 
wert zuordnen... habe ich jetzt ein messwert ok, tue ich den zuerst 
vergleichen mit den festen vordefinierten werten ...dann kann ich sagen 
ahah!! bin ich jetzt im H pegel also anstiegende Flanke...dann nutze ich 
die kommende zeit die gleich nach der anstiegenden Flanke kommt ( und 
immer innerhalb ein Bit) um eine auswertung zu machen gut/schlecht "ok" 
oderspeichern...   bin ich in L pegel ...eine abfallende Flanke..gleich 
dannach dasselbe machen.....bin ich im verbotenen bereich also kein 
definierten bereich nicht H weder nicht L... dann schlecht muss 
gechpeichert sein....ahhah damit auch eine aussage über das frame 
machen--> schlecht--> speichern  ...
und so kann sagen frame nummer xxx bit yyy war ein fehler...
so habe ich vor vorzugehen....

von Jasmin K. (hanane)


Lesenswert?

ich will ja gern die lösung mit FPGA vermeiden....sie sind kompliziert 
um zu programmieren....
wie wäre es mit einem controller der 500MHz kann?????

von Schrotty (Gast)


Lesenswert?

Warum sollte dein Datenstrom im "Verbotenen Bereich" stehen bleiben????

Du willst also bitweise ein "H" oder "L" erkennen. Dazu braucht man doch 
keinen AD-Wandler!

Entweder ist es ein gängiges Bussystem, dann gibt es dafür fertige 
Transceiver und wenn es was eigenes ist, dann macht man das mit 
Komparatoren oder Schmitt-Triggern.

Man kann auch mit Kanonen auf Spatzen schiessen!

von Horst (Gast)


Lesenswert?

Ich denke, Hanane will auch den Flankenverlauf untersuchen. Ob das 
sinnvoll ist läßt sich natürlich nicht sagen, solange man nicht weiß: 
Warum? Wozu das Ganze?

von Schrotty (Gast)


Lesenswert?

eben, er will uns ja nicht verraten, was er genau vor hat.

von Horst (Gast)


Lesenswert?

Wenn es um die Übertragungsqualität und Störungen geht:
Man kann auch ein bekanntes Bitmuster übertragen und einfach speichern, 
wenn man auf der anderen Seite was anderes erhält. Das geht allerdings 
nicht im Laufenden Betrieb. Da bieten sich dann Prüfsummen oder 
Fehlerkorrigierende Codes an. Da kann man dann auch auswerten, wie oft 
es einen Fehler gegeben hat.

von Paul (Gast)


Lesenswert?

Hallo

ich schließe mich Schrotty an.
Der digitale Datenstrom bleibt auch einer. Eine neue Schnittstelle wird 
es nicht sein und die 4,3µs machen 230 kbit/s...
Deine Beschreibung ist alles in allem etwas wirr.

Um Frame und bits auszuwerten musst du mindestens die doppelte 
Framelänge aufzeichnen und deinen Controller synchronisieren, dann 
kannst du schauen obs passt..
Du speicherst in einen Ringpuffer und schaust wo dein Datenpaket losgeht 
- und dann wertest du aus (Vergleichst Prüfsumme, Paketaufbau etc..)
Passt alles, kannst Du speichern

Der AD Wandler ist wenig sinnvoll.

Grüße, Paul

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.