Hallo,
ich schreibe grade an meiner Diplomarbeit. Ich habe mir jetzt das
Starter Kit von Altera bestellt.
Nähere Infos zur Diplomarbeit -->>
Beitrag "µC Wahl für meine Dipmlomarbeit"
Nun habe ich eine Schaltung bei Max Plus II aufgebaut, in dem ich einen
6bit Zähler mit einstellbarer Zählhöhe (d.h. beispielsweise bis 60 oder
40 wie auch immer) realisiert habe.
Das Gute bei Altera ist es, dass die Software ein Schema-Aufbau direkt
in den VHDL-Code umwandelt und ich dann das Programm direkt auf den FPGA
laden kann.
Nun meine Frage: Wie kann ich eine weitere Schaltung realisieren, die
Spannungspegel misst ein Durchschnitt bildet und abweichende Pegeln
detektiert?
Das Signal sieht aus wie ein Sinussignal und hat eine maximale Frequenz
von 24kHz. Die Spannungen können von 1Vp-p bis zu 60Vp-p liegen.
Danke im Voraus
Gruß Koray
Also
"ich schreibe grade an meiner Diplomarbeit. "
und
"Nun meine Frage: Wie kann ich eine weitere Schaltung realisieren, die
Spannungspegel misst ein Durchschnitt bildet und abweichende Pegeln
detektiert?"
Passen nicht zusammen, auch nicht, wenn das direkt in nen FPGA soll,
außer Du hast BWL Studiert.
Dann arbeite ich eben an meiner Diplomarbeit.
Ich kanns echt nicht verstehen, wenn man postet um einfach nur was dazu
gesagt zu haben. Kannst du mir helfen, dann bitte ich dich das zu tun,
wenn nicht spar dir bitte deine Fehlererkennung.
Koray schrieb:> Dann arbeite ich eben an meiner Diplomarbeit.> Ich kanns echt nicht verstehen, wenn man postet um einfach nur was dazu> gesagt zu haben. Kannst du mir helfen, dann bitte ich dich das zu tun,> wenn nicht spar dir bitte deine Fehlererkennung.
Es tut mir leid, aber ich muss da "volltroll.de" leider Recht geben und
auch all den anderen, aus deinem verlinkten Thread. Wenn deine
Diplomarbeit im Zusammenhang mit deiner Frage steht, dann denke ich,
hast du deine Hausaufgaben nicht richtig gemacht. Mit der Kritik wirst
du dich leider abfinden müssen.
Zu deiner eigentlichen Frage:
Ich kenne mich nicht mit den grafischen Realisierungsmöglichkeiten aus,
von daher kann ich dir da nicht helfen. Wie sieht es denn aber mit
deinen VHDL/Verilog-Fähigkeiten aus?
Koray schrieb:> Das Gute bei Altera ist es, dass die Software ein Schema-Aufbau direkt> in den VHDL-Code umwandelt und ich dann das Programm direkt auf den FPGA> laden kann.
Das können die anderen auch....
Aber es ist nicht "gut", Schaltungen mit FPGAs so beschreiben zu wollen.
Damit werden Schaltungen ganz einfach sehr sehr schnell unübersichtlich.
Du solltest jetzt mal deine Zähler in einer brauchbaren
Hardwarebeschreibungssprache machen (VHDL oder Verilog), dann kommst du
auch mit der Mittelwertgeschichte weiter.
> Nun meine Frage: Wie kann ich eine weitere Schaltung realisieren, die> Spannungspegel misst ein Durchschnitt bildet und abweichende Pegeln> detektiert?
Ich kann mir nicht vorstellen, dass das mit der Schaltplandarstellung
sinnvoll möglich ist.
> Nun meine Frage: Wie kann ich eine weitere Schaltung realisieren, die> Spannungspegel misst ein Durchschnitt bildet und abweichende Pegeln> detektiert?
Das hat sich im Beitrag "µC Wahl für meine Dipmlomarbeit" noch
irgendwie ganz anders angehört... :-o
Weißt du denn jetzt genau, was du mit welcher Geschwindigkeit erledigen
mußt?
Hallo,
nach ein bisschen Zeit bin ich es noch mal. Ich habe jetzt noch bis Ende
September Zeit für meine Diplomarbeit.
Folgendes habe ich schon aufgebaut:
Ich habe das FPGA Board von Altera Cyclone II Starter Development Board
bestellt und programmiert.
Ich habe einen 6Bit Zähler mit einstellbaren Zählwert programmiert, der
den Takt extern bekommt. Den Wert bis zu dem er zählen soll, bekommt er
von Switch-Schaltern, die binär angelegt sind. Der externe Takt wird
durch ein User I/O eingegeben, welcher dem Zähler dann den Takt gibt.
Dieser Takt ist dann auch das Signal dass ich aus meinem Maximbaustein
bekomme
-> ein Rechtecksignal aus einem sinusförmigen Signal, wobei die
Nulldurchgänge detektiert werden.
Ich denke als Laie einen FPGA zum laufen zu bringen ein Programm
draufzuladen und dies auch in der Form, in der man es auch möchte
innerhalb 2,5 Wochen ist eine gute Leistung.
Nun stehe ich jedoch vor einem anderen Problem.
Es gibt aber auch Zahnräder die einen speziellen 1/rev Zahn haben.
deshalb muss ich jetzt noch drei verschiedene Signaltypen erkennen
können.
Dazu gehören Zahnräder die,
1. einen kürzeren Zahn
2. einen längeren Zahn
3. einen fehlenden Zahn
haben.
Der Sinn dabei ist, wenn ich die gesamte Anzahl der Zähne zähle noch ein
gleiches System parallel laufen zu lassen, falls diese 1/rev Zähne an
dem Zahnrad vorhanden sind. Dann später beide Signale miteinander in
Vergleich zu stellen.
Ich habe mir 2 verschiedene Lösungen überlegt:
1. Ich werde beim kurzen Zahn die Signale Triggern und der kurze ZAhn
wird nicht erkannt, so als ob ne Lücke wäre, und dadurch kann ich den
doppelten Signalabstand detektieren lassen. -> gleiche Lösung für die
Lücke.
Beim langen Zahn Shcmitt Trigger, sodass nur der lange Zahn erkannt wird
und dann den Zähler bis 1 zählen lassen.
Hierbei ist das Problem aber dass sich die Drehzahl ändert, und dadurch
auch die Amplituden, also muss ein adaptiver Schmitt-Trigger her ->
Vielleicht durch einen µC steuern lassen aber ich hab kaum noch Zeit.
2. Einen IC finden der bei einem bestimmten Takt aktiviert wird und aus
analogem Signal digitale macht und daraus den höchsten wert liest und an
den Ausgang gibt.
Das würd ich dann nach jedem Nulldurchgang laufen lassen und immer drei
miteinander vergleichen. Somit wird dann der kurze oder der Lange Zahn
erkannt.
Nur habe ich bisher weder einen IC gefunden noch weiss ob das
funktioniert.
Ich hoffe ich konnte euch mein Problem einigermaßen deutlich klarmachen
und hoffe auf hilfreiche Antworten.
Ich geb ganz ehrlich zu: Verstanden habe ich die Aufgabenstellung und
den Ansatz nicht. Aber vielleicht helfen dir meine wirren Gedanken
trotzdem weiter.
Wenn es darum geht, Signale eines Sensors auszuwerten, der bestimmte
Zähne eines unterschiedlich schnell drehenen Zahnrads erkennt, dann
müsste man erstmal die Dauer des Sensorimpulses bei einem
durchschnittlichen Zahn ermitteln. Denn die ändert sich ja mit der
Drehzahl. Also bau einen Zähler zur Messung des Impulsdauer und takte
dieses Zähler schnell genug damit vernünftige Zahlen entstehen.
Jedesmal, wenn ein Impuls zu Ende ist, nimm die Zahl in ein
Schiebreister in dem vielleicht immer die letzten 8 Werte durchgeschoben
werden. Addiere die 8 Werte und teile das Ergebnis durch 8. (Geht
natürlich auch mit anderen Zahlen, aber Zweierpotenzen bieten sich an).
Nun vergleiche jeden Impuls, ob er größer oder kleiner als der
Mittelwert ist. Für stabile Verhältnisse besser noch einen
Sicherheitsabstand draufaddieren (für größer) bzw. abziehen (für
kleiner).
Für einen fehlenden Zahl muss dann noch eine zweite Logik her, die die
Abstände der Impulsse misst, nicht die Dauer, und ein Signal erzeugt,
wenn nach eine Impulsabstand * Sicherheitsmarge kein neuer Impuls
ankommt.
Lieg ich voll daneben?