Situation: Anschließen einer Motorsteuerung an eine MCU. Die Motorsteuerung ist etwa 50 Fuß von der MCU entfernt. Verbunden über ein einzelnes Kabelrohr (vergraben), das die folgenden Kabel enthält: (Es gibt keine anderen elektrischen Geräte in der Umgebung, und diese befinden sich im Freien zwischen zwei wetterfesten Kästen.)
An MCU übertragene Signale:
Motorrichtungssignal. Diese Leitung wird je nach Drehrichtung des Motors hoch oder tief gezogen. Keine schnellen Änderungen: Motor läuft mindestens 10 Sekunden lang in eine Richtung.
Motorpositionsanzeige. Eine Rechteckwelle auf TTL-Pegel (100 Hz bis etwa 1 kHz), die eine Anzahl von Impulsen pro Umdrehung des Motors ausgibt.
Das Problem: Signale, die an der MCU ankommen, sind sehr verrauscht – Sie können die 60-Hz-Leitungsinterferenz deutlich sehen – und Sie können Übersprechen auf den beiden Leitungen sehen – das Richtungssignal pulsiert zusammen mit der Rechteckwelle der Positionsanzeige.
Irgendwelche Vorschläge, wie man diese Signale bereinigen kann, um verwendbar zu sein?
Ich könnte möglicherweise eine zweite MCU in die Motorsteuerungsbox einbauen, aber welches Protokoll könnte ich verwenden, um über das vorhandene Cat5-Kabel zu übertragen, das für diese Art von Interferenz nicht so anfällig wäre? Würde I2C bevorzugen ... Vorschläge? In der Hoffnung, den CAN-Bus zu vermeiden, da er zu viel Komplexität und zusätzliche Hardware hinzufügt.
Irgendwelche Vorschläge geschätzt.
Beginnen Sie mit den einfachen Dingen - ersetzen Sie das Cat5 UTP durch Cat 5, 6 oder 7 STP - geschirmtes Twisted Pair. Schirm an einem Ende erden. Wenn das es löst, sind Sie mit wenig Aufwand fertig. Wenn nicht, funktioniert alles, was Sie als Nächstes tun (z. B. die Verwendung geeigneter differenzieller Leitungstreiber), besser.
Ich frage mich auch, ob Sie mit Motorleistung und Signalmasse eine Erdungsschleife machen.
Bearbeiten: Wie wir in den Kommentaren erläutert haben, liefen beide Signale auf einem einzigen Paar, was ungefähr so schlecht ist, wie sie für die Kreuzkopplung der Signale werden könnten.
Während die differenzielle Übertragung das ist, wofür Cat5 ausgelegt ist, sollte das einfache Verschieben jedes Signals auf separate verdrillte Paare, wobei die andere Hälfte des Paares geerdet ist, die Dinge aus Sicht der Kreuzkopplung viel besser machen, und tat es tatsächlich weiter Kommentare. Ich würde sagen, es fällt immer noch unter die allgemeine Überschrift dieser Antwort, beginnen Sie mit den einfachen Dingen (noch einfacher, wenn Sie die Kabel nicht wechseln, nur wie Sie die Drähte verwenden), obwohl ich nicht an Kabelpaar gedacht hatte Missbrauch, bis ich die erste Form der Antwort geschrieben und die Frage in den Kommentaren gestellt habe.
Einseitige Signalisierung ist die Quelle Ihrer Probleme. Differentialsignalisierung wird Übersprechen und Rauschen drastisch verbessern. RS-422 wäre eine geeignete Wahl.
I2C ist nicht ideal, da seine Bidirektionalität (und folglich schwach angesteuerte Signale) sich nicht gut für differenzielle Signalisierung eignet. Es scheint jedoch, dass Sie nur eine Richtung benötigen. Und wenn Sie bidirektionale Kommunikation wünschen, haben Sie zusätzliche Paare in Ihrem Cat5.
Aufbauend auf der Antwort von uint128_t:
Sie können RS-422-Transceiver-Chips (Single-Ended-zu-Differential-Konverter und Differenz-zu-Single-Ended-Konverter) am MCU-Ende und am anderen Ende Ihres Kabels verwenden, um die vorhandenen Signale von Single-Ended in Differential und zurück umzuwandeln.
Dies würde die Verwendung des seriellen RS-422-Übertragungsprotokolls nicht erfordern, sodass am Motorende des Kabels keine MCU erforderlich ist.
Da Sie 2 verfügbare Leiter plus GND haben, würde ich vorschlagen, sie für eine symmetrische Übertragung für das Geschwindigkeitssensorsignal zu verwenden. YDies wird die Gleichtaktstörung ziemlich gut unterdrücken.
Sie müssen auch die Richtung übertragen, dies könnte durch ein beträchtliches Gleichtakt-Gleichstromsignal erfolgen. Da es sich bekanntlich um Gleichstrom handelt, außer beim Rückwärtsfahren, können Störungen durch einen Tiefpassfilter unterdrückt werden.
Jack
Ecke
Ryan Griggs
Ryan Griggs
Ecke
Michael
Ryan Griggs
Ryan Griggs
Ecke