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


von Matthias G. (mgottke)


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? ;-)

von Terminus (Gast)


Lesenswert?

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

von Christian R. (supachris)


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.

von Klaus (Gast)


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 =)

von Matthias G. (mgottke)


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?

von Christian R. (supachris)


Angehängte Dateien:

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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

von Matthias G. (mgottke)


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!????

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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...

von Christian R. (supachris)


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.

von Matthias G. (mgottke)


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.

von Tron (Gast)


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.

von Matthias G. (mgottke)


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.

von Tron (Gast)


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.

von Christian R. (supachris)


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.

von Manfred Kraus (Gast)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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...  :-/

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.