Entfernen von digitalem Rauschen bei Quadratur-Encoder-Signalen

Ich verwende einen Quadratur-Encoder mit 3 Leitungen, um die Drehposition einer Welle zu verfolgen, die an einem BLDC-Motor (über ein Planetengetriebe) befestigt ist.

Wenn ich die Welle drehe, haben die A-, B- und Z-Linien immer ein unregelmäßiges digitales Rauschen (mit einem Logikanalysator beobachtet), das die Positionsablesungen immer durcheinander bringt. Das Bild des digitalen Signals ist wie folgt Geben Sie hier die Bildbeschreibung einDie Reihenfolge der Signale ist A, B und das letzte ist Z (Index)

Das Rauschen ist immer auf allen 3 Leitungen zusammen zu sehen und im Vergleich zu den eigentlichen Encoderimpulsen von sehr kurzer Dauer.

Was könnte die Quelle dieses Geräusches sein? Wie kann ich das Rauschen aus den Signalen entfernen? Vorzugsweise durch eine minimale Hardwarelösung.

Meine Positionsdaten werden von einem Controller verarbeitet, dessen Code ich nicht ändern kann, daher besteht für mich keine Möglichkeit, das Rauschen per Software zu kompensieren.

Ein genauerer Blick auf das GeräuschGeben Sie hier die Bildbeschreibung ein

BEARBEITEN: Ich verwende einen CUI AMT11-3S-Encoder, bei dem es sich um einen kapazitiven Encoder Link & Datasheet handelt

Würde es helfen, die Datenkabel abzuschirmen?
Vielleicht schlechte Erdung.
Sie sollten sich unbedingt die Wellenform dieser Signale ansehen; Logikanalysatoren eignen sich gut zum Betrachten der Daten, wenn das Signal in Ordnung ist, nicht zum Debuggen von Signalintegritätsproblemen.

Antworten (6)

Das Betrachten von Signalen von einem Logikanalysator (insbesondere wenn Rauschen eine Rolle spielt) kann verwirrend sein. Es ist möglich, dass das Rauschen, das Sie sehen, nicht den gleichen Pegel wie Ihre Quadratursignale hat, aber da der Analysator entweder ein Signal über dem logischen Schwellenwert sieht oder nicht, scheint es die gleiche Amplitude wie Ihr gewünschtes Signal zu haben.

Ich würde vorschlagen, dass Sie zunächst überprüfen, ob die Versorgungsspannung des Quadraturdetektors mindestens 10-20 uF beträgt. Sie können empfindlich auf Spannungsschwankungen reagieren, wenn Sie sie nahe ihrer unteren Grenze der Versorgungsspannung verwenden. Die meisten sind für 5-12- oder 12-24-V-Versorgungen ausgelegt, einige sind jedoch nur als 5-V-Versorgung spezifiziert (und normalerweise ein ganz anderes Design). Wenn Sie 5 oder 12 V verwenden, sind Sie bei jeder Variante genau an deren Untergrenze.

Stellen Sie sicher, dass die A-, B-, Z-Signale einen Schmitt-Trigger-Empfänger wie den 74LS14 haben, und überprüfen Sie das Datenblatt für Ihren Quadratur-Detektor, um zu sehen, ob er einen Pullup-Widerstand am Empfängerende des Kabels erwartet (die meisten tun es).... Umgekehrt, wenn Sie einen Pullup-Widerstand haben, stellen Sie sicher, dass er nicht zu niedrig ist.

Als Beispiel hier das Datenblatt für einen Omron Drehgeber: http://www.mouser.com/ds/2/307/e6b2-c_ds_csm491-25665.pdf

Beachten Sie, dass die E/A-Struktur für die Varianten erheblich variiert; Pulldown-, Pullup- und Leitungstreiber.

Ein Schema Ihres Quadratursensors würde bei der Fehlersuche helfen. Lassen Sie mich annehmen, dass es sich um eine Infrarot-LED (vielleicht zwei) handelt, die mit einem Fototransistor kombiniert ist, der Kanal A erzeugt, und einem anderen Fototransistor, der Kanal B erzeugt. Ein Oszilloskop kann mehr Informationen liefern als ein Logikanalysator.
Fast alle Ihre Rauschstörungen treten auf, wenn Ihr Sensor auf logisch niedrig ist. Dies gibt einen Hinweis darauf, dass das LED-Licht entweder unzureichend oder zu hell ist - nur ein Schaltplan könnte dies erkennen. Könnte auch durch optische Fehlausrichtung verursacht werden. Kann auch durch einen schlecht gewählten Wert für Pull-up- oder Pull-down-Widerstände an Ihrem optischen Detektor verursacht werden. Ich sehe jedoch einen Fehler, der von hoch nach niedrig geht, daher ist dies möglicherweise nicht das einzige Problem. Glitch-Rauschen kann auch verursacht werden durch:
-Ein Schaltnetzteil in der Nähe
-Ihr BLDC-Motor schaltet von Pol zu Pol

Es scheint, dass Glitches alle drei Kanäle gleichzeitig betreffen (wenn sie alle niedrig sind, nicht wenn sie hoch sind). Das deutet auf eine externe Geräuschquelle hin. Solches Rauschen wird normalerweise an der Quelle bekämpft. Ich denke, Ihre Indexlinie sollte größtenteils niedrig bleiben und würde normalerweise einmal pro Umdrehung hoch pulsieren. Verwenden Sie diese Linie, um den Erfolg Ihrer Rauschunterdrückungsbemühungen zu beurteilen.
Das Datenblatt für CUI AMT11-3S weist darauf hin, dass "GND" mit einem kurzen Draht mit dem Motorgehäuse verbunden werden sollte. Dies kann das „Stern“-Erdungsprinzip verletzen und eine rauscherzeugende Erdungsschleife erzeugen. Dieses Modul hat nur einen Erdungsstift, der einigen Zwecken dienen muss:

    -Bietet einen Rückweg für die +5-V-Stromversorgung.
    -Bietet Massebezug für serielle TX-, RX-Leitungen.
    -Bietet eine logische Massereferenz für CMOS-Ausgangslogikpegel.
    - Stellt wahrscheinlich eine elektrostatische Abschirmung mit Metallgehäuse bereit

Dieser Erdungsstift muss auf jeden Fall zusammen mit der +5-V-Gleichstromleitung auf die Erde Ihres Mikrocontrollers zurückgeführt werden. Die Erdung Ihres BLDC-Motorgehäuses könnte hilfreich sein, aber wo genau die Masse angeschlossen werden soll, ist nicht klar (ATM11-3S gnd?, Mikrocontroller gnd?, Chassis gnd?)
. aber wie Sie sagen, manchmal werden Sie von anderen eingeschränkt, die sagen: "Ich kann meinen Teil nicht ändern". Oh, der Spaß am Ingenieurwesen!

Ich habe die Frage aktualisiert. Der Encoder ist ein kapazitiver Encoder und keine Infrarot-LED ...
@TarangShah Danke, habe mir das CUI ATM11-3S Datenblatt angesehen und meine Antwort aktualisiert. Allerdings haben Ihre Links irgendwie nicht.

Sie müssen in Ihre Signale einen Tiefpassfilter einfügen, der kurze Transienten unterdrückt. Sie können dies entweder mit einem RC gefolgt von einem Komparator tun, oder Sie können es digital tun. Siehe zum Beispiel den Entpreller MC14490 .

Die erste offensichtliche Antwort ist, zu versuchen, die Verkabelung abzuschirmen und Massereferenzen zu überprüfen. Wenn das fehlschlägt...

Encoder, die in industriellen Systemen verwendet werden, verwenden fast immer differenzielle Signalisierung. Es ist kritisch in Systemen, die bürstenlose Gleichstrommotoren, bürstenbehaftete Gleichstrommotoren oder Antriebe mit variabler Frequenz verwenden; die alle reichlich elektrisches Rauschen erzeugen.

Mit einem RS422- oder RS485-Sender können Sie das X-, Y-, Z-Signal (oder Sin/Cos/Mark usw.) Ihres Encoders in ein Differenzsignal umwandeln. Verwenden Sie dann am anderen Ende einen 422/485-Empfänger. Bringen Sie den Sender so nah wie möglich am Encoder an und schirmen Sie ihn eventuell mit einem Metallgehäuse ab. Die Verdrahtung sollte ein 120-Ohm-Twisted-Pair-Kabel mit einer Gesamtabschirmung sein. Legen Sie eine Entkopplungskappe über die Stromleitungen jedes Chips. Eine Keramik 0,1 μf ist eine gute Wahl.

Dies ist ein kostengünstiger Ansatz, da die Chips jeweils ein paar Dollar kosten. 120-Ohm-Kabel werden häufig in der industriellen seriellen Kommunikation für RS422 oder RS485 verwendet und sind leicht zu haben. Sie finden RS422/485-Leitungstreiber und -Empfänger für den 5-V-Betrieb, wodurch zusätzliche Netzteile und Kabel überflüssig werden. Dies ist auch die Industriestandardmethode für die Signalisierung von Differential-Encodern, also ist es nichts Außergewöhnliches, es ist sogar ziemlich gewöhnlich.

Es gibt viele verschiedene Varianten von Leitungstreiber-Chips aufzulisten, aber es gibt viele, die mehrere Leitungstreiber in DIP- oder SOIC-Gehäusen mit 5-V-Stromversorgung anbieten. Ein Beispiel wäre die Verwendung des Quad-Senders MAX3042 in Kombination mit einem Quad-Empfänger MAX3095. Sehen Sie sich auch Tis Katalog an.

Die einfachste Lösung besteht darin, den Signalkabeln eine kleine Last hinzuzufügen. Zum Beispiel ein 4,7-kΩ- Widerstand , der bei einer Versorgungsspannung von 5 V ungefähr 1 mA Strom hinzufügt. Diese Widerstände müssen zwischen jeder Signalleitung und GND platziert werden. Dies ist die günstigste Lösung.

Das Hinzufügen von Keramikkondensatoren mit jeweils ~10 bis 100 pF hat fast den gleichen Effekt.

Wenn Sie Ihre Schaltung in Bezug auf EMI-Probleme verbessern und Ihr Problem beheben möchten, fügen Sie jeder Signalleitung eine TVS-Diode hinzu, z. B. PESD5V0S1BA mit Datenblatt . Diese Diode verhindert Spannungsspitzen, die Ihren Controller zerstören können, und fügt eine Kapazität von 45 pF hinzu. Dies ist die beste Lösung.

Wofür Sie sich auch entscheiden, sie müssen sich in der Nähe des Controllers befinden, der die Signalleitungen liest.

Stellen Sie sicher, dass Sie ein Twisted-Pair-Kabel für die Signale A, A/, B, B/, Z, Z/ verwenden. Belden 9503 zum Beispiel. Lesen Sie das Handbuch des Encoder-Herstellers sorgfältig durch, da dieser die beste Abschirmung/Erdung für seine spezielle Encoder-Konfiguration empfiehlt. Wenn Sie immer noch Rauschprobleme haben, terminieren Sie die Encoder-Abschirmung an beiden Enden, um die Impedanz des Kabels zu minimieren. (Impedanz übertrumpft Masseschleifenmöglichkeiten).