www.mikrocontroller.net

Forum: FPGA, VHDL & Co. 1-Bit Singalfilter: Welches Design


Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe in einer Anwendung Inkrementalgeber mit differentiellem A und B 
Signal und Absolutwertgeber mit SSI Interface im Einsatz. Nun sind die 
Leitungen sehr lang und liegen zum Teil auch parallel zu irgend welchen 
Wechselrichtern (Maschinensteuerungen). Es muss also mit Störungen der 
Signale durch Burst gerechnet werden. Die liegen nachweislich auch in 
den älteren Anlagen vor.

Das ganze geht dann in ein FPGA zur Auswertung.

Um das ganze möglichst störunempfindlich zu gestalten würde ich die 
Filter an den Digitaleingängen mit einer möglichst niedrigen 
Grenzfrequenz wählen.

Welche Art von Filter würdet Ihr als geeignet ansehen? Debounce, 
Integrator mit oberem und unterm Schwellwert, irgend was komplizierteres 
wie IIR oder FIR (gibt es denn so was überhaupt für 1 Bit?).

Meine Gedanken vorab:
Debounce wird ja oft zur Entprellung genommen. Hat aber so scheinbar den 
Nachteil, dass wenn mehrere Störpulse hintereinander kommen die alle 
innerhalb der Debounce-Zeit liegen, dann bekommt man ja Ewigkeiten kein 
gültiges Signal.
Beim Integrator verlängert sich die Verzögerung um das doppelte der 
Störimpulszeit.

Vielleicht hat ja schon mal jemand DEN ultimativen Filter für mich 
entworfen? ;-)

Autor: Terminus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wärs das ganze niederohmig zu machen. (D.h. zu Terminieren?)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RS422 Übertragung mit 120 Ohm abschließen und verdrillte Leitung 
benutzen, dann ist das meiste weg. Die restlichen Spikes mit einem 
Spikefilter rausfiltern, wie du oben schon schriebst. Wenn der Burst 
länger ist als ein Encoder-Schritt ist eh der Schritt verloren.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias G. schrieb:
> Debounce wird ja oft zur Entprellung genommen.

Da muss ich jetzt doch etwas schmunzeln... ;-)

Übrigens, Displays werden auch oft als Bildschirm benutzt =)

Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie wärs das ganze niederohmig zu machen. (D.h. zu Terminieren?)
Terminiert ist es natürlich. Das ist selbstverständlich. Abgeschirmte 
paarweise verdrillte Leitungen mit der richtigen Impedanz wird natürlich 
auch verwendet. Und trotzdem kommt es in der Praxis tatsächlich zur 
Stärbeeinflussung.

> Spikefilter
Ja klar, aber mit welchem Design?

Autor: Christian R. (supachris)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Matthias G. schrieb:

>> Spikefilter
> Ja klar, aber mit welchem Design?

Zum Beispiel so. Hab ich mal im Datenblatt eines HCTLxxx 
Encoder-Interface Chips gefunden.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. schrieb:
> Zum Beispiel so.
Und dort ist die passende VHDL-Umsetzung:
http://www.lothar-miller.de/s9y/categories/5-Entprellung
unter Tastenentprellung_mit_Schieberegister

Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Tips. Für eine Tastenentprellung ist das sicherlich 
perfekt. Aber für einen digitalen seriellen Eingang?

Beispiel: Beim SSI-Eingang mit einer Baudrate von 100 kBaud kommt alle 
10us ein neuer Wert rein. Jetzt könnte man den Debouncer (der obere 
Spikefilter ist nicht anderes) so auslegen, dass in dem Schieberegister 
ein einkommendes Bit innerhalb von sagen wir einmal 3us durch schiebt. 
Daher hat man eine Verzögerung von 3us. Soweit OK. Sollten dann aber 
Spikes im 2us Takt kommen, dann sind in dem Schieberegister NIE alle 
Bits gleich. da wird meine Verzögerung theoretisch unendlich groß. 
Jedenfalls zum Abtastzeitpunkt nach 10us können ungünstig gelagerte 
Spikes zu einem Fehler führen.

Bei einem Integrator ist das z.B. anders. Vielleicht ist aber ein 
Filterdesign höherer Ordnung noch viel effektiver!????

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias G. schrieb:
> Sollten dann aber Spikes im 2us Takt kommen, dann sind in dem
> Schieberegister NIE alle Bits gleich.
Korrekt.
Aber ehrlich: wenn du so ein schlechtes Signal hast, dann mußt du an der 
Übertragung arbeiten. Alles andere ist eigentlich nur eine längere 
Schreibweise für "Pfusch".

> Bei einem Integrator ist das z.B. anders. Vielleicht ist aber ein
> Filterdesign höherer Ordnung noch viel effektiver!????
Ja, aber das kannst du nur beurteilen, wenn du das Störsignal und die 
Störer genau kennst. Sonst wird das nur hochtechnifiziertes 
Handauflegen...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Aber ehrlich: wenn du so ein schlechtes Signal hast, dann mußt du an der
> Übertragung arbeiten. Alles andere ist eigentlich nur eine längere
> Schreibweise für "Pfusch".

Genau so sehe ich das auch, wir hatten auch mal Probleme mit schlampig 
verlegten Drehgeber-Leitungen. Die Mechanik-Partnerfirma hat dann 
immerzu gedrängt, ich sollte doch im FPGA das Störzeug rausfiltern. Aber 
das geht eben nur begrenzt. Und im Öl abgesoffene Drehgeber werden immer 
schlimmer, das ist alles nur Pfusch. Man muss die Ursache beseitigen und 
nicht mit massivem Aufwand an den Symptomen herum doktorn.

Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. schrieb:
> Man muss die Ursache beseitigen und
> nicht mit massivem Aufwand an den Symptomen herum doktorn.

Ja, da gebe ich Dir recht. Leider sieht die Welt aber ein bisschen 
anders aus. Da liegen z.B. die Kabel schon in separaten Kabelpritschen 
aus besagtem Grund. Plötzlich fällt irgend einer andern Firma nach 2 
Jahren ein parallel dazu über 100 ungeschirmte Kabel von 
Thyristorstellern parallel zu verlegen. Da ist es schon von Vorteil wenn 
man die größtmögliche Sicherheit hat. Ein geeigneter Filter würde unter 
Umständen viel Service-Aufwand und damit Kosten sparen. Selbst wenn man 
dafür nichts kann bleiben die Aufwände doch bei einem selbst hängen.

Autor: Tron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würd folgendes machen: einen Zähler der bei Einer 1 einen nach oben 
Zählt und bei einer 0 um einen nach unten. ist der zähler über  75% dann 
wird der Ausgang 1, und unter 25% 0. Also praktisch ein Integrator mit 
Hysterese.

Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tron schrieb:
> Ich würd folgendes machen: ...

Danke. So dachte ich das auch und hatte das schon mal so gemacht. Die 
Hystereseschwellen hatte ich sogar gleich auf 0 und 100% gelegt.

Hast Du zufällig auch noch eine Theorie, die das bestätigt. Oder gibt es 
vielleicht doch noch was "besseres". Aber auch hierzu habe ich keine 
"Theorie" gefunden.

Autor: Tron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hast Du zufällig auch noch eine Theorie, die das bestätigt. Oder gibt es
> vielleicht doch noch was "besseres". Aber auch hierzu habe ich keine
> "Theorie" gefunden.

Mag sein das es was Besseres gibt, für meine Anwendung hat das gereicht.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowas wollte ich auch mal probieren, am besten mit einstellbarer 
Länge/Schwelle. Bin aber noch nicht dazu gekommen....bisher hat der o.g. 
Spike Filter gereicht. Natürlich in Verbindung mit ordentlich verlegten 
Leitungen.

Autor: Manfred Kraus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VOR der Frage welches Filter mit welchen Eigenschaften am geeignesten 
ist müssen grundsätzliche Überlegungen gemacht werden. Welches 
Frequenzspektrum hat das Grundsignal, welches die Störer? Überlappen 
sich die Spektren ?  Kann man eine feste Grenzfrequenz bestimmen um 
Nutzsignal und Störer zu separieren?
Nur wenn die Störer viel hochfrequenter sind als das Nutzsignal ist eine 
Filter-Lösung denkbar.

Aber:

Die allerbeste Lösung ist der Vorschlag von Lothar Miller. Die Störungen 
müssen daran gehindert werden auf das Nutzsignal einzuwirken.  Ich hatte 
einmal einen Fall wo die Masse des Drehgebernetzteils und der 
Eingangsstufe nicht verbunden waren. Die RS422 Receiver vertrugen nur 
+/- 7 Volt common mode voltage. Danach fingen sie an seltsame Störungen 
einzufangen. Kaputt gehen sie erst viel später. In einem anderen Fall 
war der Schirm der Drehgeberleitung beidseitig aufgelegt und es floß ein 
Stom durch ihn. Ein stromdurchflossener Schirm ist ganz ganz übel was 
Störungseinkopplung angeht - da ist gar kein Schirm noch besser. Ein 
"common mode filter"(antiparallel gewickelt gegen Gleichtaktstörungen) 
wirkt in vielen Fällen auch Wunder.

Es ist sehr wahrscheinlich, dass die Störungen durch einen Fehler dieser 
Art verursacht werden.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred Kraus schrieb:
> war der Schirm der Drehgeberleitung beidseitig aufgelegt
Das kann tatsächlich böse ins Auge gehen, wenn auf dem Schirm 
Ausgleichströme fliessen. Urigerweise sind sich da auch die Hersteller 
von Komponenten nicht einig, ob und wo (Sender/Empfänger) der Schirm am 
besten aufgelegt werden soll...  :-/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.